diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index e7c75953801..13a80dd334a 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -1606,6 +1606,14 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops, t.truncate(coll, soid, op.extent.truncate_size); oi.truncate_seq = op.extent.truncate_seq; oi.truncate_size = op.extent.truncate_size; + if (op.extent.truncate_size != oi.size) { + ctx->delta_stats.num_bytes -= oi.size; + ctx->delta_stats.num_kb -= SHIFT_ROUND_UP(oi.size, 10); + ctx->delta_stats.num_bytes += op.extent.truncate_size; + ctx->delta_stats.num_kb += + SHIFT_ROUND_UP(op.extent.truncate_size, 10); + oi.size = op.extent.truncate_size; + } } bufferlist nbl; bp.copy(op.extent.length, nbl);