Fixing lease renewal
authorOlga Kornievskaia <kolga@netapp.com>
Wed, 24 Sep 2014 22:11:28 +0000 (18:11 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Oct 2014 16:40:13 +0000 (09:40 -0700)
commit 8faaa6d5d48b201527e0451296d9e71d23afb362 upstream.

Commit c9fdeb28 removed a 'continue' after checking if the lease needs
to be renewed. However, if client hasn't moved, the code falls down to
starting reboot recovery erroneously (ie., sends open reclaim and gets
back stale_clientid error) before recovering from getting stale_clientid
on the renew operation.

Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Fixes: c9fdeb280b8c (NFS: Add basic migration support to state manager thread)
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/nfs/nfs4state.c

index 848f6853c59e49c8b3b570ddc99626bfab935212..05ce02a2f2d4083d1b87d7a1c306865617858f84 100644 (file)
@@ -2372,6 +2372,7 @@ static void nfs4_state_manager(struct nfs_client *clp)
                        status = nfs4_check_lease(clp);
                        if (status < 0)
                                goto out_error;
+                       continue;
                }
 
                if (test_and_clear_bit(NFS4CLNT_MOVED, &clp->cl_state)) {