++num_write;
if (!osd_op_params) {
osd_op_params.emplace();
- fill_op_params_bump_pg_version();
+ fill_op_params_bump_pg_version(m);
}
- user_modify = (m == modified_by::user);
return std::forward<Func>(f)(pg->get_backend(), obc->obs, txn);
}
OpsExecuter::call_errorator::future<> OpsExecuter::do_assert_ver(
}
}
-void OpsExecuter::fill_op_params_bump_pg_version()
+void OpsExecuter::fill_op_params_bump_pg_version(OpsExecuter::modified_by m)
{
osd_op_params->req_id = msg->get_reqid();
osd_op_params->mtime = msg->get_mtime();
osd_op_params->pg_trim_to = pg->get_pg_trim_to();
osd_op_params->min_last_complete_ondisk = pg->get_min_last_complete_ondisk();
osd_op_params->last_complete = pg->get_info().last_complete;
+ osd_op_params->user_modify = (m == modified_by::user);
}
std::vector<pg_log_entry_t> OpsExecuter::prepare_transaction(
abstracted_msg_t msg;
crimson::net::ConnectionXcoreRef conn;
std::optional<osd_op_params_t> osd_op_params;
- bool user_modify = false;
ceph::os::Transaction txn;
size_t num_read = 0; ///< count read ops
MutFunc&& mut_func) &&;
std::vector<pg_log_entry_t> prepare_transaction(
const std::vector<OSDOp>& ops);
- void fill_op_params_bump_pg_version();
+ void fill_op_params_bump_pg_version(modified_by m);
ObjectContextRef get_obc() const {
return obc;
ceph_assert(want_mutate);
}
if (want_mutate) {
- if (user_modify) {
+ if (osd_op_params->user_modify) {
osd_op_params->user_at_version = osd_op_params->at_version.version;
}
maybe_mutated = flush_clone_metadata(