|
@@ -435,7 +435,7 @@ nfsd4_set_nfs4_acl(struct svc_rqst *rqstp, struct svc_fh *fhp,
|
|
|
/* Get inode */
|
|
|
error = fh_verify(rqstp, fhp, 0 /* S_IFREG */, MAY_SATTR);
|
|
|
if (error)
|
|
|
- goto out;
|
|
|
+ return error;
|
|
|
|
|
|
dentry = fhp->fh_dentry;
|
|
|
inode = dentry->d_inode;
|
|
@@ -444,33 +444,25 @@ nfsd4_set_nfs4_acl(struct svc_rqst *rqstp, struct svc_fh *fhp,
|
|
|
|
|
|
host_error = nfs4_acl_nfsv4_to_posix(acl, &pacl, &dpacl, flags);
|
|
|
if (host_error == -EINVAL) {
|
|
|
- error = nfserr_attrnotsupp;
|
|
|
- goto out;
|
|
|
+ return nfserr_attrnotsupp;
|
|
|
} else if (host_error < 0)
|
|
|
goto out_nfserr;
|
|
|
|
|
|
host_error = set_nfsv4_acl_one(dentry, pacl, POSIX_ACL_XATTR_ACCESS);
|
|
|
if (host_error < 0)
|
|
|
- goto out_nfserr;
|
|
|
+ goto out_release;
|
|
|
|
|
|
- if (S_ISDIR(inode->i_mode)) {
|
|
|
+ if (S_ISDIR(inode->i_mode))
|
|
|
host_error = set_nfsv4_acl_one(dentry, dpacl, POSIX_ACL_XATTR_DEFAULT);
|
|
|
- if (host_error < 0)
|
|
|
- goto out_nfserr;
|
|
|
- }
|
|
|
-
|
|
|
- error = nfs_ok;
|
|
|
|
|
|
-out:
|
|
|
+out_release:
|
|
|
posix_acl_release(pacl);
|
|
|
posix_acl_release(dpacl);
|
|
|
- return (error);
|
|
|
out_nfserr:
|
|
|
if (host_error == -EOPNOTSUPP)
|
|
|
- error = nfserr_attrnotsupp;
|
|
|
+ return nfserr_attrnotsupp;
|
|
|
else
|
|
|
- error = nfserrno(host_error);
|
|
|
- goto out;
|
|
|
+ return nfserrno(host_error);
|
|
|
}
|
|
|
|
|
|
static struct posix_acl *
|