summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Labiaga <Ricardo.Labiaga@netapp.com>2009-12-07 09:22:29 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2009-12-07 09:22:29 -0500
commitbcfa49f6f931ce4097309ca8501d842a6f0ac860 (patch)
treedf4906c0ed5d6a456bf728ce7792cade6eec2114
parentf455848a11cbbf15989609a46b24e81a6f13a08e (diff)
downloadlinux-stable-bcfa49f6f931ce4097309ca8501d842a6f0ac860.tar.gz
linux-stable-bcfa49f6f931ce4097309ca8501d842a6f0ac860.tar.bz2
linux-stable-bcfa49f6f931ce4097309ca8501d842a6f0ac860.zip
nfs41: Handle session errors during delegation return
Add session error handling to nfs4_open_delegation_recall() Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--fs/nfs/nfs4proc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index acde77654521..96dfff12736d 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -1168,6 +1168,14 @@ int nfs4_open_delegation_recall(struct nfs_open_context *ctx, struct nfs4_state
case -ENOENT:
case -ESTALE:
goto out;
+ case -NFS4ERR_BADSESSION:
+ case -NFS4ERR_BADSLOT:
+ case -NFS4ERR_BAD_HIGH_SLOT:
+ case -NFS4ERR_CONN_NOT_BOUND_TO_SESSION:
+ case -NFS4ERR_DEADSESSION:
+ nfs4_schedule_state_recovery(
+ server->nfs_client);
+ goto out;
case -NFS4ERR_STALE_CLIENTID:
case -NFS4ERR_STALE_STATEID:
case -NFS4ERR_EXPIRED: