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 <jianpeng.ma@intel.com>
This commit is contained in:
Jianpeng Ma 2016-03-24 17:55:00 +08:00
parent 98caba1d0b
commit aeb8141c29

View File

@ -5761,10 +5761,12 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& 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: