From: Greg Kroah-Hartman Date: Sat, 26 Aug 2023 19:57:39 +0000 (+0200) Subject: drop queue-4.19/nfsv4-fix-dropped-lock-for-racing-open-and-delegation-return.patch X-Git-Tag: v6.1.49~55 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9ea21b9171dd1f04471e65b7f21f172352d36f34;p=thirdparty%2Fkernel%2Fstable-queue.git drop queue-4.19/nfsv4-fix-dropped-lock-for-racing-open-and-delegation-return.patch --- diff --git a/queue-4.19/nfsv4-fix-dropped-lock-for-racing-open-and-delegation-return.patch b/queue-4.19/nfsv4-fix-dropped-lock-for-racing-open-and-delegation-return.patch deleted file mode 100644 index d60de6ff916..00000000000 --- a/queue-4.19/nfsv4-fix-dropped-lock-for-racing-open-and-delegation-return.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 1cbc11aaa01f80577b67ae02c73ee781112125fd Mon Sep 17 00:00:00 2001 -From: Benjamin Coddington -Date: Fri, 30 Jun 2023 09:18:13 -0400 -Subject: NFSv4: Fix dropped lock for racing OPEN and delegation return - -From: Benjamin Coddington - -commit 1cbc11aaa01f80577b67ae02c73ee781112125fd upstream. - -Commmit f5ea16137a3f ("NFSv4: Retry LOCK on OLD_STATEID during delegation -return") attempted to solve this problem by using nfs4's generic async error -handling, but introduced a regression where v4.0 lock recovery would hang. -The additional complexity introduced by overloading that error handling is -not necessary for this case. This patch expects that commit to be -reverted. - -The problem as originally explained in the above commit is: - - There's a small window where a LOCK sent during a delegation return can - race with another OPEN on client, but the open stateid has not yet been - updated. In this case, the client doesn't handle the OLD_STATEID error - from the server and will lose this lock, emitting: - "NFS: nfs4_handle_delegation_recall_error: unhandled error -10024". - -Fix this by using the old_stateid refresh helpers if the server replies -with OLD_STATEID. - -Suggested-by: Trond Myklebust -Signed-off-by: Benjamin Coddington -Signed-off-by: Trond Myklebust -Signed-off-by: Greg Kroah-Hartman ---- - fs/nfs/nfs4proc.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - ---- a/fs/nfs/nfs4proc.c -+++ b/fs/nfs/nfs4proc.c -@@ -6644,8 +6644,15 @@ static void nfs4_lock_done(struct rpc_ta - } else if (!nfs4_update_lock_stateid(lsp, &data->res.stateid)) - goto out_restart; - break; -- case -NFS4ERR_BAD_STATEID: - case -NFS4ERR_OLD_STATEID: -+ if (data->arg.new_lock_owner != 0 && -+ nfs4_refresh_open_old_stateid(&data->arg.open_stateid, -+ lsp->ls_state)) -+ goto out_restart; -+ if (nfs4_refresh_lock_old_stateid(&data->arg.lock_stateid, lsp)) -+ goto out_restart; -+ fallthrough; -+ case -NFS4ERR_BAD_STATEID: - case -NFS4ERR_STALE_STATEID: - case -NFS4ERR_EXPIRED: - if (data->arg.new_lock_owner != 0) { diff --git a/queue-4.19/series b/queue-4.19/series index e2e1ed3a96b..bf315a9ee0a 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -119,4 +119,3 @@ bonding-fix-macvlan-over-alb-bond-support.patch ipvs-improve-robustness-to-the-ipvs-sysctl.patch ipvs-fix-racy-memcpy-in-proc_do_sync_threshold.patch ibmveth-use-dcbf-rather-than-dcbfl.patch -nfsv4-fix-dropped-lock-for-racing-open-and-delegation-return.patch