Skip to content

Commit 1ecf3d6

Browse files
committed
crimson/osd/ops_executor: update osd_op_params_t::at_version in execute_clone
Signed-off-by: Samuel Just <[email protected]>
1 parent 7a04f62 commit 1ecf3d6

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

src/crimson/osd/ops_executer.cc

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -931,7 +931,9 @@ std::unique_ptr<OpsExecuter::CloningContext> OpsExecuter::execute_clone(
931931
return std::vector<snapid_t>{std::begin(snapc.snaps), last};
932932
}();
933933

934-
auto clone_obc = prepare_clone(coid);
934+
osd_op_params->at_version.version++;
935+
auto clone_obc = prepare_clone(coid, osd_op_params->at_version);
936+
935937
// make clone
936938
backend.clone(clone_obc->obs.oi, initial_obs, clone_obc->obs, txn);
937939

@@ -1039,13 +1041,13 @@ OpsExecuter::flush_clone_metadata(
10391041
}
10401042

10411043
ObjectContextRef OpsExecuter::prepare_clone(
1042-
const hobject_t& coid)
1044+
const hobject_t& coid,
1045+
eversion_t version)
10431046
{
10441047
ceph_assert(pg->is_primary());
1045-
osd_op_params->at_version.version++;
10461048
ObjectState clone_obs{coid};
10471049
clone_obs.exists = true;
1048-
clone_obs.oi.version = osd_op_params->at_version;
1050+
clone_obs.oi.version = version;
10491051
clone_obs.oi.prior_version = obc->obs.oi.version;
10501052
clone_obs.oi.copy_user_bits(obc->obs.oi);
10511053
clone_obs.oi.clear_flag(object_info_t::FLAG_WHITEOUT);

src/crimson/osd/ops_executer.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,8 @@ class OpsExecuter : public seastar::enable_lw_shared_from_this<OpsExecuter> {
457457
version_t get_last_user_version() const;
458458

459459
ObjectContextRef prepare_clone(
460-
const hobject_t& coid);
460+
const hobject_t& coid,
461+
eversion_t version);
461462

462463
void apply_stats();
463464
};

0 commit comments

Comments
 (0)