]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/object_data_handler: minor bug fix
authorXuehan Xu <xuxuehan@qianxin.com>
Fri, 10 May 2024 08:34:02 +0000 (16:34 +0800)
committerMatan Breizman <mbreizma@redhat.com>
Thu, 13 Jun 2024 12:25:49 +0000 (15:25 +0300)
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
(cherry picked from commit ab312f3e2b5db784afc4427c0511afbebb8838f8)

src/crimson/os/seastore/object_data_handler.cc
src/test/crimson/seastore/test_transaction_manager.cc

index b6d5a86dd6d6936019daac351a122a843cabb2e9..152d6152df54f10617dac0fa8fd5d88f433a8d77 100644 (file)
@@ -465,6 +465,7 @@ ObjectDataHandler::write_ret do_remappings(
          return ObjectDataHandler::write_iertr::now();
        });
       } else if (region.is_remap2()) {
+       auto pin_key = region.pin->get_key();
         return ctx.tm.remap_pin<ObjectDataBlock, 2>(
           ctx.t,
           std::move(region.pin),
@@ -472,10 +473,10 @@ ObjectDataHandler::write_ret do_remappings(
             region.create_left_remap_entry(),
             region.create_right_remap_entry()
           }
-        ).si_then([&region](auto pins) {
+        ).si_then([&region, pin_key](auto pins) {
           ceph_assert(pins.size() == 2);
-          ceph_assert(region.pin->get_key() == pins[0]->get_key());
-          ceph_assert(region.pin->get_key() + pins[0]->get_length() +
+          ceph_assert(pin_key == pins[0]->get_key());
+          ceph_assert(pin_key + pins[0]->get_length() +
             region.new_len == pins[1]->get_key());
           return ObjectDataHandler::write_iertr::now();
         });
index 901645317a7282e1e7b0bdaa0b36a340254e55b1..36e08001971d51156a6e864a65156e322126a45b 100644 (file)
@@ -1111,7 +1111,8 @@ struct transaction_manager_test_t :
       return nullptr;
     }
     auto o_laddr = opin->get_key();
-    auto data_laddr = opin->is_indirect()
+    bool indirect_opin = opin->is_indirect();
+    auto data_laddr = indirect_opin
       ? opin->get_intermediate_base()
       : o_laddr;
     auto pin = with_trans_intr(*(t.t), [&](auto& trans) {
@@ -1128,7 +1129,7 @@ struct transaction_manager_test_t :
     if (t.t->is_conflicted()) {
       return nullptr;
     }
-    if (opin->is_indirect()) {
+    if (indirect_opin) {
       test_mappings.inc_ref(data_laddr, t.mapping_delta);
     } else {
       test_mappings.dec_ref(data_laddr, t.mapping_delta);