From: Andy Adamson <andros@xxxxxxxxxx> The pnfs_mount_type structure was used to store per layout type device id caches. It is no longer needed with the generic device id cache in struct nfs_client. Signed-off-by: Andy Adamson <andros@xxxxxxxxxx> --- fs/nfs/nfs4filelayout.c | 40 +++++++--------------------------------- fs/nfs/pnfs.c | 8 ++------ include/linux/nfs4_pnfs.h | 15 +-------------- include/linux/nfs_fs_sb.h | 2 -- 4 files changed, 10 insertions(+), 55 deletions(-) diff --git a/fs/nfs/nfs4filelayout.c b/fs/nfs/nfs4filelayout.c index 8d6f685..36a8fe1 100644 --- a/fs/nfs/nfs4filelayout.c +++ b/fs/nfs/nfs4filelayout.c @@ -68,45 +68,19 @@ struct pnfs_client_operations *pnfs_callback_ops; ssize_t filelayout_get_stripesize(struct pnfs_layout_type *); struct layoutdriver_io_operations filelayout_io_operations; -/* Initialize and return the pnfs_mount_type structure so the - * pNFS_client can refer to the mount point later on - */ -struct pnfs_mount_type* +int filelayout_initialize_mountpoint(struct super_block *sb, struct nfs_fh *fh) { - struct filelayout_mount_type *fl_mt; - struct pnfs_mount_type *mt; - - fl_mt = kmalloc(sizeof(struct filelayout_mount_type), GFP_KERNEL); - if (!fl_mt) - goto error_ret; - - mt = kmalloc(sizeof(struct pnfs_mount_type), GFP_KERNEL); - if (!mt) - goto cleanup_fl_mt; - - fl_mt->fl_sb = sb; - mt->mountid = (void *)fl_mt; if (nfs4_alloc_init_deviceid_cache(NFS_SB(sb)->nfs_client, - nfs4_fl_free_deviceid_callback)) - goto cleanup_mt; - + nfs4_fl_free_deviceid_callback)) { + printk(KERN_WARNING "%s: deviceid cache could not be " + "initialized\n", __func__); + return 0; + } dprintk("%s: deviceid cache has been initialized successfully\n", __func__); - return mt; - -cleanup_mt: ; - kfree(mt); - -cleanup_fl_mt: ; - kfree(fl_mt); - -error_ret: ; - printk(KERN_WARNING "%s: deviceid cache could not be initialized\n", - __func__); - - return NULL; + return 1; } /* This function is used by the layout driver to calculate the diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c index 0e03259..3362ef5 100644 --- a/fs/nfs/pnfs.c +++ b/fs/nfs/pnfs.c @@ -207,16 +207,14 @@ void set_pnfs_layoutdriver(struct super_block *sb, struct nfs_fh *fh, u32 id) { struct pnfs_module *mod; - struct pnfs_mount_type *mt; struct nfs_server *server = NFS_SB(sb); if (server->pnfs_curr_ld) return; if (id > 0 && find_pnfs(id, &mod)) { - mt = mod->pnfs_ld_type->ld_io_ops->initialize_mountpoint( - sb, fh); - if (!mt) { + if (!mod->pnfs_ld_type->ld_io_ops->initialize_mountpoint( + sb, fh)) { printk(KERN_ERR "%s: Error initializing mount point " "for layout driver %u. ", __func__, id); goto out_err; @@ -226,7 +224,6 @@ set_pnfs_layoutdriver(struct super_block *sb, struct nfs_fh *fh, u32 id) * and has taken a reference on the nfs_client cl_devid_cache */ server->pnfs_curr_ld = mod->pnfs_ld_type; - server->pnfs_mountid = mt; server->nfs_client->rpc_ops = &pnfs_v4_clientops; dprintk("%s: pNFS module for %u set\n", __func__, id); return; @@ -236,7 +233,6 @@ set_pnfs_layoutdriver(struct super_block *sb, struct nfs_fh *fh, u32 id) out_err: dprintk("Using NFSv4 I/O\n"); server->pnfs_curr_ld = NULL; - server->pnfs_mountid = NULL; return; } diff --git a/include/linux/nfs4_pnfs.h b/include/linux/nfs4_pnfs.h index 4fdf87e..7ca8f85 100644 --- a/include/linux/nfs4_pnfs.h +++ b/include/linux/nfs4_pnfs.h @@ -30,13 +30,6 @@ struct pnfs_layoutdriver_type { struct layoutdriver_policy_operations *ld_policy_ops; }; -/* Layout driver specific identifier for a mount point. For each mountpoint - * a reference is stored in the nfs_server structure. - */ -struct pnfs_mount_type { - void *mountid; -}; - struct pnfs_fsdata { int ok_to_use_pnfs; struct pnfs_layout_segment *lseg; @@ -62,12 +55,6 @@ PNFS_NFS_SERVER(struct pnfs_layout_type *lo) return NFS_SERVER(PNFS_INODE(lo)); } -static inline struct pnfs_mount_type * -PNFS_MOUNTID(struct pnfs_layout_type *lo) -{ - return NFS_SERVER(PNFS_INODE(lo))->pnfs_mountid; -} - static inline void * PNFS_LD_DATA(struct pnfs_layout_type *lo) { @@ -181,7 +168,7 @@ struct layoutdriver_io_operations { /* Registration information for a new mounted file system */ - struct pnfs_mount_type * (*initialize_mountpoint) (struct super_block *, struct nfs_fh *fh); + int (*initialize_mountpoint) (struct super_block *, struct nfs_fh *fh); }; enum layoutdriver_policy_flags { diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h index bb0aa9c..9b160d4 100644 --- a/include/linux/nfs_fs_sb.h +++ b/include/linux/nfs_fs_sb.h @@ -165,8 +165,6 @@ struct nfs_server { #ifdef CONFIG_NFS_V4_1 u32 pnfs_fs_ltype;/* fs_layouttype attr */ struct pnfs_layoutdriver_type *pnfs_curr_ld; /* Active layout driver */ - struct pnfs_mount_type *pnfs_mountid; /* Mount identifier for - layout driver */ #endif /* CONFIG_NFS_V4_1 */ void (*destroy)(struct nfs_server *); -- 1.6.6 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html