NFS: Fix a missing initialisation when reading the SELinux label
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 1 Nov 2013 16:42:25 +0000 (12:42 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 1 Nov 2013 16:42:25 +0000 (12:42 -0400)
Ensure that _nfs4_do_get_security_label() also initialises the
SEQUENCE call correctly, by having it call into nfs4_call_sync().

Reported-by: Jeff Layton <jlayton@redhat.com>
Cc: stable@vger.kernel.org # 3.11+
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4proc.c

index d436c576e9881fdcc7f46c80219b0ef5977a6639..7e28b5c77cbc832e642dc02efc99187d1b1a77a2 100644 (file)
@@ -4602,7 +4602,7 @@ static int _nfs4_get_security_label(struct inode *inode, void *buf,
        struct nfs4_label label = {0, 0, buflen, buf};
 
        u32 bitmask[3] = { 0, 0, FATTR4_WORD2_SECURITY_LABEL };
-       struct nfs4_getattr_arg args = {
+       struct nfs4_getattr_arg arg = {
                .fh             = NFS_FH(inode),
                .bitmask        = bitmask,
        };
@@ -4613,14 +4613,14 @@ static int _nfs4_get_security_label(struct inode *inode, void *buf,
        };
        struct rpc_message msg = {
                .rpc_proc       = &nfs4_procedures[NFSPROC4_CLNT_GETATTR],
-               .rpc_argp       = &args,
+               .rpc_argp       = &arg,
                .rpc_resp       = &res,
        };
        int ret;
 
        nfs_fattr_init(&fattr);
 
-       ret = rpc_call_sync(server->client, &msg, 0);
+       ret = nfs4_call_sync(server->client, server, &msg, &arg.seq_args, &res.seq_res, 0);
        if (ret)
                return ret;
        if (!(fattr.valid & NFS_ATTR_FATTR_V4_SECURITY_LABEL))