]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: errorate SnapTrimObjSubEvent::remove_clone()
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Mon, 12 Dec 2022 20:56:42 +0000 (20:56 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 28 Feb 2023 16:22:05 +0000 (16:22 +0000)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/crimson/osd/osd_operations/snaptrim_event.cc
src/crimson/osd/osd_operations/snaptrim_event.h

index 3a68935ab4d3882f2b86e858fc4b8e528a3ee5f4..505092bcb53c6f63e5fbce19aafd8a5385ef1fe7 100644 (file)
@@ -212,7 +212,7 @@ seastar::future<> SnapTrimObjSubEvent::start()
   });
 }
 
-SnapTrimObjSubEvent::interruptible_future<>
+SnapTrimObjSubEvent::remove_or_update_iertr::future<>
 SnapTrimObjSubEvent::remove_clone(
   ObjectContextRef obc,
   ceph::os::Transaction& txn,
@@ -225,7 +225,7 @@ SnapTrimObjSubEvent::remove_clone(
   if (p == obc->ssc->snapset.clones.end()) {
     logger().error("{}: Snap {} not in clones",
                    *this, coid.snap);
-    //return -ENOENT;
+    return crimson::ct_error::enoent::make();
   }
   assert(p != obc->ssc->snapset.clones.end());
   snapid_t last = coid.snap;
@@ -440,7 +440,7 @@ SnapTrimObjSubEvent::remove_or_update(
 
   int64_t num_objects_before_trim = delta_stats.num_objects;
   osd_op_p.at_version = pg->next_version();
-  auto ret = interruptor::now();
+  auto ret = remove_or_update_iertr::now();
   if (new_snaps.empty()) {
     // remove clone from snapset
     logger().info("{}: {} snaps {} -> {} ... deleting",
@@ -452,7 +452,7 @@ SnapTrimObjSubEvent::remove_or_update(
                   *this, coid, old_snaps, new_snaps);
     ret = adjust_snaps(obc, new_snaps, txn, log_entries);
   }
-  return std::move(ret).then_interruptible(
+  return std::move(ret).safe_then_interruptible(
     [&txn, obc, num_objects_before_trim, log_entries=std::move(log_entries), head_obc=std::move(head_obc), this]() mutable {
     osd_op_p.at_version = pg->next_version();
 
@@ -470,9 +470,9 @@ SnapTrimObjSubEvent::remove_or_update(
       //  num_objects_before_trim - delta_stats.num_objects;
       //add_objects_trimmed_count(num_objects_trimmed);
     }
-  }).then_interruptible(
+  }).safe_then_interruptible(
     [txn=std::move(txn), log_entries=std::move(log_entries)] () mutable {
-    return interruptor::make_ready_future<remove_or_update_ret_t>(
+    return remove_or_update_iertr::make_ready_future<remove_or_update_ret_t>(
       std::make_pair(std::move(txn), std::move(log_entries)));
   });
   });
index c3bbe1a6d5e7506de4f65ed2b61828891010202b..902faf9c58409a4db67c9a061e8c8a593813e3df 100644 (file)
@@ -129,7 +129,13 @@ public:
 private:
   object_stat_sum_t delta_stats;
 
-  interruptible_future<> remove_clone(
+  using remove_or_update_ertr =
+    crimson::errorator<crimson::ct_error::enoent>;
+  using remove_or_update_iertr =
+    crimson::interruptible::interruptible_errorator<
+      IOInterruptCondition, remove_or_update_ertr>;
+
+  remove_or_update_iertr::future<> remove_clone(
     ObjectContextRef obc,
     ceph::os::Transaction& txn,
     std::vector<pg_log_entry_t>& log_entries);
@@ -149,11 +155,6 @@ private:
     ceph::os::Transaction& txn,
     std::vector<pg_log_entry_t>& log_entries);
 
-  using remove_or_update_ertr =
-    crimson::errorator<crimson::ct_error::enoent>;
-  using remove_or_update_iertr =
-    crimson::interruptible::interruptible_errorator<
-      IOInterruptCondition, remove_or_update_ertr>;
   using remove_or_update_ret_t =
     std::pair<ceph::os::Transaction, std::vector<pg_log_entry_t>>;
   remove_or_update_iertr::future<remove_or_update_ret_t>