NFS: Handle NFS4ERR_MOVED during delegation recall
authorChuck Lever <chuck.lever@oracle.com>
Thu, 17 Oct 2013 18:13:24 +0000 (14:13 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 28 Oct 2013 19:25:30 +0000 (15:25 -0400)
When a server returns NFS4ERR_MOVED during a delegation recall,
trigger the new migration recovery logic in the state manager.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4proc.c

index a1f620950f11016c725e7ca288f141ff25fd0898..552e4f7a82258a7dde8a826a3b4484b771bc0c93 100644 (file)
@@ -1575,6 +1575,9 @@ static int nfs4_handle_delegation_recall_error(struct nfs_server *server, struct
                        /* Don't recall a delegation if it was lost */
                        nfs4_schedule_lease_recovery(server->nfs_client);
                        return -EAGAIN;
+               case -NFS4ERR_MOVED:
+                       nfs4_schedule_migration_recovery(server);
+                       return -EAGAIN;
                case -NFS4ERR_DELEG_REVOKED:
                case -NFS4ERR_ADMIN_REVOKED:
                case -NFS4ERR_BAD_STATEID: