OSDN Git Service

pNFS: Get rid of unnecessary layout parameter in encode_layoutreturn callback
authorTrond Myklebust <trond.myklebust@primarydata.com>
Thu, 15 Sep 2016 22:49:52 +0000 (18:49 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Thu, 1 Dec 2016 22:21:44 +0000 (17:21 -0500)
The parameter is already present in the "args" structure.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/flexfilelayout/flexfilelayout.c
fs/nfs/nfs4xdr.c
fs/nfs/objlayout/objlayout.c
fs/nfs/objlayout/objlayout.h
fs/nfs/pnfs.h

index a5c3888..90462a2 100644 (file)
@@ -2012,10 +2012,10 @@ ff_layout_alloc_deviceid_node(struct nfs_server *server,
 }
 
 static void
-ff_layout_encode_layoutreturn(struct pnfs_layout_hdr *lo,
-                             struct xdr_stream *xdr,
+ff_layout_encode_layoutreturn(struct xdr_stream *xdr,
                              const struct nfs4_layoutreturn_args *args)
 {
+       struct pnfs_layout_hdr *lo = args->layout;
        struct nfs4_flexfile_layout *flo = FF_LAYOUT_FROM_HDR(lo);
        __be32 *start;
 
index b549315..86f72ae 100644 (file)
@@ -2013,6 +2013,7 @@ encode_layoutreturn(struct xdr_stream *xdr,
                    const struct nfs4_layoutreturn_args *args,
                    struct compound_hdr *hdr)
 {
+       const struct pnfs_layoutdriver_type *lr_ops = NFS_SERVER(args->inode)->pnfs_curr_ld;
        __be32 *p;
 
        encode_op_hdr(xdr, OP_LAYOUTRETURN, decode_layoutreturn_maxsz, hdr);
@@ -2027,10 +2028,9 @@ encode_layoutreturn(struct xdr_stream *xdr,
        spin_lock(&args->inode->i_lock);
        encode_nfs4_stateid(xdr, &args->stateid);
        spin_unlock(&args->inode->i_lock);
-       if (NFS_SERVER(args->inode)->pnfs_curr_ld->encode_layoutreturn) {
-               NFS_SERVER(args->inode)->pnfs_curr_ld->encode_layoutreturn(
-                       NFS_I(args->inode)->layout, xdr, args);
-       } else
+       if (lr_ops->encode_layoutreturn)
+               lr_ops->encode_layoutreturn(xdr, args);
+       else
                encode_uint32(xdr, 0);
 }
 
index 919efd4..2a4cdce 100644 (file)
@@ -504,10 +504,10 @@ encode_accumulated_error(struct objlayout *objlay, __be32 *p)
 }
 
 void
-objlayout_encode_layoutreturn(struct pnfs_layout_hdr *pnfslay,
-                             struct xdr_stream *xdr,
+objlayout_encode_layoutreturn(struct xdr_stream *xdr,
                              const struct nfs4_layoutreturn_args *args)
 {
+       struct pnfs_layout_hdr *pnfslay = args->layout;
        struct objlayout *objlay = OBJLAYOUT(pnfslay);
        struct objlayout_io_res *oir, *tmp;
        __be32 *start;
index 2641dba..fc94a58 100644 (file)
@@ -175,7 +175,6 @@ extern void objlayout_encode_layoutcommit(
        const struct nfs4_layoutcommit_args *);
 
 extern void objlayout_encode_layoutreturn(
-       struct pnfs_layout_hdr *,
        struct xdr_stream *,
        const struct nfs4_layoutreturn_args *);
 
index bc9a3aa..75ff939 100644 (file)
@@ -172,8 +172,7 @@ struct pnfs_layoutdriver_type {
                        (struct nfs_server *server, struct pnfs_device *pdev,
                        gfp_t gfp_flags);
 
-       void (*encode_layoutreturn) (struct pnfs_layout_hdr *layoutid,
-                                    struct xdr_stream *xdr,
+       void (*encode_layoutreturn) (struct xdr_stream *xdr,
                                     const struct nfs4_layoutreturn_args *args);
 
        void (*cleanup_layoutcommit) (struct nfs4_layoutcommit_data *data);