From 81dfe157f38d264cbe79b0b095132bba3ecb91e1 Mon Sep 17 00:00:00 2001 From: Kozlowski Mateusz Date: Fri, 10 Jun 2022 16:19:04 +0200 Subject: [PATCH] FTL: Add calculation of device size Signed-off-by: Kozlowski Mateusz Signed-off-by: Artur Paszkiewicz Change-Id: I1f57ea699d7613f89270f9a47f044d1b85c72b60 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13330 Reviewed-by: Ben Walker Reviewed-by: Jim Harris Tested-by: SPDK CI Jenkins --- lib/ftl/ftl_layout.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/ftl/ftl_layout.c b/lib/ftl/ftl_layout.c index 367524f11..96cf47b30 100644 --- a/lib/ftl/ftl_layout.c +++ b/lib/ftl/ftl_layout.c @@ -100,9 +100,9 @@ ftl_validate_regions(struct spdk_ftl_dev *dev, struct ftl_layout *layout) static uint64_t get_num_user_lbas(struct spdk_ftl_dev *dev) { - uint64_t blocks = 0; + uint64_t blocks; - blocks = dev->layout.base.total_blocks; + blocks = dev->num_bands * ftl_get_num_blocks_in_band(dev); blocks = (blocks * (100 - dev->conf.overprovisioning)) / 100; return blocks; @@ -282,6 +282,9 @@ setup_layout_base(struct spdk_ftl_dev *dev) struct ftl_layout *layout = &dev->layout; struct ftl_layout_region *region; + layout->base.num_usable_blocks = ftl_get_num_blocks_in_band(dev); + layout->base.user_blocks = ftl_band_user_blocks(dev->bands); + /* Base device layout is following: * - data * - superblock