• Home
  • Raw
  • Download

Lines Matching refs:open

131 	struct nfsd4_compound_state *cstate, struct nfsd4_open *open)  in nfsd4_check_open_attributes()  argument
135 if (open->op_create == NFS4_OPEN_CREATE) { in nfsd4_check_open_attributes()
136 if (open->op_createmode == NFS4_CREATE_UNCHECKED in nfsd4_check_open_attributes()
137 || open->op_createmode == NFS4_CREATE_GUARDED) in nfsd4_check_open_attributes()
139 open->op_bmval, nfsd_attrmask); in nfsd4_check_open_attributes()
140 else if (open->op_createmode == NFS4_CREATE_EXCLUSIVE4_1) in nfsd4_check_open_attributes()
142 open->op_bmval, nfsd41_ex_attrmask); in nfsd4_check_open_attributes()
149 is_create_with_attrs(struct nfsd4_open *open) in is_create_with_attrs() argument
151 return open->op_create == NFS4_OPEN_CREATE in is_create_with_attrs()
152 && (open->op_createmode == NFS4_CREATE_UNCHECKED in is_create_with_attrs()
153 || open->op_createmode == NFS4_CREATE_GUARDED in is_create_with_attrs()
154 || open->op_createmode == NFS4_CREATE_EXCLUSIVE4_1); in is_create_with_attrs()
188 do_open_permission(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_open *open, int … in do_open_permission() argument
192 if (open->op_truncate && in do_open_permission()
193 !(open->op_share_access & NFS4_SHARE_ACCESS_WRITE)) in do_open_permission()
198 if (open->op_share_access & NFS4_SHARE_ACCESS_READ) in do_open_permission()
200 if (open->op_share_access & NFS4_SHARE_ACCESS_WRITE) in do_open_permission()
202 if (open->op_share_deny & NFS4_SHARE_DENY_READ) in do_open_permission()
228 …owner_reply_cache(struct nfsd4_compound_state *cstate, struct nfsd4_open *open, struct svc_fh *res… in nfsd4_set_open_owner_reply_cache() argument
232 fh_copy_shallow(&open->op_openowner->oo_owner.so_replay.rp_openfh, in nfsd4_set_open_owner_reply_cache()
237 do_open_lookup(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_open *open in do_open_lookup() argument
247 open->op_truncate = 0; in do_open_lookup()
249 if (open->op_create) { in do_open_lookup()
269 status = do_nfsd_create(rqstp, current_fh, open->op_fname.data, in do_open_lookup()
270 open->op_fname.len, &open->op_iattr, in do_open_lookup()
271 *resfh, open->op_createmode, in do_open_lookup()
272 (u32 *)open->op_verf.data, in do_open_lookup()
273 &open->op_truncate, &open->op_created); in do_open_lookup()
275 if (!status && open->op_label.len) in do_open_lookup()
276 nfsd4_security_inode_setsecctx(*resfh, &open->op_label, open->op_bmval); in do_open_lookup()
283 if (nfsd_create_is_exclusive(open->op_createmode) && status == 0) in do_open_lookup()
284 open->op_bmval[1] |= (FATTR4_WORD1_TIME_ACCESS | in do_open_lookup()
294 open->op_fname.data, open->op_fname.len, *resfh); in do_open_lookup()
301 if (is_create_with_attrs(open) && open->op_acl != NULL) in do_open_lookup()
302 do_set_nfs4_acl(rqstp, *resfh, open->op_acl, open->op_bmval); in do_open_lookup()
304 nfsd4_set_open_owner_reply_cache(cstate, open, *resfh); in do_open_lookup()
306 if (open->op_created || in do_open_lookup()
307 open->op_claim_type == NFS4_OPEN_CLAIM_DELEGATE_CUR) in do_open_lookup()
309 status = do_open_permission(rqstp, *resfh, open, accmode); in do_open_lookup()
310 set_change_info(&open->op_cinfo, current_fh); in do_open_lookup()
316 …_open_fhandle(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_open *open) in do_open_fhandle() argument
326 memset(&open->op_cinfo, 0, sizeof(struct nfsd4_change_info)); in do_open_fhandle()
328 nfsd4_set_open_owner_reply_cache(cstate, open, current_fh); in do_open_fhandle()
330 open->op_truncate = (open->op_iattr.ia_valid & ATTR_SIZE) && in do_open_fhandle()
331 (open->op_iattr.ia_size == 0); in do_open_fhandle()
341 if (open->op_claim_type == NFS4_OPEN_CLAIM_DELEG_CUR_FH) in do_open_fhandle()
344 status = do_open_permission(rqstp, current_fh, open, accmode); in do_open_fhandle()
361 struct nfsd4_open *open) in nfsd4_open() argument
369 (int)open->op_fname.len, open->op_fname.data, in nfsd4_open()
370 open->op_openowner); in nfsd4_open()
373 if (open->op_create && open->op_claim_type != NFS4_OPEN_CLAIM_NULL) in nfsd4_open()
376 open->op_created = 0; in nfsd4_open()
384 open->op_claim_type != NFS4_OPEN_CLAIM_PREVIOUS) in nfsd4_open()
388 copy_clientid(&open->op_clientid, cstate->session); in nfsd4_open()
391 status = nfsd4_process_open1(cstate, open, nn); in nfsd4_open()
393 struct nfs4_replay *rp = &open->op_openowner->oo_owner.so_replay; in nfsd4_open()
406 if (open->op_xdr_error) { in nfsd4_open()
407 status = open->op_xdr_error; in nfsd4_open()
411 status = nfsd4_check_open_attributes(rqstp, cstate, open); in nfsd4_open()
418 if (opens_in_grace(net) && open->op_claim_type != NFS4_OPEN_CLAIM_PREVIOUS) in nfsd4_open()
421 if (!opens_in_grace(net) && open->op_claim_type == NFS4_OPEN_CLAIM_PREVIOUS) in nfsd4_open()
424 switch (open->op_claim_type) { in nfsd4_open()
427 status = do_open_lookup(rqstp, cstate, open, &resfh); in nfsd4_open()
432 status = nfs4_check_open_reclaim(&open->op_clientid, in nfsd4_open()
436 open->op_openowner->oo_flags |= NFS4_OO_CONFIRMED; in nfsd4_open()
439 status = do_open_fhandle(rqstp, cstate, open); in nfsd4_open()
447 open->op_claim_type); in nfsd4_open()
452 open->op_claim_type); in nfsd4_open()
461 status = nfsd4_process_open2(rqstp, resfh, open); in nfsd4_open()
462 WARN(status && open->op_created, in nfsd4_open()
471 nfsd4_cleanup_open_state(cstate, open); in nfsd4_open()
484 struct nfsd4_open *open = (struct nfsd4_open *)&op->u; in nfsd4_open_omfg() local
490 open->op_xdr_error = op->status; in nfsd4_open_omfg()
491 return nfsd4_open(rqstp, cstate, open); in nfsd4_open_omfg()