]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/segment_cleaner: trim backrefs first
authorXuehan Xu <xxhdx1985126@gmail.com>
Thu, 23 Jun 2022 09:26:01 +0000 (17:26 +0800)
committerXuehan Xu <xxhdx1985126@gmail.com>
Sat, 16 Jul 2022 08:48:24 +0000 (16:48 +0800)
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
src/crimson/os/seastore/async_cleaner.cc

index e0d198be78fc150ed5f755906bc25a9df9662306..a7be225f69fde2354c5e0a640dba53600bffe999 100644 (file)
@@ -815,14 +815,7 @@ AsyncCleaner::gc_cycle_ret AsyncCleaner::GCProcess::run()
 
 AsyncCleaner::gc_cycle_ret AsyncCleaner::do_gc_cycle()
 {
-  if (gc_should_trim_journal()) {
-    return gc_trim_journal(
-    ).handle_error(
-      crimson::ct_error::assert_all{
-       "GCProcess::run encountered invalid error in gc_trim_journal"
-      }
-    );
-  } else if (gc_should_trim_backref()) {
+  if (gc_should_trim_backref()) {
     return gc_trim_backref(get_backref_tail()
     ).safe_then([](auto) {
       return seastar::now();
@@ -831,6 +824,13 @@ AsyncCleaner::gc_cycle_ret AsyncCleaner::do_gc_cycle()
        "GCProcess::run encountered invalid error in gc_trim_backref"
       }
     );
+  } else if (gc_should_trim_journal()) {
+    return gc_trim_journal(
+    ).handle_error(
+      crimson::ct_error::assert_all{
+       "GCProcess::run encountered invalid error in gc_trim_journal"
+      }
+    );
   } else if (gc_should_reclaim_space()) {
     return gc_reclaim_space(
     ).handle_error(