From: Sage Weil Date: Thu, 26 Apr 2018 14:15:50 +0000 (-0500) Subject: osd/PrimaryLogPG: clear data digest on WRITEFULL if skip_data_digest X-Git-Tag: v12.2.7~3^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2dd1265a54316da8980a377615ce2a19228c7aed;p=ceph.git osd/PrimaryLogPG: clear data digest on WRITEFULL if skip_data_digest If we detect we are on bluestore and should skip the data digest, we need to clear any old digest on WRITEFULL. This aligns us with the WRITE behavior, which is also either an update or a clear (but never neither!). Fixes: https://tracker.ceph.com/issues/23871 Signed-off-by: Sage Weil (cherry picked from commit fe5038c7f9577327f82913b4565712c53903ee48) --- diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index e92c6d246541..87139a9fd7e6 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -5904,7 +5904,9 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector& ops) } if (!skip_data_digest) { obs.oi.set_data_digest(osd_op.indata.crc32c(-1)); - } + } else { + obs.oi.clear_data_digest(); + } write_update_size_and_usage(ctx->delta_stats, oi, ctx->modified_ranges, 0, op.extent.length, true);