Commit 41fd1e42 authored by J. Bruce Fields's avatar J. Bruce Fields

nfsd4: delay setting current filehandle till success

Compound processing stops on error, so the current filehandle won't be
used on error.  Thus the order here doesn't really matter.  It'll be
more convenient to do it later, though.
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent 508dc6e1
...@@ -247,16 +247,14 @@ do_open_lookup(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_o ...@@ -247,16 +247,14 @@ do_open_lookup(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_o
if (is_create_with_attrs(open) && open->op_acl != NULL) if (is_create_with_attrs(open) && open->op_acl != NULL)
do_set_nfs4_acl(rqstp, &resfh, open->op_acl, open->op_bmval); do_set_nfs4_acl(rqstp, &resfh, open->op_acl, open->op_bmval);
set_change_info(&open->op_cinfo, current_fh);
fh_dup2(current_fh, &resfh);
/* set reply cache */ /* set reply cache */
fh_copy_shallow(&open->op_openowner->oo_owner.so_replay.rp_openfh, fh_copy_shallow(&open->op_openowner->oo_owner.so_replay.rp_openfh,
&resfh.fh_handle); &resfh.fh_handle);
if (!open->op_created) if (!open->op_created)
status = do_open_permission(rqstp, current_fh, open, status = do_open_permission(rqstp, &resfh, open,
NFSD_MAY_NOP); NFSD_MAY_NOP);
set_change_info(&open->op_cinfo, current_fh);
fh_dup2(current_fh, &resfh);
out: out:
fh_put(&resfh); fh_put(&resfh);
return status; return status;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment