Patch "NFSv4.1 fix infinite loop on IO BAD_STATEID error" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
NFSv4.1 fix infinite loop on IO BAD_STATEID error
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
nfsv4.1-fix-infinite-loop-on-io-bad_stateid-error.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
0e3d3e5df07dcf8a50d96e0ecd6ab9a888f55dfcMon Sep 17 00:00:00 2001
From: Olga Kornievskaia <[email protected]>
Date: Thu, 30 Mar 2017 13:49:03 -0400
Subject: NFSv4.1 fix infinite loop on IO BAD_STATEID error
From: Olga Kornievskaia <[email protected]>
commit 0e3d3e5df07dcf8a50d96e0ecd6ab9a888f55dfc upstream.
Commit 63d63cbf5e03 "NFSv4.1: Don't recheck delegations that have already been checked" introduced a regression where when a client received BAD_STATEID error it would not send any TEST_STATEID and instead go into an infinite loop of resending the IO that caused the BAD_STATEID.
--- fs/nfs/nfs4proc.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-)
fs/nfs/nfs4proc.c +3 -6
@@ -2532,17 +2532,14 @@ static void nfs41_check_delegation_state }nfs4_stateid_copy (&stateid, &delegation->stateid); -if (test_bit (NFS_DELEGATION_REVOKED , &delegation->flags)) { +if (test_bit (NFS_DELEGATION_REVOKED , &delegation->flags) || + !test_and_clear_bit (NFS_DELEGATION_TEST_EXPIRED , + &delegation->flags)) {rcu_read_unlock ();nfs_finish_clear_delegation_stateid (state, &stateid);return ; } -if (!test_and_clear_bit (NFS_DELEGATION_TEST_EXPIRED , &delegation->flags)) { -rcu_read_unlock (); -return ; - } - cred =get_rpccred (delegation->cred);rcu_read_unlock (); status =nfs41_test_and_free_expired_stateid (server, &stateid, cred);
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/nfsv4.1-fix-infinite-loop-on-io-bad_stateid-error.patch