if (!pg.get_pgpool().info.supports_omap()) {
return crimson::ct_error::operation_not_supported::make();
}*/
- return do_write_op([&osd_op](auto& backend, auto& os, auto& txn) {
- return backend.omap_remove_key(os, osd_op, txn);
+ return do_write_op([&osd_op, this](auto& backend, auto& os, auto& txn) {
+ return backend.omap_remove_key(os, osd_op, txn, *osd_op_params, delta_stats);
});
case CEPH_OSD_OP_OMAPCLEAR:
return do_write_op([this, &osd_op](auto& backend, auto& os, auto& txn) {
PGBackend::interruptible_future<> PGBackend::omap_remove_key(
ObjectState& os,
const OSDOp& osd_op,
- ceph::os::Transaction& txn)
+ ceph::os::Transaction& txn,
+ osd_op_params_t &osd_op_params,
+ object_stat_sum_t &delta_stats)
{
ceph::bufferlist to_rm_bl;
try {
throw crimson::osd::invalid_argument{};
}
txn.omap_rmkeys(coll->get_cid(), ghobject_t{os.oi.soid}, to_rm_bl);
- // TODO:
- // ctx->clean_regions.mark_omap_dirty();
- // ctx->delta_stats.num_wr++;
+ osd_op_params.clean_regions.mark_omap_dirty();
+ delta_stats.num_wr++;
os.oi.clear_omap_digest();
return seastar::now();
}
interruptible_future<> omap_remove_key(
ObjectState& os,
const OSDOp& osd_op,
- ceph::os::Transaction& trans);
+ ceph::os::Transaction& trans,
+ osd_op_params_t &osd_op_params,
+ object_stat_sum_t &delta_stats);
using omap_clear_ertr = crimson::errorator<crimson::ct_error::enoent>;
using omap_clear_iertr =
::crimson::interruptible::interruptible_errorator<