From: Samuel Just Date: Tue, 1 Oct 2024 20:11:31 +0000 (-0700) Subject: crimson: remove unused OpsExecuter::rollback_obc_if_modified overload X-Git-Tag: v20.0.0~812^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=2b562b64a64777b1428e9ad3187b50619cbf1a4d;p=ceph.git crimson: remove unused OpsExecuter::rollback_obc_if_modified overload Signed-off-by: Samuel Just --- diff --git a/src/crimson/osd/ops_executer.h b/src/crimson/osd/ops_executer.h index 068f510d1ef82..e770e825b32d0 100644 --- a/src/crimson/osd/ops_executer.h +++ b/src/crimson/osd/ops_executer.h @@ -548,7 +548,6 @@ OpsExecuter::flush_changes_n_do_ops_effects( template struct OpsExecuter::RollbackHelper { void rollback_obc_if_modified(); - void rollback_obc_if_modified(const std::error_code& e); OpsExecuter *ox; Func func; }; @@ -587,36 +586,6 @@ void OpsExecuter::RollbackHelper::rollback_obc_if_modified() } } -template -void OpsExecuter::RollbackHelper::rollback_obc_if_modified( - const std::error_code& e) -{ - // Oops, an operation had failed. do_osd_ops() altogether with - // OpsExecuter already dropped the ObjectStore::Transaction if - // there was any. However, this is not enough to completely - // rollback as we gave OpsExecuter the very single copy of `obc` - // we maintain and we did it for both reading and writing. - // Now all modifications must be reverted. - // - // The conditional's purpose is to efficiently handle hot errors - // which may appear as a result of e.g. CEPH_OSD_OP_CMPXATTR or - // CEPH_OSD_OP_OMAP_CMP. These are read-like ops and clients - // typically append them before any write. If OpsExecuter hasn't - // seen any modifying operation, `obc` is supposed to be kept - // unchanged. - assert(ox); - const auto need_rollback = ox->has_seen_write(); - crimson::get_logger(ceph_subsys_osd).debug( - "{}: object {} got error {}, need_rollback={}", - __func__, - ox->obc->get_oid(), - e, - need_rollback); - if (need_rollback) { - func(ox->obc); - } -} - // PgOpsExecuter -- a class for executing ops targeting a certain PG. class PgOpsExecuter { template