From: Jianpeng Ma Date: Thu, 24 Mar 2016 09:55:00 +0000 (+0800) Subject: osd/ReplicatedPG: When do omapclear, it should check object whether is omap. X-Git-Tag: v10.1.1~96^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=aeb8141c29cdd337961430bbf3e93a79e3e1bcd3;p=ceph.git 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 --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 8350aeaadcf8..63bce65e0f75 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: