Skip to content

Commit 6093f91

Browse files
committed
crimson/.../replicated_recovery_backend: take excl lock while pushes commit
Fixes: https://tracker.ceph.com/issues/69412 Signed-off-by: Samuel Just <[email protected]>
1 parent 46d5eec commit 6093f91

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/crimson/osd/replicated_recovery_backend.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -905,6 +905,9 @@ ReplicatedRecoveryBackend::_handle_pull_response(
905905

906906
if (complete) {
907907
pull_info.stat.num_objects_recovered++;
908+
auto manager = pg.obc_loader.get_obc_manager(
909+
recovery_waiter.obc);
910+
manager.lock_excl_sync(); /* cannot already be locked */
908911
co_await pg.get_recovery_handler()->on_local_recover(
909912
push_op.soid, get_recovering(push_op.soid).pull_info->recovery_info,
910913
false, t

0 commit comments

Comments
 (0)