]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/lba: no need to pass the reference to the
authorXuehan Xu <xuxuehan@qianxin.com>
Sat, 13 Jun 2026 10:24:45 +0000 (18:24 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Thu, 18 Jun 2026 08:45:35 +0000 (16:45 +0800)
transaction when synchronously updating the lba mapping

Because the transaction can be captured by the functor itself

Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
src/crimson/os/seastore/lba/btree_lba_manager.cc
src/crimson/os/seastore/transaction.h

index 6a42f5ae662274ceb8bd1e8239c3b9f4cdcdf138..6fa10fcd948062870171ecdfaad4120c8d17f270 100644 (file)
@@ -1204,8 +1204,8 @@ BtreeLBAManager::_copy_mapping(
   c.trans.new_lba_key_copied(
     ret.src->get_key(),
     dest_laddr,
-    [this](Transaction &t, laddr_t laddr, paddr_t paddr) {
-      update_paddr_sync(t, laddr, paddr);
+    [this, c](laddr_t laddr, paddr_t paddr) {
+      update_paddr_sync(c.trans, laddr, paddr);
     });
   auto [niter, inserted] = co_await btree.copy(
       c,
index 3c2be49db9ac09bcec7eb31efe9263a9815ad531..dc2751e5835360ee8db8b0e45cc535931aba8c94 100644 (file)
@@ -671,7 +671,7 @@ public:
   bool force_rewrite_conflict = false;
 
   using update_copied_lba_key_func_t =
-    std::function<void (Transaction&, laddr_t, paddr_t)>;
+    std::function<void (laddr_t, paddr_t)>;
   void new_lba_key_copied(
     laddr_t src,
     laddr_t dest,
@@ -691,7 +691,7 @@ public:
       return;
     }
     laddr_t key = it->second;
-    update_copied_lba_key(*this, key, paddr);
+    update_copied_lba_key(key, paddr);
   }
   RootBlockRef peek_root() {
     return root;
@@ -923,7 +923,7 @@ private:
   cache_hint_t cache_hint = CACHE_HINT_TOUCH;
 
   std::map<laddr_t, laddr_t> copied_lba_keys;
-  std::function<void (Transaction&, laddr_t, paddr_t)> update_copied_lba_key;
+  update_copied_lba_key_func_t update_copied_lba_key;
 };
 using TransactionRef = Transaction::Ref;