mirror of https://gitee.com/openkylin/linux.git
NFS: Fix a missing initialisation when reading the SELinux label
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>
This commit is contained in:
parent
12207f69b3
commit
fcb63a9bd8
|
@ -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))
|
||||
|
|
Loading…
Reference in New Issue