diff options
Diffstat (limited to 'fs/nfsd/nfsproc.c')
-rw-r--r-- | fs/nfsd/nfsproc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/nfsd/nfsproc.c b/fs/nfsd/nfsproc.c index b8680738f588..aecbcd34d336 100644 --- a/fs/nfsd/nfsproc.c +++ b/fs/nfsd/nfsproc.c | |||
@@ -223,7 +223,7 @@ nfsd_proc_create(struct svc_rqst *rqstp, struct nfsd_createargs *argp, | |||
223 | } | 223 | } |
224 | fh_init(newfhp, NFS_FHSIZE); | 224 | fh_init(newfhp, NFS_FHSIZE); |
225 | nfserr = fh_compose(newfhp, dirfhp->fh_export, dchild, dirfhp); | 225 | nfserr = fh_compose(newfhp, dirfhp->fh_export, dchild, dirfhp); |
226 | if (!nfserr && !dchild->d_inode) | 226 | if (!nfserr && d_really_is_negative(dchild)) |
227 | nfserr = nfserr_noent; | 227 | nfserr = nfserr_noent; |
228 | dput(dchild); | 228 | dput(dchild); |
229 | if (nfserr) { | 229 | if (nfserr) { |
@@ -241,7 +241,7 @@ nfsd_proc_create(struct svc_rqst *rqstp, struct nfsd_createargs *argp, | |||
241 | } | 241 | } |
242 | } | 242 | } |
243 | 243 | ||
244 | inode = newfhp->fh_dentry->d_inode; | 244 | inode = d_inode(newfhp->fh_dentry); |
245 | 245 | ||
246 | /* Unfudge the mode bits */ | 246 | /* Unfudge the mode bits */ |
247 | if (attr->ia_valid & ATTR_MODE) { | 247 | if (attr->ia_valid & ATTR_MODE) { |