]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PrimaryLogPG.cc: CEPH_OSD_OP_OMAPRMKEYRANGE should mark omap dirty 45591/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:01:27 +0000 (09:01 -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 95312ca103400dcf8c43e9711c6cbbea7314862f..b667d64824986cc983aab3d829b501eca7425594 100644 (file)
@@ -7843,6 +7843,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();