]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: fix pg log zeroing
authorSage Weil <sage@inktank.com>
Tue, 24 Jul 2012 18:02:37 +0000 (11:02 -0700)
committerSage Weil <sage@inktank.com>
Tue, 24 Jul 2012 18:02:37 +0000 (11:02 -0700)
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 <sage@inktank.com>
Reviewed-by: Mike Ryan <mike.ryan@inktank.com>
src/osd/PG.cc

index 1287ca1f5da93452c0df2bf0155792cf243fa72a..934da8cfb4dcc6d81d96ab03ed2ad1a59a3918c3 100644 (file)
@@ -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;