diff options
Diffstat (limited to 'fs/nfsd/nfs4proc.c')
| -rw-r--r-- | fs/nfsd/nfs4proc.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index 2ed14dfd00a2..987e719fbae8 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c | |||
| @@ -235,17 +235,17 @@ do_open_lookup(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_o | |||
| 235 | */ | 235 | */ |
| 236 | if (open->op_createmode == NFS4_CREATE_EXCLUSIVE && status == 0) | 236 | if (open->op_createmode == NFS4_CREATE_EXCLUSIVE && status == 0) |
| 237 | open->op_bmval[1] = (FATTR4_WORD1_TIME_ACCESS | | 237 | open->op_bmval[1] = (FATTR4_WORD1_TIME_ACCESS | |
| 238 | FATTR4_WORD1_TIME_MODIFY); | 238 | FATTR4_WORD1_TIME_MODIFY); |
| 239 | } else { | 239 | } else { |
| 240 | status = nfsd_lookup(rqstp, current_fh, | 240 | status = nfsd_lookup(rqstp, current_fh, |
| 241 | open->op_fname.data, open->op_fname.len, resfh); | 241 | open->op_fname.data, open->op_fname.len, resfh); |
| 242 | fh_unlock(current_fh); | 242 | fh_unlock(current_fh); |
| 243 | if (status) | ||
| 244 | goto out; | ||
| 245 | status = nfsd_check_obj_isreg(resfh); | ||
| 246 | } | 243 | } |
| 247 | if (status) | 244 | if (status) |
| 248 | goto out; | 245 | goto out; |
| 246 | status = nfsd_check_obj_isreg(resfh); | ||
| 247 | if (status) | ||
| 248 | goto out; | ||
| 249 | 249 | ||
| 250 | if (is_create_with_attrs(open) && open->op_acl != NULL) | 250 | if (is_create_with_attrs(open) && open->op_acl != NULL) |
| 251 | do_set_nfs4_acl(rqstp, resfh, open->op_acl, open->op_bmval); | 251 | do_set_nfs4_acl(rqstp, resfh, open->op_acl, open->op_bmval); |
| @@ -841,6 +841,7 @@ nfsd4_setattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, | |||
| 841 | struct nfsd4_setattr *setattr) | 841 | struct nfsd4_setattr *setattr) |
| 842 | { | 842 | { |
| 843 | __be32 status = nfs_ok; | 843 | __be32 status = nfs_ok; |
| 844 | int err; | ||
| 844 | 845 | ||
| 845 | if (setattr->sa_iattr.ia_valid & ATTR_SIZE) { | 846 | if (setattr->sa_iattr.ia_valid & ATTR_SIZE) { |
| 846 | nfs4_lock_state(); | 847 | nfs4_lock_state(); |
| @@ -852,9 +853,9 @@ nfsd4_setattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, | |||
| 852 | return status; | 853 | return status; |
| 853 | } | 854 | } |
| 854 | } | 855 | } |
| 855 | status = fh_want_write(&cstate->current_fh); | 856 | err = fh_want_write(&cstate->current_fh); |
| 856 | if (status) | 857 | if (err) |
| 857 | return status; | 858 | return nfserrno(err); |
| 858 | status = nfs_ok; | 859 | status = nfs_ok; |
| 859 | 860 | ||
| 860 | status = check_attr_support(rqstp, cstate, setattr->sa_bmval, | 861 | status = check_attr_support(rqstp, cstate, setattr->sa_bmval, |
