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>
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;