summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2020-02-21 11:59:29 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2020-02-25 17:43:16 +0100
commitd02d7bc560ef27d2a0e66d40f96519379d320735 (patch)
treee1bc867c06eac02d1fbcb563cdbf3edf3495b5f0
parent84eab461c843e2018b6ff73a9af8140e27cde391 (diff)
downloadlvm2-d02d7bc560ef27d2a0e66d40f96519379d320735.tar.gz
vdo: fix slab size bits calculation
When formating VDO volume, the calculated amound of bits for 'vdoformat --slab-bits' parameter was shifted by 2 bits (calculated size was making 2MiB vdo_slab_size_mb value appear like if user would be specifying only 512KiB) Fixed by properly converting internal size_mb value to KiB.
-rw-r--r--lib/metadata/vdo_manip.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/metadata/vdo_manip.c b/lib/metadata/vdo_manip.c
index 335e7dd1d..7862682d8 100644
--- a/lib/metadata/vdo_manip.c
+++ b/lib/metadata/vdo_manip.c
@@ -248,7 +248,7 @@ static int _format_vdo_pool_data_lv(struct logical_volume *data_lv,
args++;
}
- slabbits = 31 - clz(vtp->slab_size_mb / DM_VDO_BLOCK_SIZE * 512);
+ slabbits = 31 - clz(vtp->slab_size_mb / DM_VDO_BLOCK_SIZE * 2 * 1024); /* to KiB / block_size */
log_debug("Slab size %s converted to %u bits.",
display_size(data_lv->vg->cmd, vtp->slab_size_mb * UINT64_C(2 * 1024)), slabbits);
if (dm_snprintf(buf_args[args], sizeof(buf_args[0]), "--slab-bits=%u", slabbits) < 0)