diff options
Diffstat (limited to 'fs/nfs/nfs4state.c')
-rw-r--r-- | fs/nfs/nfs4state.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 76bbac367880..da62f66a85ad 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c | |||
@@ -1814,7 +1814,6 @@ static int nfs4_recall_slot(struct nfs_client *clp) | |||
1814 | spin_unlock(&fc_tbl->slot_tbl_lock); | 1814 | spin_unlock(&fc_tbl->slot_tbl_lock); |
1815 | 1815 | ||
1816 | kfree(old); | 1816 | kfree(old); |
1817 | nfs4_end_drain_session(clp); | ||
1818 | return 0; | 1817 | return 0; |
1819 | } | 1818 | } |
1820 | 1819 | ||
@@ -1920,6 +1919,16 @@ static void nfs4_state_manager(struct nfs_client *clp) | |||
1920 | continue; | 1919 | continue; |
1921 | } | 1920 | } |
1922 | 1921 | ||
1922 | /* Recall session slots */ | ||
1923 | if (test_and_clear_bit(NFS4CLNT_RECALL_SLOT, &clp->cl_state) | ||
1924 | && nfs4_has_session(clp)) { | ||
1925 | section = "recall slot"; | ||
1926 | status = nfs4_recall_slot(clp); | ||
1927 | if (status < 0) | ||
1928 | goto out_error; | ||
1929 | continue; | ||
1930 | } | ||
1931 | |||
1923 | /* First recover reboot state... */ | 1932 | /* First recover reboot state... */ |
1924 | if (test_bit(NFS4CLNT_RECLAIM_REBOOT, &clp->cl_state)) { | 1933 | if (test_bit(NFS4CLNT_RECLAIM_REBOOT, &clp->cl_state)) { |
1925 | section = "reclaim reboot"; | 1934 | section = "reclaim reboot"; |
@@ -1953,16 +1962,6 @@ static void nfs4_state_manager(struct nfs_client *clp) | |||
1953 | nfs_client_return_marked_delegations(clp); | 1962 | nfs_client_return_marked_delegations(clp); |
1954 | continue; | 1963 | continue; |
1955 | } | 1964 | } |
1956 | /* Recall session slots */ | ||
1957 | if (test_and_clear_bit(NFS4CLNT_RECALL_SLOT, &clp->cl_state) | ||
1958 | && nfs4_has_session(clp)) { | ||
1959 | section = "recall slot"; | ||
1960 | status = nfs4_recall_slot(clp); | ||
1961 | if (status < 0) | ||
1962 | goto out_error; | ||
1963 | continue; | ||
1964 | } | ||
1965 | |||
1966 | 1965 | ||
1967 | nfs4_clear_state_manager_bit(clp); | 1966 | nfs4_clear_state_manager_bit(clp); |
1968 | /* Did we race with an attempt to give us more work? */ | 1967 | /* Did we race with an attempt to give us more work? */ |