Re: [PATCH 07/13] SQUASHME pnfs_submit: remove struct pnfs_mount_type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux