From: Samuel Just Date: Thu, 9 May 2024 02:45:45 +0000 (+0000) Subject: crimson/osd/ops_executor: update osd_op_params_t::at_version in execute_clone X-Git-Tag: testing/wip-jcollin-testing-20240625.102731-squid~49^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=95bfc2ee40008167b806f2311a96c2f59123f11b;p=ceph-ci.git crimson/osd/ops_executor: update osd_op_params_t::at_version in execute_clone Signed-off-by: Samuel Just (cherry picked from commit 1ecf3d64853c2fa92bf467692b98a58b4670b212) --- diff --git a/src/crimson/osd/ops_executer.cc b/src/crimson/osd/ops_executer.cc index c19506dbc9c..d8bfa7a361c 100644 --- a/src/crimson/osd/ops_executer.cc +++ b/src/crimson/osd/ops_executer.cc @@ -931,7 +931,9 @@ std::unique_ptr OpsExecuter::execute_clone( return std::vector{std::begin(snapc.snaps), last}; }(); - auto clone_obc = prepare_clone(coid); + osd_op_params->at_version.version++; + auto clone_obc = prepare_clone(coid, osd_op_params->at_version); + // make clone backend.clone(clone_obc->obs.oi, initial_obs, clone_obc->obs, txn); @@ -1038,13 +1040,13 @@ OpsExecuter::flush_clone_metadata( } ObjectContextRef OpsExecuter::prepare_clone( - const hobject_t& coid) + const hobject_t& coid, + eversion_t version) { ceph_assert(pg->is_primary()); - osd_op_params->at_version.version++; ObjectState clone_obs{coid}; clone_obs.exists = true; - clone_obs.oi.version = osd_op_params->at_version; + clone_obs.oi.version = version; clone_obs.oi.prior_version = obc->obs.oi.version; clone_obs.oi.copy_user_bits(obc->obs.oi); clone_obs.oi.clear_flag(object_info_t::FLAG_WHITEOUT); diff --git a/src/crimson/osd/ops_executer.h b/src/crimson/osd/ops_executer.h index 72b8c1de309..126b23213f5 100644 --- a/src/crimson/osd/ops_executer.h +++ b/src/crimson/osd/ops_executer.h @@ -457,7 +457,8 @@ public: version_t get_last_user_version() const; ObjectContextRef prepare_clone( - const hobject_t& coid); + const hobject_t& coid, + eversion_t version); void apply_stats(); };