From: Sage Weil Date: Tue, 24 Jul 2012 18:02:37 +0000 (-0700) Subject: osd: fix pg log zeroing X-Git-Tag: v0.50~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f565ace62a1235dbe6a4ee9db5c5233cea395446;p=ceph.git osd: fix pg log zeroing Zero the right number of bytes. Fixes a bug where we clobber legit log data. Fortunately this is only triggered with osd preserve pg log = false, which was not the default until recently in master. Fixes: #2799 Signed-off-by: Sage Weil Reviewed-by: Mike Ryan --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 1287ca1f5da..934da8cfb4d 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -2092,7 +2092,7 @@ void PG::trim_ondisklog(ObjectStore::Transaction& t) if (!g_conf->osd_preserve_trimmed_log) { uint64_t zt = new_tail & ~4095; if (zt > ondisklog.zero_to) { - t.zero(coll_t::META_COLL, log_oid, ondisklog.zero_to, zt); + t.zero(coll_t::META_COLL, log_oid, ondisklog.zero_to, zt - ondisklog.zero_to); dout(15) << "trim_ondisklog zeroing from " << ondisklog.zero_to << " to " << zt << dendl; ondisklog.zero_to = zt;