From f1344911ea17cc98ac9a9ac4936b2b68d289a359 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Thu, 13 Jun 2019 08:51:06 +0900 Subject: [PATCH] dif: Minor cleanup of spdk_dif_set_md_interleave_iovs Four variables head_unalign, tail_unalign, num_blocks, and offset_blocks became unuseful by the last patch. Hence reduce them to buf_len and buf_offset in this patch. Signed-off-by: Shuhei Matsumoto Change-Id: I04fc1e442be6569a96533cdfe36b27fcc78e98d4 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/457876 Tested-by: SPDK CI Jenkins Reviewed-by: Changpeng Liu Reviewed-by: Darek Stojaczyk --- lib/util/dif.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/util/dif.c b/lib/util/dif.c index 6d536da93..9a000cda4 100644 --- a/lib/util/dif.c +++ b/lib/util/dif.c @@ -1398,8 +1398,7 @@ spdk_dif_set_md_interleave_iovs(struct iovec *iovs, int iovcnt, uint32_t *_mapped_len, const struct spdk_dif_ctx *ctx) { - uint32_t data_block_size, head_unalign, tail_unalign; - uint32_t num_blocks, offset_blocks, len; + uint32_t data_block_size, buf_len, buf_offset, len; struct _dif_sgl dif_sgl; struct _dif_sgl buf_sgl; @@ -1409,21 +1408,21 @@ spdk_dif_set_md_interleave_iovs(struct iovec *iovs, int iovcnt, data_block_size = ctx->block_size - ctx->md_size; - num_blocks = (data_offset + data_len) / data_block_size; - tail_unalign = (data_offset + data_len) % data_block_size; + buf_len = ((data_offset + data_len) / data_block_size) * ctx->block_size + + ((data_offset + data_len) % data_block_size); _dif_sgl_init(&dif_sgl, iovs, iovcnt); _dif_sgl_init(&buf_sgl, buf_iovs, buf_iovcnt); - if (!_dif_sgl_is_valid(&buf_sgl, num_blocks * ctx->block_size + tail_unalign)) { + if (!_dif_sgl_is_valid(&buf_sgl, buf_len)) { SPDK_ERRLOG("Buffer overflow will occur.\n"); return -ERANGE; } - offset_blocks = data_offset / data_block_size; - head_unalign = data_offset % data_block_size; + buf_offset = (data_offset / data_block_size) * ctx->block_size + + (data_offset % data_block_size); - _dif_sgl_advance(&buf_sgl, offset_blocks * ctx->block_size + head_unalign); + _dif_sgl_advance(&buf_sgl, buf_offset); while (data_len != 0) { len = spdk_min(data_len, _to_next_boundary(data_offset, data_block_size));