]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rbd-mirror: release lock before calling m_async_op_tracker.finish_op() 62849/head
authorVinayBhaskar-V <vvarada@redhat.com>
Wed, 16 Apr 2025 15:52:21 +0000 (21:22 +0530)
committerVinayBhaskar-V <vvarada@redhat.com>
Thu, 17 Apr 2025 13:16:56 +0000 (18:46 +0530)
commit07e44074ae5d18dc1248e557fd1aa2dbe39792c6
treea161914a1b3321b53740ae3fef7eb9b947598d61
parentce19a4eb33f5c8cc8fcdf3d6b0305783a620dbfc
rbd-mirror: release lock before calling m_async_op_tracker.finish_op()

m_async_op_tracker.finish_op() in InstanceReplayer::start_image_replayers
may invoke a completion that re-enters code paths that attempt to acquire
the same mutex (m_lock), violating the non-recursive lock constraint.
This can be fixed by releasing the lock before calling
m_async_op_tracker.finish_op().

Fixes: https://tracker.ceph.com/issues/70951
Signed-off-by: VinayBhaskar-V <vvarada@redhat.com>
src/tools/rbd_mirror/InstanceReplayer.cc
src/tools/rbd_mirror/InstanceReplayer.h