diff options
Diffstat (limited to 'fs/nfsd/nfs3acl.c')
-rw-r--r-- | fs/nfsd/nfs3acl.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/nfsd/nfs3acl.c b/fs/nfsd/nfs3acl.c index 34cbbab6abd7..882b1a14bc3e 100644 --- a/fs/nfsd/nfs3acl.c +++ b/fs/nfsd/nfs3acl.c | |||
@@ -39,7 +39,7 @@ static __be32 nfsd3_proc_getacl(struct svc_rqst * rqstp, | |||
39 | if (nfserr) | 39 | if (nfserr) |
40 | RETURN_STATUS(nfserr); | 40 | RETURN_STATUS(nfserr); |
41 | 41 | ||
42 | inode = fh->fh_dentry->d_inode; | 42 | inode = d_inode(fh->fh_dentry); |
43 | 43 | ||
44 | if (argp->mask & ~(NFS_ACL|NFS_ACLCNT|NFS_DFACL|NFS_DFACLCNT)) | 44 | if (argp->mask & ~(NFS_ACL|NFS_ACLCNT|NFS_DFACL|NFS_DFACLCNT)) |
45 | RETURN_STATUS(nfserr_inval); | 45 | RETURN_STATUS(nfserr_inval); |
@@ -94,7 +94,7 @@ static __be32 nfsd3_proc_setacl(struct svc_rqst * rqstp, | |||
94 | if (nfserr) | 94 | if (nfserr) |
95 | goto out; | 95 | goto out; |
96 | 96 | ||
97 | inode = fh->fh_dentry->d_inode; | 97 | inode = d_inode(fh->fh_dentry); |
98 | if (!IS_POSIXACL(inode) || !inode->i_op->set_acl) { | 98 | if (!IS_POSIXACL(inode) || !inode->i_op->set_acl) { |
99 | error = -EOPNOTSUPP; | 99 | error = -EOPNOTSUPP; |
100 | goto out_errno; | 100 | goto out_errno; |
@@ -174,8 +174,8 @@ static int nfs3svc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p, | |||
174 | struct dentry *dentry = resp->fh.fh_dentry; | 174 | struct dentry *dentry = resp->fh.fh_dentry; |
175 | 175 | ||
176 | p = nfs3svc_encode_post_op_attr(rqstp, p, &resp->fh); | 176 | p = nfs3svc_encode_post_op_attr(rqstp, p, &resp->fh); |
177 | if (resp->status == 0 && dentry && dentry->d_inode) { | 177 | if (resp->status == 0 && dentry && d_really_is_positive(dentry)) { |
178 | struct inode *inode = dentry->d_inode; | 178 | struct inode *inode = d_inode(dentry); |
179 | struct kvec *head = rqstp->rq_res.head; | 179 | struct kvec *head = rqstp->rq_res.head; |
180 | unsigned int base; | 180 | unsigned int base; |
181 | int n; | 181 | int n; |