From 189108e8bb41030c7f8a5cc4371d1d4afb5c949e Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 22 Jan 2024 15:30:57 -0800 Subject: [PATCH] 4.19-stable patches added patches: revert-nfsd-fix-possible-sleep-during-nfsd4_release_lockowner.patch --- ...sleep-during-nfsd4_release_lockowner.patch | 45 +++++++++++++++++++ queue-4.19/series | 1 + 2 files changed, 46 insertions(+) create mode 100644 queue-4.19/revert-nfsd-fix-possible-sleep-during-nfsd4_release_lockowner.patch diff --git a/queue-4.19/revert-nfsd-fix-possible-sleep-during-nfsd4_release_lockowner.patch b/queue-4.19/revert-nfsd-fix-possible-sleep-during-nfsd4_release_lockowner.patch new file mode 100644 index 00000000000..e528720d96c --- /dev/null +++ b/queue-4.19/revert-nfsd-fix-possible-sleep-during-nfsd4_release_lockowner.patch @@ -0,0 +1,45 @@ +From f11d60053191d3917c11757666bc31023711b5d7 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Mon, 22 Jan 2024 15:29:27 -0800 +Subject: Revert "NFSD: Fix possible sleep during nfsd4_release_lockowner()" + +From: Greg Kroah-Hartman + +This reverts commit ef481b262bba4f454351eec43f024fec942c2d4c which is +commit ce3c4ad7f4ce5db7b4f08a1e237d8dd94b39180b upstream. + +The maintainers ask it to be removed in this branch. + +Cc: Dai Ngo +Cc: Chuck Lever +Cc: Neil Brown +Cc: Jeff Layton +Link: https://lore.kernel.org/linux-nfs/3162C5BC-8E7C-4A9A-815C-09297B56FA17@oracle.com/T/#t +Signed-off-by: Greg Kroah-Hartman +--- + fs/nfsd/nfs4state.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +--- a/fs/nfsd/nfs4state.c ++++ b/fs/nfsd/nfs4state.c +@@ -6392,12 +6392,16 @@ nfsd4_release_lockowner(struct svc_rqst + if (sop->so_is_open_owner || !same_owner_str(sop, owner)) + continue; + +- if (atomic_read(&sop->so_count) != 1) { +- spin_unlock(&clp->cl_lock); +- return nfserr_locks_held; ++ /* see if there are still any locks associated with it */ ++ lo = lockowner(sop); ++ list_for_each_entry(stp, &sop->so_stateids, st_perstateowner) { ++ if (check_for_locks(stp->st_stid.sc_file, lo)) { ++ status = nfserr_locks_held; ++ spin_unlock(&clp->cl_lock); ++ return status; ++ } + } + +- lo = lockowner(sop); + nfs4_get_stateowner(sop); + break; + } diff --git a/queue-4.19/series b/queue-4.19/series index 868565a7e07..7abeeb208b7 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -144,3 +144,4 @@ kdb-censor-attempts-to-set-prompt-without-enable_mem.patch kdb-fix-a-potential-buffer-overflow-in-kdb_local.patch i2c-s3c24xx-fix-read-transfers-in-polling-mode.patch i2c-s3c24xx-fix-transferring-more-than-one-message-i.patch +revert-nfsd-fix-possible-sleep-during-nfsd4_release_lockowner.patch -- 2.47.3