mirror of
https://github.com/ceph/ceph
synced 2026-08-02 07:03:18 +00:00
Merge pull request #69615 from xxhdx1985126/wip-77548
crimson/osd/pg_backend: mark the omaps of the object dirty when removing omap keys Reviewed-by: Matan Breizman <mbreizma@redhat.com>
This commit is contained in:
commit
c2a69f1663
@ -806,8 +806,8 @@ OpsExecuter::do_execute_op(OSDOp& osd_op)
|
||||
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) {
|
||||
|
||||
@ -1756,7 +1756,9 @@ PGBackend::interruptible_future<> PGBackend::omap_remove_range(
|
||||
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 {
|
||||
@ -1766,9 +1768,8 @@ PGBackend::interruptible_future<> PGBackend::omap_remove_key(
|
||||
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();
|
||||
}
|
||||
|
||||
@ -404,7 +404,9 @@ public:
|
||||
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<
|
||||
|
||||
Loading…
Reference in New Issue
Block a user