On 04/29/2010 01:24 AM, andros@xxxxxxxxxx wrote: > 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. > Same here NACK > 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 *); -- 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