From: Myoungwon Oh Date: Tue, 12 Dec 2023 09:22:13 +0000 (+0900) Subject: crimson/os/seastore/epm: detect transaction confict during rbm write using OOL X-Git-Tag: v19.1.0~554^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=6d42ff4c7e6d3f2e5b97d3d4e16a4e1b1552af29;p=ceph.git crimson/os/seastore/epm: detect transaction confict during rbm write using OOL Signed-off-by: Myoungwon Oh --- diff --git a/src/crimson/os/seastore/extent_placement_manager.cc b/src/crimson/os/seastore/extent_placement_manager.cc index 0562d975337cf..3acd3dbd63def 100644 --- a/src/crimson/os/seastore/extent_placement_manager.cc +++ b/src/crimson/os/seastore/extent_placement_manager.cc @@ -802,13 +802,15 @@ RandomBlockOolWriter::do_write( } else { bp = ex->get_bptr(); } - return rbm->write(paddr + offset, - bp - ).handle_error( - alloc_write_iertr::pass_further{}, - crimson::ct_error::assert_all{ - "Invalid error when writing record"} - ).safe_then([&t, &ex, paddr, this, FNAME]() { + return trans_intr::make_interruptible( + rbm->write(paddr + offset, + bp + ).handle_error( + alloc_write_iertr::pass_further{}, + crimson::ct_error::assert_all{ + "Invalid error when writing record"} + ) + ).si_then([this, &t, &ex, paddr, FNAME] { TRACET("ool extent written at {} -- {}", t, paddr, *ex); if (ex->is_initial_pending()) {