opendata 1818 fs/nfs/nfs4proc.c static struct nfs4_state *nfs4_try_open_cached(struct nfs4_opendata *opendata) opendata 1820 fs/nfs/nfs4proc.c struct nfs4_state *state = opendata->state; opendata 1822 fs/nfs/nfs4proc.c int open_mode = opendata->o_arg.open_flags; opendata 1823 fs/nfs/nfs4proc.c fmode_t fmode = opendata->o_arg.fmode; opendata 1824 fs/nfs/nfs4proc.c enum open_claim_type4 claim = opendata->o_arg.claim; opendata 1845 fs/nfs/nfs4proc.c nfs_release_seqid(opendata->o_arg.seqid); opendata 1846 fs/nfs/nfs4proc.c if (!opendata->is_recover) { opendata 2058 fs/nfs/nfs4proc.c struct nfs4_opendata *opendata; opendata 2060 fs/nfs/nfs4proc.c opendata = nfs4_opendata_alloc(ctx->dentry, state->owner, 0, 0, opendata 2062 fs/nfs/nfs4proc.c if (opendata == NULL) opendata 2064 fs/nfs/nfs4proc.c opendata->state = state; opendata 2066 fs/nfs/nfs4proc.c return opendata; opendata 2069 fs/nfs/nfs4proc.c static int nfs4_open_recover_helper(struct nfs4_opendata *opendata, opendata 2075 fs/nfs/nfs4proc.c if (!nfs4_mode_match_open_stateid(opendata->state, fmode)) opendata 2077 fs/nfs/nfs4proc.c opendata->o_arg.open_flags = 0; opendata 2078 fs/nfs/nfs4proc.c opendata->o_arg.fmode = fmode; opendata 2079 fs/nfs/nfs4proc.c opendata->o_arg.share_access = nfs4_map_atomic_open_share( opendata 2080 fs/nfs/nfs4proc.c NFS_SB(opendata->dentry->d_sb), opendata 2082 fs/nfs/nfs4proc.c memset(&opendata->o_res, 0, sizeof(opendata->o_res)); opendata 2083 fs/nfs/nfs4proc.c memset(&opendata->c_res, 0, sizeof(opendata->c_res)); opendata 2084 fs/nfs/nfs4proc.c nfs4_init_opendata_res(opendata); opendata 2085 fs/nfs/nfs4proc.c ret = _nfs4_recover_proc_open(opendata); opendata 2088 fs/nfs/nfs4proc.c newstate = nfs4_opendata_to_nfs4_state(opendata); opendata 2091 fs/nfs/nfs4proc.c if (newstate != opendata->state) opendata 2097 fs/nfs/nfs4proc.c static int nfs4_open_recover(struct nfs4_opendata *opendata, struct nfs4_state *state) opendata 2103 fs/nfs/nfs4proc.c ret = nfs4_open_recover_helper(opendata, FMODE_READ|FMODE_WRITE); opendata 2106 fs/nfs/nfs4proc.c ret = nfs4_open_recover_helper(opendata, FMODE_WRITE); opendata 2109 fs/nfs/nfs4proc.c ret = nfs4_open_recover_helper(opendata, FMODE_READ); opendata 2133 fs/nfs/nfs4proc.c struct nfs4_opendata *opendata; opendata 2137 fs/nfs/nfs4proc.c opendata = nfs4_open_recoverdata_alloc(ctx, state, opendata 2139 fs/nfs/nfs4proc.c if (IS_ERR(opendata)) opendata 2140 fs/nfs/nfs4proc.c return PTR_ERR(opendata); opendata 2146 fs/nfs/nfs4proc.c opendata->o_arg.u.delegation_type = delegation_type; opendata 2147 fs/nfs/nfs4proc.c status = nfs4_open_recover(opendata, state); opendata 2148 fs/nfs/nfs4proc.c nfs4_opendata_put(opendata); opendata 2242 fs/nfs/nfs4proc.c struct nfs4_opendata *opendata; opendata 2245 fs/nfs/nfs4proc.c opendata = nfs4_open_recoverdata_alloc(ctx, state, opendata 2247 fs/nfs/nfs4proc.c if (IS_ERR(opendata)) opendata 2248 fs/nfs/nfs4proc.c return PTR_ERR(opendata); opendata 2249 fs/nfs/nfs4proc.c nfs4_stateid_copy(&opendata->o_arg.u.delegation, stateid); opendata 2251 fs/nfs/nfs4proc.c err = nfs4_open_recover_helper(opendata, FMODE_READ|FMODE_WRITE); opendata 2256 fs/nfs/nfs4proc.c err = nfs4_open_recover_helper(opendata, FMODE_WRITE); opendata 2261 fs/nfs/nfs4proc.c err = nfs4_open_recover_helper(opendata, FMODE_READ); opendata 2267 fs/nfs/nfs4proc.c nfs4_opendata_put(opendata); opendata 2560 fs/nfs/nfs4proc.c struct nfs4_opendata *opendata, opendata 2569 fs/nfs/nfs4proc.c if (opendata->o_res.access_supported == 0) opendata 2583 fs/nfs/nfs4proc.c } else if ((fmode & FMODE_READ) && !opendata->file_created) opendata 2587 fs/nfs/nfs4proc.c nfs_access_set_mask(&cache, opendata->o_res.access_result); opendata 2653 fs/nfs/nfs4proc.c struct nfs4_opendata *opendata; opendata 2656 fs/nfs/nfs4proc.c opendata = nfs4_open_recoverdata_alloc(ctx, state, opendata 2658 fs/nfs/nfs4proc.c if (IS_ERR(opendata)) opendata 2659 fs/nfs/nfs4proc.c return PTR_ERR(opendata); opendata 2660 fs/nfs/nfs4proc.c ret = nfs4_open_recover(opendata, state); opendata 2663 fs/nfs/nfs4proc.c nfs4_opendata_put(opendata); opendata 2921 fs/nfs/nfs4proc.c static unsigned nfs4_exclusive_attrset(struct nfs4_opendata *opendata, opendata 2924 fs/nfs/nfs4proc.c const __u32 *bitmask = opendata->o_arg.server->exclcreat_bitmask; opendata 2930 fs/nfs/nfs4proc.c attrset[i] = opendata->o_res.attrset[i]; opendata 2931 fs/nfs/nfs4proc.c if (opendata->o_arg.createmode == NFS4_CREATE_EXCLUSIVE4_1) opendata 2935 fs/nfs/nfs4proc.c ret = (opendata->o_arg.createmode == NFS4_CREATE_EXCLUSIVE) ? opendata 2957 fs/nfs/nfs4proc.c static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, opendata 2960 fs/nfs/nfs4proc.c struct nfs4_state_owner *sp = opendata->owner; opendata 2965 fs/nfs/nfs4proc.c struct inode *dir = d_inode(opendata->dir); opendata 2973 fs/nfs/nfs4proc.c ret = _nfs4_proc_open(opendata, ctx); opendata 2977 fs/nfs/nfs4proc.c state = _nfs4_opendata_to_nfs4_state(opendata); opendata 2984 fs/nfs/nfs4proc.c if (opendata->o_res.rflags & NFS4_OPEN_RESULT_MAY_NOTIFY_LOCK) opendata 2987 fs/nfs/nfs4proc.c dentry = opendata->dentry; opendata 3001 fs/nfs/nfs4proc.c switch(opendata->o_arg.claim) { opendata 3007 fs/nfs/nfs4proc.c if (!opendata->rpc_done) opendata 3009 fs/nfs/nfs4proc.c if (opendata->o_res.delegation_type != 0) opendata 3015 fs/nfs/nfs4proc.c pnfs_parse_lgopen(state->inode, opendata->lgp, ctx); opendata 3017 fs/nfs/nfs4proc.c ret = nfs4_opendata_access(sp->so_cred, opendata, state, opendata 3029 fs/nfs/nfs4proc.c if (!opendata->cancelled) opendata 3030 fs/nfs/nfs4proc.c nfs4_sequence_free_slot(&opendata->o_res.seq_res); opendata 3046 fs/nfs/nfs4proc.c struct nfs4_opendata *opendata; opendata 3072 fs/nfs/nfs4proc.c opendata = nfs4_opendata_alloc(dentry, sp, fmode, flags, opendata 3074 fs/nfs/nfs4proc.c if (opendata == NULL) opendata 3086 fs/nfs/nfs4proc.c if (!opendata->f_attr.mdsthreshold) { opendata 3087 fs/nfs/nfs4proc.c opendata->f_attr.mdsthreshold = pnfs_mdsthreshold_alloc(); opendata 3088 fs/nfs/nfs4proc.c if (!opendata->f_attr.mdsthreshold) opendata 3091 fs/nfs/nfs4proc.c opendata->o_arg.open_bitmap = &nfs4_pnfs_open_bitmap[0]; opendata 3094 fs/nfs/nfs4proc.c opendata->state = nfs4_get_open_state(d_inode(dentry), sp); opendata 3096 fs/nfs/nfs4proc.c status = _nfs4_open_and_get_state(opendata, flags, ctx); opendata 3101 fs/nfs/nfs4proc.c if ((opendata->o_arg.open_flags & (O_CREAT|O_EXCL)) == (O_CREAT|O_EXCL) && opendata 3102 fs/nfs/nfs4proc.c (opendata->o_arg.createmode != NFS4_CREATE_GUARDED)) { opendata 3103 fs/nfs/nfs4proc.c unsigned attrs = nfs4_exclusive_attrset(opendata, sattr, &label); opendata 3112 fs/nfs/nfs4proc.c nfs_fattr_init(opendata->o_res.f_attr); opendata 3114 fs/nfs/nfs4proc.c opendata->o_res.f_attr, sattr, opendata 3118 fs/nfs/nfs4proc.c opendata->o_res.f_attr); opendata 3119 fs/nfs/nfs4proc.c nfs_setsecurity(state->inode, opendata->o_res.f_attr, olabel); opendata 3124 fs/nfs/nfs4proc.c if (opened && opendata->file_created) opendata 3127 fs/nfs/nfs4proc.c if (pnfs_use_threshold(ctx_th, opendata->f_attr.mdsthreshold, server)) { opendata 3128 fs/nfs/nfs4proc.c *ctx_th = opendata->f_attr.mdsthreshold; opendata 3129 fs/nfs/nfs4proc.c opendata->f_attr.mdsthreshold = NULL; opendata 3134 fs/nfs/nfs4proc.c nfs4_opendata_put(opendata); opendata 3140 fs/nfs/nfs4proc.c nfs4_opendata_put(opendata);