Lines Matching refs:opendata
1374 static struct nfs4_state *nfs4_try_open_cached(struct nfs4_opendata *opendata) in nfs4_try_open_cached() argument
1376 struct nfs4_state *state = opendata->state; in nfs4_try_open_cached()
1379 int open_mode = opendata->o_arg.open_flags; in nfs4_try_open_cached()
1380 fmode_t fmode = opendata->o_arg.fmode; in nfs4_try_open_cached()
1401 nfs_release_seqid(opendata->o_arg.seqid); in nfs4_try_open_cached()
1402 if (!opendata->is_recover) { in nfs4_try_open_cached()
1549 struct nfs4_opendata *opendata; in nfs4_open_recoverdata_alloc() local
1551 opendata = nfs4_opendata_alloc(ctx->dentry, state->owner, 0, 0, in nfs4_open_recoverdata_alloc()
1553 if (opendata == NULL) in nfs4_open_recoverdata_alloc()
1555 opendata->state = state; in nfs4_open_recoverdata_alloc()
1557 return opendata; in nfs4_open_recoverdata_alloc()
1560 static int nfs4_open_recover_helper(struct nfs4_opendata *opendata, fmode_t fmode, struct nfs4_stat… in nfs4_open_recover_helper() argument
1565 opendata->o_arg.open_flags = 0; in nfs4_open_recover_helper()
1566 opendata->o_arg.fmode = fmode; in nfs4_open_recover_helper()
1567 opendata->o_arg.share_access = nfs4_map_atomic_open_share( in nfs4_open_recover_helper()
1568 NFS_SB(opendata->dentry->d_sb), in nfs4_open_recover_helper()
1570 memset(&opendata->o_res, 0, sizeof(opendata->o_res)); in nfs4_open_recover_helper()
1571 memset(&opendata->c_res, 0, sizeof(opendata->c_res)); in nfs4_open_recover_helper()
1572 nfs4_init_opendata_res(opendata); in nfs4_open_recover_helper()
1573 ret = _nfs4_recover_proc_open(opendata); in nfs4_open_recover_helper()
1576 newstate = nfs4_opendata_to_nfs4_state(opendata); in nfs4_open_recover_helper()
1584 static int nfs4_open_recover(struct nfs4_opendata *opendata, struct nfs4_state *state) in nfs4_open_recover() argument
1598 ret = nfs4_open_recover_helper(opendata, FMODE_READ|FMODE_WRITE, &newstate); in nfs4_open_recover()
1605 ret = nfs4_open_recover_helper(opendata, FMODE_WRITE, &newstate); in nfs4_open_recover()
1612 ret = nfs4_open_recover_helper(opendata, FMODE_READ, &newstate); in nfs4_open_recover()
1639 struct nfs4_opendata *opendata; in _nfs4_do_open_reclaim() local
1643 opendata = nfs4_open_recoverdata_alloc(ctx, state, in _nfs4_do_open_reclaim()
1645 if (IS_ERR(opendata)) in _nfs4_do_open_reclaim()
1646 return PTR_ERR(opendata); in _nfs4_do_open_reclaim()
1652 opendata->o_arg.u.delegation_type = delegation_type; in _nfs4_do_open_reclaim()
1653 status = nfs4_open_recover(opendata, state); in _nfs4_do_open_reclaim()
1654 nfs4_opendata_put(opendata); in _nfs4_do_open_reclaim()
1743 struct nfs4_opendata *opendata; in nfs4_open_delegation_recall() local
1746 opendata = nfs4_open_recoverdata_alloc(ctx, state, in nfs4_open_delegation_recall()
1748 if (IS_ERR(opendata)) in nfs4_open_delegation_recall()
1749 return PTR_ERR(opendata); in nfs4_open_delegation_recall()
1750 nfs4_stateid_copy(&opendata->o_arg.u.delegation, stateid); in nfs4_open_delegation_recall()
1751 err = nfs4_open_recover(opendata, state); in nfs4_open_delegation_recall()
1752 nfs4_opendata_put(opendata); in nfs4_open_delegation_recall()
2040 struct nfs4_opendata *opendata, in nfs4_opendata_access() argument
2049 if (opendata->o_res.access_supported == 0) in nfs4_opendata_access()
2060 } else if ((fmode & FMODE_READ) && !opendata->file_created) in nfs4_opendata_access()
2065 nfs_access_set_mask(&cache, opendata->o_res.access_result); in nfs4_opendata_access()
2130 struct nfs4_opendata *opendata; in _nfs4_open_expired() local
2133 opendata = nfs4_open_recoverdata_alloc(ctx, state, in _nfs4_open_expired()
2135 if (IS_ERR(opendata)) in _nfs4_open_expired()
2136 return PTR_ERR(opendata); in _nfs4_open_expired()
2137 ret = nfs4_open_recover(opendata, state); in _nfs4_open_expired()
2140 nfs4_opendata_put(opendata); in _nfs4_open_expired()
2291 static inline void nfs4_exclusive_attrset(struct nfs4_opendata *opendata, struct iattr *sattr) in nfs4_exclusive_attrset() argument
2293 if ((opendata->o_res.attrset[1] & FATTR4_WORD1_TIME_ACCESS) && in nfs4_exclusive_attrset()
2297 if ((opendata->o_res.attrset[1] & FATTR4_WORD1_TIME_MODIFY) && in nfs4_exclusive_attrset()
2302 static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, in _nfs4_open_and_get_state() argument
2307 struct nfs4_state_owner *sp = opendata->owner; in _nfs4_open_and_get_state()
2316 ret = _nfs4_proc_open(opendata); in _nfs4_open_and_get_state()
2320 state = nfs4_opendata_to_nfs4_state(opendata); in _nfs4_open_and_get_state()
2327 dentry = opendata->dentry; in _nfs4_open_and_get_state()
2333 dentry = opendata->dentry; in _nfs4_open_and_get_state()
2339 nfs_save_change_attribute(d_inode(opendata->dir))); in _nfs4_open_and_get_state()
2342 ret = nfs4_opendata_access(sp->so_cred, opendata, state, fmode, flags); in _nfs4_open_and_get_state()
2369 struct nfs4_opendata *opendata; in _nfs4_do_open() local
2393 opendata = nfs4_opendata_alloc(dentry, sp, fmode, flags, sattr, in _nfs4_do_open()
2395 if (opendata == NULL) in _nfs4_do_open()
2407 if (!opendata->f_attr.mdsthreshold) { in _nfs4_do_open()
2408 opendata->f_attr.mdsthreshold = pnfs_mdsthreshold_alloc(); in _nfs4_do_open()
2409 if (!opendata->f_attr.mdsthreshold) in _nfs4_do_open()
2412 opendata->o_arg.open_bitmap = &nfs4_pnfs_open_bitmap[0]; in _nfs4_do_open()
2415 opendata->state = nfs4_get_open_state(d_inode(dentry), sp); in _nfs4_do_open()
2417 status = _nfs4_open_and_get_state(opendata, fmode, flags, ctx); in _nfs4_do_open()
2422 if ((opendata->o_arg.open_flags & (O_CREAT|O_EXCL)) == (O_CREAT|O_EXCL) && in _nfs4_do_open()
2423 (opendata->o_arg.createmode != NFS4_CREATE_GUARDED)) { in _nfs4_do_open()
2424 nfs4_exclusive_attrset(opendata, sattr); in _nfs4_do_open()
2426 nfs_fattr_init(opendata->o_res.f_attr); in _nfs4_do_open()
2428 opendata->o_res.f_attr, sattr, in _nfs4_do_open()
2432 opendata->o_res.f_attr); in _nfs4_do_open()
2433 nfs_setsecurity(state->inode, opendata->o_res.f_attr, olabel); in _nfs4_do_open()
2436 if (opendata->file_created) in _nfs4_do_open()
2439 if (pnfs_use_threshold(ctx_th, opendata->f_attr.mdsthreshold, server)) { in _nfs4_do_open()
2440 *ctx_th = opendata->f_attr.mdsthreshold; in _nfs4_do_open()
2441 opendata->f_attr.mdsthreshold = NULL; in _nfs4_do_open()
2446 nfs4_opendata_put(opendata); in _nfs4_do_open()
2452 nfs4_opendata_put(opendata); in _nfs4_do_open()