nfsd: return error if nfs4_setacl fails
authorJeff Layton <jlayton@kernel.org>
Mon, 7 Nov 2022 11:58:41 +0000 (06:58 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:32:00 +0000 (13:32 +0100)
[ Upstream commit 01d53a88c08951f88f2a42f1f1e6568928e0590e ]

With the addition of POSIX ACLs to struct nfsd_attrs, we no longer
return an error if setting the ACL fails. Ensure we return the na_aclerr
error on SETATTR if there is one.

Fixes: c0cbe70742f4 ("NFSD: add posix ACLs to struct nfsd_attrs")
Cc: Neil Brown <neilb@suse.de>
Reported-by: Yongcheng Yang <yoyang@redhat.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/nfsd/nfs4proc.c

index 8beb2bc..e91d091 100644 (file)
@@ -1133,6 +1133,8 @@ nfsd4_setattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
                                0, (time64_t)0);
        if (!status)
                status = nfserrno(attrs.na_labelerr);
+       if (!status)
+               status = nfserrno(attrs.na_aclerr);
 out:
        nfsd_attrs_free(&attrs);
        fh_drop_write(&cstate->current_fh);