From: Xuehan Xu Date: Sat, 13 Jun 2026 10:24:45 +0000 (+0800) Subject: crimson/os/seastore/lba: no need to pass the reference to the X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3d174f6b40704b42add17e6f96795bf237880fa0;p=ceph.git crimson/os/seastore/lba: no need to pass the reference to the transaction when synchronously updating the lba mapping Because the transaction can be captured by the functor itself Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/os/seastore/lba/btree_lba_manager.cc b/src/crimson/os/seastore/lba/btree_lba_manager.cc index 6a42f5ae662..6fa10fcd948 100644 --- a/src/crimson/os/seastore/lba/btree_lba_manager.cc +++ b/src/crimson/os/seastore/lba/btree_lba_manager.cc @@ -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, diff --git a/src/crimson/os/seastore/transaction.h b/src/crimson/os/seastore/transaction.h index 3c2be49db9a..dc2751e5835 100644 --- a/src/crimson/os/seastore/transaction.h +++ b/src/crimson/os/seastore/transaction.h @@ -671,7 +671,7 @@ public: bool force_rewrite_conflict = false; using update_copied_lba_key_func_t = - std::function; + std::function; 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 copied_lba_keys; - std::function update_copied_lba_key; + update_copied_lba_key_func_t update_copied_lba_key; }; using TransactionRef = Transaction::Ref;