summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchrisrd <[email protected]>2018-03-03 05:01:53 +1100
committerBrian Behlendorf <[email protected]>2018-03-02 10:01:53 -0800
commit5666a994f2b17f1d720efa83d4c64b1ed7bb53d0 (patch)
tree216e50f8ad3439660ffc4c998cf38d3280bfe5c3
parentd0f6fbaff383d0ea0b11f4e4547d6b062ef7ddad (diff)
Increment zil_itx_needcopy_bytes properly
In zil_lwb_commit() with TX_WRITE, we copy the log write record (lrw) into the log write block (lwb) and send it off using zil_lwb_add_txg(). If we also have WR_NEED_COPY, we additionally copy the lwr's data into the lwb to be sent off. If the lwr + data doesn't fit into the lwb, we send the lrw and as much data as will fit (dnow bytes), then go back and do the same with the remaining data. Each time through this loop we're sending dnow data bytes. I.e. zil_itx_needcopy_bytes should be incremented by dnow. Reviewed-by: Richard Elling <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Chris Dunlop <[email protected]> Closes #6988 Closes #7176
-rw-r--r--module/zfs/zil.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/module/zfs/zil.c b/module/zfs/zil.c
index d7bb33ab0..d9ae1f413 100644
--- a/module/zfs/zil.c
+++ b/module/zfs/zil.c
@@ -1461,8 +1461,7 @@ cont:
lrw->lr_offset += dnow;
lrw->lr_length -= dnow;
ZIL_STAT_BUMP(zil_itx_needcopy_count);
- ZIL_STAT_INCR(zil_itx_needcopy_bytes,
- lrw->lr_length);
+ ZIL_STAT_INCR(zil_itx_needcopy_bytes, dnow);
} else {
ASSERT3S(itx->itx_wr_state, ==, WR_INDIRECT);
dbuf = NULL;