Lines Matching refs:stateid
381 nfs4_stateid *stateid,
386 ops->test_and_free_expired(server, stateid, cred);
390 nfs4_stateid *stateid,
393 stateid->type = NFS4_REVOKED_STATEID_TYPE;
394 nfs4_test_and_free_stateid(server, stateid, cred);
398 const nfs4_stateid *stateid,
403 nfs4_stateid_copy(&tmp, stateid);
451 nfs4_recoverable_stateid(const nfs4_stateid *stateid)
453 if (!stateid)
455 switch (stateid->type) {
459 return stateid;
474 const nfs4_stateid *stateid;
482 stateid = nfs4_recoverable_stateid(exception->stateid);
483 if (stateid == NULL && state != NULL)
484 stateid = nfs4_recoverable_stateid(&state->stateid);
499 if (inode != NULL && stateid != NULL) {
501 stateid);
510 stateid);
513 if (stateid != NULL && stateid->type == NFS4_DELEGATION_STATEID_TYPE) {
1433 p->c_arg.stateid = &p->o_res.stateid;
1598 * Check for whether or not the caller may update the open stateid
1599 * to the value passed in by stateid.
1604 * i.e. The stateid seqids have to be initialised to 1, and
1608 const nfs4_stateid *stateid)
1612 if (nfs4_stateid_match_other(stateid, &state->open_stateid)) {
1613 if (nfs4_stateid_is_next(&state->open_stateid, stateid))
1617 /* The server returned a new stateid */
1620 if (stateid->seqid == cpu_to_be32(1))
1639 nfs4_stateid *stateid, fmode_t fmode)
1654 if (stateid == NULL)
1657 if (nfs4_stateid_match_other(stateid, &state->open_stateid) &&
1658 !nfs4_stateid_is_newer(stateid, &state->open_stateid)) {
1663 nfs4_stateid_copy(&state->stateid, stateid);
1664 nfs4_stateid_copy(&state->open_stateid, stateid);
1665 trace_nfs4_open_stateid_update(state->inode, stateid, 0);
1672 nfs4_stateid *stateid, fmode_t fmode)
1675 /* Ignore, if the CLOSE argment doesn't match the current stateid */
1677 nfs_clear_open_stateid_locked(state, stateid, fmode);
1684 const nfs4_stateid *stateid, nfs4_stateid *freeme)
1694 if (nfs_stateid_is_sequential(state, stateid))
1708 * update of the stateid until we are in sequence.
1713 trace_nfs4_open_stateid_update_wait(state->inode, stateid, 0);
1729 !nfs4_stateid_match_other(stateid, &state->open_stateid)) {
1735 nfs4_stateid_copy(&state->stateid, stateid);
1736 nfs4_stateid_copy(&state->open_stateid, stateid);
1737 trace_nfs4_open_stateid_update(state->inode, stateid, status);
1748 * serialise the stateid update
1780 * serialise the stateid update
1783 nfs4_stateid_copy(&state->stateid, deleg_stateid);
1791 nfs4_stateid_copy(&state->stateid, &state->open_stateid);
1828 delegation = &deleg_cur->stateid;
1829 else if (!nfs4_stateid_match_other(&deleg_cur->stateid, delegation))
1833 nfs_state_set_delegation(state, &deleg_cur->stateid, fmode);
1853 const nfs4_stateid *stateid)
1859 if (!nfs4_stateid_match_other(stateid, &lsp->ls_stateid))
1861 if (!nfs4_stateid_is_newer(stateid, &lsp->ls_stateid))
1863 nfs4_stateid_copy(&lsp->ls_stateid, stateid);
1892 nfs4_stateid stateid;
1910 nfs4_stateid_copy(&stateid, &delegation->stateid);
1920 /* Try to update the stateid using the delegation */
1921 if (update_open_stateid(state, NULL, &stateid, fmode))
1996 if (!update_open_stateid(state, &data->o_res.stateid,
2063 if (!update_open_stateid(state, &data->o_res.stateid,
2180 * Check if we need to update the current stateid.
2183 !nfs4_stateid_match(&state->stateid, &state->open_stateid)) {
2186 nfs4_stateid_copy(&state->stateid, &state->open_stateid);
2250 static int nfs4_handle_delegation_recall_error(struct nfs_server *server, struct nfs4_state *state, const nfs4_stateid *stateid, struct file_lock *fl, int err)
2286 stateid);
2306 struct nfs4_state *state, const nfs4_stateid *stateid)
2316 nfs4_stateid_copy(&opendata->o_arg.u.delegation, stateid);
2335 return nfs4_handle_delegation_recall_error(server, state, stateid, NULL, err);
2354 nfs4_stateid_copy(&data->o_res.stateid, &data->c_res.stateid);
2782 const nfs4_stateid *stateid)
2784 nfs_remove_bad_delegation(state->inode, stateid);
2803 nfs4_stateid *stateid,
2811 nfs4_stateid *stateid,
2816 switch (stateid->type) {
2826 status = nfs41_test_stateid(server, stateid, cred);
2837 nfs41_free_stateid(server, stateid, cred, true);
2844 nfs4_stateid stateid;
2859 nfs4_stateid_copy(&stateid, &delegation->stateid);
2872 status = nfs41_test_and_free_expired_stateid(server, &stateid, cred);
2875 nfs_finish_clear_delegation_stateid(state, &stateid);
2890 nfs4_stateid_match_other(&state->stateid, &tmp))
2897 * nfs41_check_expired_locks - possibly free a lock stateid
2901 * Returns NFS_OK if recovery for this stateid is now finished.
2949 * nfs41_check_open_stateid - possibly free an open stateid
2953 * Returns NFS_OK if recovery for this stateid is now finished.
2959 nfs4_stateid *stateid = &state->open_stateid;
2965 status = nfs41_test_and_free_expired_stateid(server, stateid, cred);
2969 stateid->type = NFS4_INVALID_STATEID_TYPE;
3322 if (nfs4_copy_delegation_stateid(inode, FMODE_WRITE, &arg->stateid, &delegation_cred)) {
3323 /* Use that stateid */
3332 &arg->stateid, &delegation_cred);
3340 nfs4_stateid_copy(&arg->stateid, &zero_stateid);
3350 trace_nfs4_setattr(inode, &arg->stateid, status);
3375 .stateid = &arg.stateid,
3422 * Update the seqid of an open stateid
3453 * Update the seqid of an open stateid after receiving
3558 .stateid = &calldata->arg.stateid,
3575 res_stateid = &calldata->res.stateid;
3588 if (nfs4_refresh_open_old_stateid(&calldata->arg.stateid,
3596 &calldata->arg.stateid,
3609 nfs_clear_open_stateid(state, &calldata->arg.stateid,
3657 nfs4_sync_open_stateid(&calldata->arg.stateid, state);
3726 * stateid's in the inode.
3763 if (!nfs4_copy_open_stateid(&calldata->arg.stateid, state))
4352 * need to in the size_change case to obtain a stateid.
5356 int nfs4_set_rw_stateid(nfs4_stateid *stateid,
5361 return nfs4_select_rw_stateid(ctx->state, fmode, l_ctx, stateid, NULL);
5365 static bool nfs4_stateid_is_current(nfs4_stateid *stateid,
5372 /* If the current stateid represents a lost lock, then exit */
5375 return nfs4_stateid_match(stateid, &_current_stateid);
5402 .stateid = &hdr->args.stateid,
5422 nfs4_stateid_is_current(&args->stateid,
5499 if (nfs4_set_rw_stateid(&hdr->args.stateid, hdr->args.context,
5518 .stateid = &hdr->args.stateid,
5540 nfs4_stateid_is_current(&args->stateid,
6207 nfs4_stateid_copy(&arg.stateid, &zero_stateid);
6526 nfs4_stateid stateid;
6545 .stateid = &data->stateid,
6567 data->args.stateid,
6576 if (!nfs4_refresh_delegation_stateid(&data->stateid, data->inode))
6577 nfs4_stateid_seqid_inc(&data->stateid);
6597 nfs_delegation_mark_returned(data->inode, data->args.stateid);
6652 static int _nfs4_proc_delegreturn(struct inode *inode, const struct cred *cred, const nfs4_stateid *stateid, int issync)
6681 data->args.stateid = &data->stateid;
6686 nfs4_stateid_copy(&data->stateid, stateid);
6727 int nfs4_proc_delegreturn(struct inode *inode, const struct cred *cred, const nfs4_stateid *stateid, int issync)
6733 err = _nfs4_proc_delegreturn(inode, cred, stateid, issync);
6734 trace_nfs4_delegreturn(inode, stateid, err);
6805 * Update the seqid of a lock stateid after receiving
6875 nfs4_stateid_copy(&p->arg.stateid, &lsp->ls_stateid);
6895 .stateid = &calldata->arg.stateid,
6905 &calldata->res.stateid))
6911 &calldata->arg.stateid,
6916 if (nfs4_sync_lock_stateid(&calldata->arg.stateid,
6921 if (nfs4_refresh_lock_old_stateid(&calldata->arg.stateid,
7174 nfs4_stateid_copy(&lsp->ls_stateid, &data->res.stateid);
7176 } else if (!nfs4_update_lock_stateid(lsp, &data->res.stateid))
7296 trace_nfs4_set_lock(fl, state, &data->res.stateid, cmd, ret);
7610 int nfs4_lock_delegation_recall(struct file_lock *fl, struct nfs4_state *state, const nfs4_stateid *stateid)
7624 return nfs4_handle_delegation_recall_error(server, state, stateid, fl, err);
8679 dfprintk(MOUNT, " stateid mode enabled\n");
9676 /* If the open stateid was bad, then recover it. */
9678 !nfs4_stateid_match_other(&lgp->args.stateid, &lo->plh_stateid)) {
9681 exception->stateid = &lgp->args.stateid;
9776 &lgp->res.stateid,
9819 if (nfs4_layout_refresh_old_stateid(&lrp->args.stateid,
9846 pnfs_layoutreturn_free_lsegs(lo, &lrp->args.stateid, &lrp->args.range,
9847 lrp->res.lrs_present ? &lrp->res.stateid : NULL);
9904 trace_nfs4_layoutreturn(lrp->args.inode, &lrp->args.stateid, status);
10054 trace_nfs4_layoutcommit(data->args.inode, &data->args.stateid, status);
10220 nfs4_stateid *stateid,
10225 .stateid = stateid,
10239 dprintk("NFS call test_stateid %p\n", stateid);
10273 * @stateid: state ID to test
10276 * Returns NFS_OK if the server recognizes that "stateid" is valid.
10281 nfs4_stateid *stateid,
10289 err = _nfs41_test_stateid(server, stateid, cred);
10342 * @stateid: state ID to release
10349 const nfs4_stateid *stateid,
10373 dprintk("NFS call free_stateid %p\n", stateid);
10378 nfs4_stateid_copy(&data->args.stateid, stateid);