Loading fs/nfs/objlayout/objio_osd.c +3 −0 Original line number Diff line number Diff line Loading @@ -364,6 +364,9 @@ static struct pnfs_layoutdriver_type objlayout_type = { .id = LAYOUT_OSD2_OBJECTS, .name = "LAYOUT_OSD2_OBJECTS", .alloc_layout_hdr = objlayout_alloc_layout_hdr, .free_layout_hdr = objlayout_free_layout_hdr, .alloc_lseg = objlayout_alloc_lseg, .free_lseg = objlayout_free_lseg, Loading fs/nfs/objlayout/objlayout.c +26 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,32 @@ #include "objlayout.h" #define NFSDBG_FACILITY NFSDBG_PNFS_LD /* * Create a objlayout layout structure for the given inode and return it. */ struct pnfs_layout_hdr * objlayout_alloc_layout_hdr(struct inode *inode, gfp_t gfp_flags) { struct objlayout *objlay; objlay = kzalloc(sizeof(struct objlayout), gfp_flags); dprintk("%s: Return %p\n", __func__, objlay); return &objlay->pnfs_layout; } /* * Free an objlayout layout structure */ void objlayout_free_layout_hdr(struct pnfs_layout_hdr *lo) { struct objlayout *objlay = OBJLAYOUT(lo); dprintk("%s: objlay %p\n", __func__, objlay); kfree(objlay); } /* * Unmarshall layout and store it in pnfslay. */ Loading fs/nfs/objlayout/objlayout.h +17 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,19 @@ #include <linux/pnfs_osd_xdr.h> #include "../pnfs.h" /* * per-inode layout */ struct objlayout { struct pnfs_layout_hdr pnfs_layout; }; static inline struct objlayout * OBJLAYOUT(struct pnfs_layout_hdr *lo) { return container_of(lo, struct objlayout, pnfs_layout); } /* * Raid engine I/O API */ Loading @@ -66,6 +79,10 @@ extern void objlayout_put_deviceinfo(struct pnfs_osd_deviceaddr *deviceaddr); /* * exported generic objects function vectors */ extern struct pnfs_layout_hdr *objlayout_alloc_layout_hdr(struct inode *, gfp_t gfp_flags); extern void objlayout_free_layout_hdr(struct pnfs_layout_hdr *); extern struct pnfs_layout_segment *objlayout_alloc_lseg( struct pnfs_layout_hdr *, struct nfs4_layoutget_res *, Loading Loading
fs/nfs/objlayout/objio_osd.c +3 −0 Original line number Diff line number Diff line Loading @@ -364,6 +364,9 @@ static struct pnfs_layoutdriver_type objlayout_type = { .id = LAYOUT_OSD2_OBJECTS, .name = "LAYOUT_OSD2_OBJECTS", .alloc_layout_hdr = objlayout_alloc_layout_hdr, .free_layout_hdr = objlayout_free_layout_hdr, .alloc_lseg = objlayout_alloc_lseg, .free_lseg = objlayout_free_lseg, Loading
fs/nfs/objlayout/objlayout.c +26 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,32 @@ #include "objlayout.h" #define NFSDBG_FACILITY NFSDBG_PNFS_LD /* * Create a objlayout layout structure for the given inode and return it. */ struct pnfs_layout_hdr * objlayout_alloc_layout_hdr(struct inode *inode, gfp_t gfp_flags) { struct objlayout *objlay; objlay = kzalloc(sizeof(struct objlayout), gfp_flags); dprintk("%s: Return %p\n", __func__, objlay); return &objlay->pnfs_layout; } /* * Free an objlayout layout structure */ void objlayout_free_layout_hdr(struct pnfs_layout_hdr *lo) { struct objlayout *objlay = OBJLAYOUT(lo); dprintk("%s: objlay %p\n", __func__, objlay); kfree(objlay); } /* * Unmarshall layout and store it in pnfslay. */ Loading
fs/nfs/objlayout/objlayout.h +17 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,19 @@ #include <linux/pnfs_osd_xdr.h> #include "../pnfs.h" /* * per-inode layout */ struct objlayout { struct pnfs_layout_hdr pnfs_layout; }; static inline struct objlayout * OBJLAYOUT(struct pnfs_layout_hdr *lo) { return container_of(lo, struct objlayout, pnfs_layout); } /* * Raid engine I/O API */ Loading @@ -66,6 +79,10 @@ extern void objlayout_put_deviceinfo(struct pnfs_osd_deviceaddr *deviceaddr); /* * exported generic objects function vectors */ extern struct pnfs_layout_hdr *objlayout_alloc_layout_hdr(struct inode *, gfp_t gfp_flags); extern void objlayout_free_layout_hdr(struct pnfs_layout_hdr *); extern struct pnfs_layout_segment *objlayout_alloc_lseg( struct pnfs_layout_hdr *, struct nfs4_layoutget_res *, Loading