]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
nfs41: Handle session errors during delegation return
authorRicardo Labiaga <Ricardo.Labiaga@netapp.com>
Mon, 7 Dec 2009 14:22:29 +0000 (09:22 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 7 Dec 2009 14:22:29 +0000 (09:22 -0500)
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>
fs/nfs/nfs4proc.c

index acde77654521f534ca682110e82c338feda867ac..96dfff12736d9fda2486526a430a45c285584010 100644 (file)
@@ -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: