Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 297453
b: refs/heads/master
c: 59deeb9
h: refs/heads/master
i:
  297451: 2267757
v: v3
  • Loading branch information
J. Bruce Fields committed Mar 6, 2012
1 parent b797c7e commit 3368d39
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 11 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 41fd1e42f861e50e49f3d44127596344f2505f01
refs/heads/master: 59deeb9e5a2b535b95327c0d29bb3c2c4c3e8234
24 changes: 14 additions & 10 deletions trunk/fs/nfsd/nfs4proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -193,10 +193,13 @@ static __be32 nfsd_check_obj_isreg(struct svc_fh *fh)
static __be32
do_open_lookup(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_open *open)
{
struct svc_fh resfh;
struct svc_fh *resfh;
__be32 status;

fh_init(&resfh, NFS4_FHSIZE);
resfh = kmalloc(sizeof(struct svc_fh), GFP_KERNEL);
if (!resfh)
return nfserr_jukebox;
fh_init(resfh, NFS4_FHSIZE);
open->op_truncate = 0;

if (open->op_create) {
Expand All @@ -221,7 +224,7 @@ do_open_lookup(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_o
*/
status = do_nfsd_create(rqstp, current_fh, open->op_fname.data,
open->op_fname.len, &open->op_iattr,
&resfh, open->op_createmode,
resfh, open->op_createmode,
(u32 *)open->op_verf.data,
&open->op_truncate, &open->op_created);

Expand All @@ -235,28 +238,29 @@ do_open_lookup(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_o
FATTR4_WORD1_TIME_MODIFY);
} else {
status = nfsd_lookup(rqstp, current_fh,
open->op_fname.data, open->op_fname.len, &resfh);
open->op_fname.data, open->op_fname.len, resfh);
fh_unlock(current_fh);
if (status)
goto out;
status = nfsd_check_obj_isreg(&resfh);
status = nfsd_check_obj_isreg(resfh);
}
if (status)
goto out;

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 reply cache */
fh_copy_shallow(&open->op_openowner->oo_owner.so_replay.rp_openfh,
&resfh.fh_handle);
&resfh->fh_handle);
if (!open->op_created)
status = do_open_permission(rqstp, &resfh, open,
status = do_open_permission(rqstp, resfh, open,
NFSD_MAY_NOP);
set_change_info(&open->op_cinfo, current_fh);
fh_dup2(current_fh, &resfh);
fh_dup2(current_fh, resfh);
out:
fh_put(&resfh);
fh_put(resfh);
kfree(resfh);
return status;
}

Expand Down

0 comments on commit 3368d39

Please sign in to comment.