]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PrimaryLogPG.cc: CEPH_OSD_OP_OMAPRMKEYRANGE should mark omap dirty 45593/head
authorNeha Ojha <nojha@redhat.com>
Wed, 16 Mar 2022 18:37:19 +0000 (18:37 +0000)
committerVikhyat Umrao <vikhyat@redhat.com>
Wed, 23 Mar 2022 16:11:38 +0000 (09:11 -0700)
We should mark_omap_dirty() for all omap write ops, just like we did
in cb927925af1f3df4b9c31df85cf31f982aae1988.

Currently, for CEPH_OSD_OP_OMAPRMKEYRANGE ops, clean_omap gets set to true,
which results in incomplete recovery of objects and results in
inconsistent PGs after a scrub.

Fixes: https://tracker.ceph.com/issues/54592
Signed-off-by: Neha Ojha <nojha@redhat.com>
(cherry picked from commit f7fd5895fd3d7d7c4691be91434868d90f7a4e0f)

src/osd/PrimaryLogPG.cc

index 765c34b724b8a158e98a9166e5d6d3b9a9733460..7a7fdca66c2c184108e6480351af2e1b0dd2c123 100644 (file)
@@ -7667,6 +7667,7 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
          goto fail;
        }
        t->omap_rmkeyrange(soid, key_begin, key_end);
+        ctx->clean_regions.mark_omap_dirty();
        ctx->delta_stats.num_wr++;
       }
       obs.oi.clear_omap_digest();