Re: [PATCH v3 42/49] nfs41: add range to layoutreturn args

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

 



On 01/13/2015 05:50 PM, Tom Haynes wrote:
> On Tue, Jan 13, 2015 at 02:51:41PM -0500, Anna Schumaker wrote:
>> I still think we should hold off until partial file returns are added, making it less likely that somebody will introduce a bug in the meantime.
>>
> 
> Can you live with this:

Yes, I like that much better!  Thanks!

Anna

> 
>  fs/nfs/nfs4xdr.c        | 6 +++---
>  fs/nfs/pnfs.c           | 4 +++-
>  include/linux/nfs_xdr.h | 2 +-
>  3 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
> index 3c3ff63..56d4c91 100644
> --- a/fs/nfs/nfs4xdr.c
> +++ b/fs/nfs/nfs4xdr.c
> @@ -2012,11 +2012,11 @@ encode_layoutreturn(struct xdr_stream *xdr,
>         p = reserve_space(xdr, 16);
>         *p++ = cpu_to_be32(0);          /* reclaim. always 0 for now */
>         *p++ = cpu_to_be32(args->layout_type);
> -       *p++ = cpu_to_be32(args->iomode);
> +       *p++ = cpu_to_be32(args->range.iomode);
>         *p = cpu_to_be32(RETURN_FILE);
>         p = reserve_space(xdr, 16);
> -       p = xdr_encode_hyper(p, 0);
> -       p = xdr_encode_hyper(p, NFS4_MAX_UINT64);
> +       p = xdr_encode_hyper(p, args->range.offset);
> +       p = xdr_encode_hyper(p, args->range.length);
>         spin_lock(&args->inode->i_lock);
>         encode_nfs4_stateid(xdr, &args->stateid);
>         spin_unlock(&args->inode->i_lock);
> diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
> index 685af4f..9549b89 100644
> --- a/fs/nfs/pnfs.c
> +++ b/fs/nfs/pnfs.c
> @@ -916,7 +916,9 @@ pnfs_send_layoutreturn(struct pnfs_layout_hdr *lo, nfs4_stateid stateid,
>         lrp->args.stateid = stateid;
>         lrp->args.layout_type = NFS_SERVER(ino)->pnfs_curr_ld->id;
>         lrp->args.inode = ino;
> -       lrp->args.iomode = iomode;
> +       lrp->args.range.iomode = iomode;
> +       lrp->args.range.offset = 0;
> +       lrp->args.range.length = NFS4_MAX_UINT64;
>         lrp->args.layout = lo;
>         lrp->clp = NFS_SERVER(ino)->nfs_client;
>         lrp->cred = lo->plh_lc_cred;
> diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
> index 6400a1e..3637923 100644
> --- a/include/linux/nfs_xdr.h
> +++ b/include/linux/nfs_xdr.h
> @@ -293,7 +293,7 @@ struct nfs4_layoutreturn_args {
>         struct nfs4_sequence_args seq_args;
>         struct pnfs_layout_hdr *layout;
>         struct inode *inode;
> -       enum pnfs_iomode iomode;
> +       struct pnfs_layout_range range;
>         nfs4_stateid stateid;
>         __u32   layout_type;
>  };
> 

--
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