]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
NFS: Fix size of NFSACL SETACL operations
authorChuck Lever <chuck.lever@oracle.com>
Tue, 26 May 2015 15:53:52 +0000 (11:53 -0400)
committerZefan Li <lizefan@huawei.com>
Thu, 22 Oct 2015 01:20:03 +0000 (09:20 +0800)
commit d683cc49daf7c5afca8cd9654aaa1bf63cdf2ad9 upstream.

When encoding the NFSACL SETACL operation, reserve just the estimated
size of the ACL rather than a fixed maximum. This eliminates needless
zero padding on the wire that the server ignores.

Fixes: ee5dc7732bd5 ('NFS: Fix "kernel BUG at fs/nfs/nfs3xdr.c:1338!"')
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Zefan Li <lizefan@huawei.com>
fs/nfs/nfs3xdr.c

index a77cc9a3ce5561f1d8b23e78bb16ac49fcbf14b4..e60bbe2ff5a8de62f31a14b4332a91ac564aa715 100644 (file)
@@ -1333,7 +1333,7 @@ static void nfs3_xdr_enc_setacl3args(struct rpc_rqst *req,
        if (args->npages != 0)
                xdr_write_pages(xdr, args->pages, 0, args->len);
        else
-               xdr_reserve_space(xdr, NFS_ACL_INLINE_BUFSIZE);
+               xdr_reserve_space(xdr, args->len);
 
        error = nfsacl_encode(xdr->buf, base, args->inode,
                            (args->mask & NFS_ACL) ?