recovery: fix for nfs41_delegation_to_open()
emc server uses STALE_STATEID error after server reboot, while linux server uses BAD_STATEID Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
parent
8e5ab92b2b
commit
284c273999
2 changed files with 3 additions and 2 deletions
|
|
@ -448,7 +448,8 @@ int nfs41_delegation_to_open(
|
|||
/* save the new open stateid */
|
||||
memcpy(&open->stateid, &open_stateid, sizeof(stateid4));
|
||||
open->do_close = 1;
|
||||
} else if (status == NFS4ERR_BAD_STATEID && open->do_close) {
|
||||
} else if (open->do_close && (status == NFS4ERR_BAD_STATEID ||
|
||||
status == NFS4ERR_STALE_STATEID || status == NFS4ERR_EXPIRED)) {
|
||||
/* something triggered client state recovery, and the open stateid
|
||||
* has already been reclaimed; see recover_stateid_delegation() */
|
||||
status = NFS4_OK;
|
||||
|
|
|
|||
|
|
@ -521,7 +521,7 @@ static bool_t recover_stateid_delegation(
|
|||
AcquireSRWLockShared(&stateid->open->lock);
|
||||
if (argop->op == OP_OPEN && stateid->open->do_close) {
|
||||
/* for nfs41_delegation_to_open(); if we've already reclaimed
|
||||
* an open stateid, just fail this OPEN with BAD_STATEID */
|
||||
* an open stateid, just fail this OPEN with BAD_STATEID */
|
||||
} else if (stateid->open->delegation.state) {
|
||||
nfs41_delegation_state *deleg = stateid->open->delegation.state;
|
||||
stateid4 *source = &deleg->state.stateid;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue