checkpatch: prefer strscpy to strlcpy
[linux-2.6-microblaze.git] / fs / nfs / nfs3xdr.c
index 69971f6..ca10072 100644 (file)
@@ -33,6 +33,7 @@
  * Declare the space requirements for NFS arguments and replies as
  * number of 32bit-words
  */
+#define NFS3_pagepad_sz                (1) /* Page padding */
 #define NFS3_fhandle_sz                (1+16)
 #define NFS3_fh_sz             (NFS3_fhandle_sz)       /* shorthand */
 #define NFS3_sattr_sz          (15)
 #define NFS3_removeres_sz      (NFS3_setattrres_sz)
 #define NFS3_lookupres_sz      (1+NFS3_fh_sz+(2 * NFS3_post_op_attr_sz))
 #define NFS3_accessres_sz      (1+NFS3_post_op_attr_sz+1)
-#define NFS3_readlinkres_sz    (1+NFS3_post_op_attr_sz+1+1)
-#define NFS3_readres_sz                (1+NFS3_post_op_attr_sz+3+1)
+#define NFS3_readlinkres_sz    (1+NFS3_post_op_attr_sz+1+NFS3_pagepad_sz)
+#define NFS3_readres_sz                (1+NFS3_post_op_attr_sz+3+NFS3_pagepad_sz)
 #define NFS3_writeres_sz       (1+NFS3_wcc_data_sz+4)
 #define NFS3_createres_sz      (1+NFS3_fh_sz+NFS3_post_op_attr_sz+NFS3_wcc_data_sz)
 #define NFS3_renameres_sz      (1+(2 * NFS3_wcc_data_sz))
 #define NFS3_linkres_sz                (1+NFS3_post_op_attr_sz+NFS3_wcc_data_sz)
-#define NFS3_readdirres_sz     (1+NFS3_post_op_attr_sz+2+1)
+#define NFS3_readdirres_sz     (1+NFS3_post_op_attr_sz+2+NFS3_pagepad_sz)
 #define NFS3_fsstatres_sz      (1+NFS3_post_op_attr_sz+13)
 #define NFS3_fsinfores_sz      (1+NFS3_post_op_attr_sz+12)
 #define NFS3_pathconfres_sz    (1+NFS3_post_op_attr_sz+6)
@@ -85,7 +86,8 @@
 #define ACL3_setaclargs_sz     (NFS3_fh_sz+1+ \
                                XDR_QUADLEN(NFS_ACL_INLINE_BUFSIZE))
 #define ACL3_getaclres_sz      (1+NFS3_post_op_attr_sz+1+ \
-                               XDR_QUADLEN(NFS_ACL_INLINE_BUFSIZE)+1)
+                               XDR_QUADLEN(NFS_ACL_INLINE_BUFSIZE)+\
+                               NFS3_pagepad_sz)
 #define ACL3_setaclres_sz      (1+NFS3_post_op_attr_sz)
 
 static int nfs3_stat_to_errno(enum nfs_stat);
@@ -909,8 +911,8 @@ static void nfs3_xdr_enc_readlink3args(struct rpc_rqst *req,
        const struct nfs3_readlinkargs *args = data;
 
        encode_nfs_fh3(xdr, args->fh);
-       rpc_prepare_reply_pages(req, args->pages, args->pgbase,
-                               args->pglen, NFS3_readlinkres_sz);
+       rpc_prepare_reply_pages(req, args->pages, args->pgbase, args->pglen,
+                               NFS3_readlinkres_sz - NFS3_pagepad_sz);
 }
 
 /*
@@ -939,7 +941,8 @@ static void nfs3_xdr_enc_read3args(struct rpc_rqst *req,
                                   const void *data)
 {
        const struct nfs_pgio_args *args = data;
-       unsigned int replen = args->replen ? args->replen : NFS3_readres_sz;
+       unsigned int replen = args->replen ? args->replen :
+                                            NFS3_readres_sz - NFS3_pagepad_sz;
 
        encode_read3args(xdr, args);
        rpc_prepare_reply_pages(req, args->pages, args->pgbase,
@@ -1239,8 +1242,8 @@ static void nfs3_xdr_enc_readdir3args(struct rpc_rqst *req,
        const struct nfs3_readdirargs *args = data;
 
        encode_readdir3args(xdr, args);
-       rpc_prepare_reply_pages(req, args->pages, 0,
-                               args->count, NFS3_readdirres_sz);
+       rpc_prepare_reply_pages(req, args->pages, 0, args->count,
+                               NFS3_readdirres_sz - NFS3_pagepad_sz);
 }
 
 /*
@@ -1281,8 +1284,8 @@ static void nfs3_xdr_enc_readdirplus3args(struct rpc_rqst *req,
        const struct nfs3_readdirargs *args = data;
 
        encode_readdirplus3args(xdr, args);
-       rpc_prepare_reply_pages(req, args->pages, 0,
-                               args->count, NFS3_readdirres_sz);
+       rpc_prepare_reply_pages(req, args->pages, 0, args->count,
+                               NFS3_readdirres_sz - NFS3_pagepad_sz);
 }
 
 /*
@@ -1328,7 +1331,7 @@ static void nfs3_xdr_enc_getacl3args(struct rpc_rqst *req,
        if (args->mask & (NFS_ACL | NFS_DFACL)) {
                rpc_prepare_reply_pages(req, args->pages, 0,
                                        NFSACL_MAXPAGES << PAGE_SHIFT,
-                                       ACL3_getaclres_sz);
+                                       ACL3_getaclres_sz - NFS3_pagepad_sz);
                req->rq_rcv_buf.flags |= XDRBUF_SPARSE_PAGES;
        }
 }
@@ -1648,7 +1651,7 @@ static int nfs3_xdr_dec_read3res(struct rpc_rqst *req, struct xdr_stream *xdr,
        result->op_status = status;
        if (status != NFS3_OK)
                goto out_status;
-       result->replen = 4 + ((xdr_stream_pos(xdr) - pos) >> 2);
+       result->replen = 3 + ((xdr_stream_pos(xdr) - pos) >> 2);
        error = decode_read3resok(xdr, result);
 out:
        return error;