]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/ReplicatedPG: When do omapclear, it should check object whether is omap.
authorJianpeng Ma <jianpeng.ma@intel.com>
Thu, 24 Mar 2016 09:55:00 +0000 (17:55 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Thu, 24 Mar 2016 09:55:00 +0000 (17:55 +0800)
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>
src/osd/ReplicatedPG.cc

index 8350aeaadcf8ea7865889ed7395d52c19e86dd21..63bce65e0f75d34fc29b8f2c5b98db61d0a489f9 100644 (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: