diff --git a/0009-fix-race-between-__afr_eager_lock_handle-and-afr_wakeup_same_fd_delayed_op.patch b/0009-fix-race-between-__afr_eager_lock_handle-and-afr_wakeup_same_fd_delayed_op.patch new file mode 100644 index 0000000000000000000000000000000000000000..78bcdaadd2522de85e4fed480839bbeddff1eea8 --- /dev/null +++ b/0009-fix-race-between-__afr_eager_lock_handle-and-afr_wakeup_same_fd_delayed_op.patch @@ -0,0 +1,34 @@ +From 2060330ede637e9ed29a3568faec5e51eab0653b Mon Sep 17 00:00:00 2001 +From: Chen Jinhao <1195585098@qq.com> +Date: Thu, 28 Nov 2024 12:51:51 +0800 +Subject: [PATCH] afr: fix race between __afr_eager_lock_handle and + afr_wakeup_same_fd_delayed_op (#4425) (#4426) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Race between __afr_eager_lock_handle and afr_wakeup_same_fd_delayed_op will lead to +stale inodelks, which may cause subsequent IO blocked. +To avoid this race, set lock->release = _gf_true also in afr_wakeup_same_fd_delayed_op so +that a new transaction can be correctly handled as expected in __afr_eager_lock_handle. + +Fixes: #4425 + +Signed-off-by: chenjinhao +Co-authored-by: 陈瑾浩 10307298 +--- + xlators/cluster/afr/src/afr-common.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/xlators/cluster/afr/src/afr-common.c b/xlators/cluster/afr/src/afr-common.c +index cc7cf10f75d..f1a886629b8 100644 +--- a/xlators/cluster/afr/src/afr-common.c ++++ b/xlators/cluster/afr/src/afr-common.c +@@ -4205,6 +4205,7 @@ afr_wakeup_same_fd_delayed_op(xlator_t *this, afr_lock_t *lock, fd_t *fd) + if (gf_timer_call_cancel(this->ctx, lock->delay_timer)) { + local = NULL; + } else { ++ lock->release = _gf_true; + lock->delay_timer = NULL; + } + } else { diff --git a/glusterfs.spec b/glusterfs.spec index 53c594627056e290f91d5bee1ba8aaa048782d12..0767391e5d586ddc0de9201b76a5f43543a7227c 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -224,7 +224,7 @@ Summary: Distributed File System Name: glusterfs Version: 11.1 -Release: 8 +Release: 9 License: GPLv3 or GPLv2+ or LGPLv3+ URL: http://docs.gluster.org/ %if ( 0%{_for_fedora_koji_builds} ) @@ -245,6 +245,7 @@ Patch5: 0005-glusterd-fix-memory-leaks-due-to-lack-of-GF_FREE.patch Patch6: 0006-glusterd-fix-memory-leaks-detected-by-asan.patch Patch7: 0007-fix-use-after-free-in-readdir.patch Patch8: 0008-Fix-unsigned-type-size_t.patch +Patch9: 0009-fix-race-between-__afr_eager_lock_handle-and-afr_wakeup_same_fd_delayed_op.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) BuildRequires: rpcgen gperftools-devel libunwind-devel @@ -1507,6 +1508,9 @@ exit 0 %{_mandir}/man8/*gluster*.8* %changelog +* Thu Nov 06 2025 xuchenchen - 11.1-9 +- afr: fix race between __afr_eager_lock_handle and afr_wakeup_same_fd_delayed_op + * Fri Oct 31 2025 xuchenchen - 11.1-8 - Fix unsigned type "size_t"