]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore: cleanup rewrite_extent()
authorYingxin Cheng <yingxin.cheng@intel.com>
Fri, 27 May 2022 08:32:06 +0000 (16:32 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Tue, 31 May 2022 02:51:03 +0000 (10:51 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/os/seastore/backref/btree_backref_manager.cc
src/crimson/os/seastore/transaction_manager.cc

index de2f14f8ac074042fa1a5fd6d3740d37d1426efb..235cbc32ac709b9c969f0ab8804adbfc7ffbd82f 100644 (file)
@@ -351,14 +351,6 @@ BtreeBackrefManager::rewrite_extent(
   Transaction &t,
   CachedExtentRef extent)
 {
-  LOG_PREFIX(BtreeBackrefManager::rewrite_extent);
-  auto updated = cache.update_extent_from_transaction(t, extent);
-  if (!updated) {
-    DEBUGT("extent is already retired, skipping -- {}", t, *extent);
-    return rewrite_extent_iertr::now();
-  }
-  extent = updated;
-
   auto c = get_context(t);
   return with_btree<BackrefBtree>(
     cache,
index f52f59089f99275aa2ad01864ce5fcc2ed7bbeaa..10185dbb34a4035940833d4a6db2a0fc20c21064 100644 (file)
@@ -482,7 +482,7 @@ TransactionManager::rewrite_logical_extent(
   nlextent->set_pin(lextent->get_pin().duplicate());
   nlextent->last_modified = lextent->last_modified;
 
-  DEBUGT("rewriting extent -- {} to {}", t, *lextent, *nlextent);
+  DEBUGT("rewriting logical extent -- {} to {}", t, *lextent, *nlextent);
 
   /* This update_mapping is, strictly speaking, unnecessary for delayed_alloc
    * extents since we're going to do it again once we either do the ool write
@@ -501,11 +501,6 @@ TransactionManager::rewrite_extent_ret TransactionManager::rewrite_extent(
 {
   LOG_PREFIX(TransactionManager::rewrite_extent);
 
-  if (is_backref_node(extent->get_type())) {
-    t.get_rewrite_version_stats().increment(extent->get_version());
-    return backref_manager->rewrite_extent(t, extent);
-  }
-
   {
     auto updated = cache->update_extent_from_transaction(t, extent);
     if (!updated) {
@@ -517,8 +512,13 @@ TransactionManager::rewrite_extent_ret TransactionManager::rewrite_extent(
 
   t.get_rewrite_version_stats().increment(extent->get_version());
 
+  if (is_backref_node(extent->get_type())) {
+    DEBUGT("rewriting backref extent -- {}", t, *extent);
+    return backref_manager->rewrite_extent(t, extent);
+  }
+
   if (extent->get_type() == extent_types_t::ROOT) {
-    DEBUGT("marking root for rewrite -- {}", t, *extent);
+    DEBUGT("rewriting root extent -- {}", t, *extent);
     cache->duplicate_for_write(t, extent);
     return rewrite_extent_iertr::now();
   }