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:
Casey Bodley 2011-08-03 11:40:24 -04:00 committed by unknown
parent 8e5ab92b2b
commit 284c273999
2 changed files with 3 additions and 2 deletions

View file

@ -448,7 +448,8 @@ int nfs41_delegation_to_open(
/* save the new open stateid */ /* save the new open stateid */
memcpy(&open->stateid, &open_stateid, sizeof(stateid4)); memcpy(&open->stateid, &open_stateid, sizeof(stateid4));
open->do_close = 1; 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 /* something triggered client state recovery, and the open stateid
* has already been reclaimed; see recover_stateid_delegation() */ * has already been reclaimed; see recover_stateid_delegation() */
status = NFS4_OK; status = NFS4_OK;