From: Samuel Just Date: Tue, 17 Oct 2023 03:47:17 +0000 (-0700) Subject: crimson/osd/pg_backend: maintain num_objects_omap correctly X-Git-Tag: v19.3.0~296^2~15 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b581d02d94ccf93724f170cff4de80ed10846a43;p=ceph.git crimson/osd/pg_backend: maintain num_objects_omap correctly Signed-off-by: Samuel Just --- diff --git a/src/crimson/osd/pg_backend.cc b/src/crimson/osd/pg_backend.cc index 5e3e7a91c0f7..630efa586c78 100644 --- a/src/crimson/osd/pg_backend.cc +++ b/src/crimson/osd/pg_backend.cc @@ -990,6 +990,12 @@ PGBackend::remove(ObjectState& os, ceph::os::Transaction& txn, txn.remove(coll->get_cid(), ghobject_t{os.oi.soid, ghobject_t::NO_GEN, shard}); delta_stats.num_bytes -= os.oi.size; + + if (os.oi.is_omap()) { + os.oi.clear_flag(object_info_t::FLAG_OMAP); + delta_stats.num_objects_omap--; + } + os.oi.size = 0; os.oi.new_object(); @@ -1599,7 +1605,10 @@ PGBackend::omap_set_vals( osd_op_params.clean_regions.mark_omap_dirty(); delta_stats.num_wr++; delta_stats.num_wr_kb += shift_round_up(to_set_bl.length(), 10); - os.oi.set_flag(object_info_t::FLAG_OMAP); + if (!os.oi.is_omap()) { + os.oi.set_flag(object_info_t::FLAG_OMAP); + delta_stats.num_objects_omap++; + } os.oi.clear_omap_digest(); return seastar::now(); } @@ -1616,7 +1625,10 @@ PGBackend::omap_set_header( txn.omap_setheader(coll->get_cid(), ghobject_t{os.oi.soid}, osd_op.indata); osd_op_params.clean_regions.mark_omap_dirty(); delta_stats.num_wr++; - os.oi.set_flag(object_info_t::FLAG_OMAP); + if (!os.oi.is_omap()) { + os.oi.set_flag(object_info_t::FLAG_OMAP); + delta_stats.num_objects_omap++; + } os.oi.clear_omap_digest(); return seastar::now(); }