From 1fa0283f31a3396ed63f821cd071151d2990246a Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Sat, 12 Jan 2019 08:44:53 -0700 Subject: [PATCH] reduce: mark correct number of backing pages for md Signed-off-by: Jim Harris Change-Id: Iebdfe79dd8e4240f2333db6a758193e048f9b5f2 Reviewed-on: https://review.gerrithub.io/c/440574 Tested-by: SPDK CI Jenkins Chandler-Test-Pool: SPDK Automated Test System Reviewed-by: Shuhei Matsumoto Reviewed-by: Ben Walker --- lib/reduce/reduce.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/reduce/reduce.c b/lib/reduce/reduce.c index d01ae5adf..cd60994d8 100644 --- a/lib/reduce/reduce.c +++ b/lib/reduce/reduce.c @@ -370,6 +370,7 @@ static int _allocate_bit_arrays(struct spdk_reduce_vol *vol) { uint64_t total_chunks, total_backing_io_units; + uint32_t i, num_metadata_io_units; total_chunks = _get_total_chunks(vol->params.vol_size, vol->params.chunk_size); vol->allocated_chunk_maps = spdk_bit_array_create(total_chunks); @@ -381,8 +382,11 @@ _allocate_bit_arrays(struct spdk_reduce_vol *vol) } /* Set backing io unit bits associated with metadata. */ - spdk_bit_array_set(vol->allocated_backing_io_units, 0); - spdk_bit_array_set(vol->allocated_backing_io_units, 1); + num_metadata_io_units = (sizeof(*vol->backing_super) + REDUCE_PATH_MAX) / + vol->backing_dev->blocklen; + for (i = 0; i < num_metadata_io_units; i++) { + spdk_bit_array_set(vol->allocated_backing_io_units, i); + } return 0; }