diff options
Diffstat (limited to 'fs/nfsd/nfs2acl.c')
| -rw-r--r-- | fs/nfsd/nfs2acl.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/fs/nfsd/nfs2acl.c b/fs/nfsd/nfs2acl.c index 1580ea6fd64d..d08cd88155c7 100644 --- a/fs/nfsd/nfs2acl.c +++ b/fs/nfsd/nfs2acl.c | |||
| @@ -104,22 +104,21 @@ static __be32 nfsacld_proc_setacl(struct svc_rqst * rqstp, | |||
| 104 | goto out; | 104 | goto out; |
| 105 | 105 | ||
| 106 | inode = d_inode(fh->fh_dentry); | 106 | inode = d_inode(fh->fh_dentry); |
| 107 | if (!IS_POSIXACL(inode) || !inode->i_op->set_acl) { | ||
| 108 | error = -EOPNOTSUPP; | ||
| 109 | goto out_errno; | ||
| 110 | } | ||
| 111 | 107 | ||
| 112 | error = fh_want_write(fh); | 108 | error = fh_want_write(fh); |
| 113 | if (error) | 109 | if (error) |
| 114 | goto out_errno; | 110 | goto out_errno; |
| 115 | 111 | ||
| 116 | error = inode->i_op->set_acl(inode, argp->acl_access, ACL_TYPE_ACCESS); | 112 | fh_lock(fh); |
| 113 | |||
| 114 | error = set_posix_acl(inode, ACL_TYPE_ACCESS, argp->acl_access); | ||
| 117 | if (error) | 115 | if (error) |
| 118 | goto out_drop_write; | 116 | goto out_drop_lock; |
| 119 | error = inode->i_op->set_acl(inode, argp->acl_default, | 117 | error = set_posix_acl(inode, ACL_TYPE_DEFAULT, argp->acl_default); |
| 120 | ACL_TYPE_DEFAULT); | ||
| 121 | if (error) | 118 | if (error) |
| 122 | goto out_drop_write; | 119 | goto out_drop_lock; |
| 120 | |||
| 121 | fh_unlock(fh); | ||
| 123 | 122 | ||
| 124 | fh_drop_write(fh); | 123 | fh_drop_write(fh); |
| 125 | 124 | ||
| @@ -131,7 +130,8 @@ out: | |||
| 131 | posix_acl_release(argp->acl_access); | 130 | posix_acl_release(argp->acl_access); |
| 132 | posix_acl_release(argp->acl_default); | 131 | posix_acl_release(argp->acl_default); |
| 133 | return nfserr; | 132 | return nfserr; |
| 134 | out_drop_write: | 133 | out_drop_lock: |
| 134 | fh_unlock(fh); | ||
| 135 | fh_drop_write(fh); | 135 | fh_drop_write(fh); |
| 136 | out_errno: | 136 | out_errno: |
| 137 | nfserr = nfserrno(error); | 137 | nfserr = nfserrno(error); |
