From aeb8141c29cdd337961430bbf3e93a79e3e1bcd3 Mon Sep 17 00:00:00 2001 From: Jianpeng Ma Date: Thu, 24 Mar 2016 17:55:00 +0800 Subject: [PATCH] osd/ReplicatedPG: When do omapclear, it should check object whether is omap. Though is_omap don't make sure object has omap header or k/v now, if object isn't has FLAG_OMAP, it must don't have omap header or k/v. Signed-off-by: Jianpeng Ma --- src/osd/ReplicatedPG.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 8350aeaadcf..63bce65e0f7 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -5761,10 +5761,12 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector& ops) result = -ENOENT; break; } - t->omap_clear(soid); - ctx->delta_stats.num_wr++; + if (oi.is_omap()) { + t->omap_clear(soid); + ctx->delta_stats.num_wr++; + obs.oi.clear_omap_digest(); + } } - obs.oi.clear_omap_digest(); break; case CEPH_OSD_OP_OMAPRMKEYS: -- 2.47.3