From: Radoslaw Zarzynski Date: Mon, 12 Dec 2022 20:56:42 +0000 (+0000) Subject: crimson/osd: errorate SnapTrimObjSubEvent::remove_clone() X-Git-Tag: v18.1.0~260^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9c719406cc013f7757a360ff92ee0f5168d7c46b;p=ceph.git crimson/osd: errorate SnapTrimObjSubEvent::remove_clone() Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/crimson/osd/osd_operations/snaptrim_event.cc b/src/crimson/osd/osd_operations/snaptrim_event.cc index 3a68935ab4d3..505092bcb53c 100644 --- a/src/crimson/osd/osd_operations/snaptrim_event.cc +++ b/src/crimson/osd/osd_operations/snaptrim_event.cc @@ -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( + return remove_or_update_iertr::make_ready_future( std::make_pair(std::move(txn), std::move(log_entries))); }); }); diff --git a/src/crimson/osd/osd_operations/snaptrim_event.h b/src/crimson/osd/osd_operations/snaptrim_event.h index c3bbe1a6d5e7..902faf9c5840 100644 --- a/src/crimson/osd/osd_operations/snaptrim_event.h +++ b/src/crimson/osd/osd_operations/snaptrim_event.h @@ -129,7 +129,13 @@ public: private: object_stat_sum_t delta_stats; - interruptible_future<> remove_clone( + using remove_or_update_ertr = + crimson::errorator; + 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& log_entries); @@ -149,11 +155,6 @@ private: ceph::os::Transaction& txn, std::vector& log_entries); - using remove_or_update_ertr = - crimson::errorator; - using remove_or_update_iertr = - crimson::interruptible::interruptible_errorator< - IOInterruptCondition, remove_or_update_ertr>; using remove_or_update_ret_t = std::pair>; remove_or_update_iertr::future