FTL: Add calculation of device size

Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com>
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: I1f57ea699d7613f89270f9a47f044d1b85c72b60
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13330
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Kozlowski Mateusz 2022-06-10 16:19:04 +02:00 committed by Jim Harris
parent 9dbdb02975
commit 81dfe157f3

View File

@ -100,9 +100,9 @@ ftl_validate_regions(struct spdk_ftl_dev *dev, struct ftl_layout *layout)
static uint64_t static uint64_t
get_num_user_lbas(struct spdk_ftl_dev *dev) 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; blocks = (blocks * (100 - dev->conf.overprovisioning)) / 100;
return blocks; return blocks;
@ -282,6 +282,9 @@ setup_layout_base(struct spdk_ftl_dev *dev)
struct ftl_layout *layout = &dev->layout; struct ftl_layout *layout = &dev->layout;
struct ftl_layout_region *region; 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: /* Base device layout is following:
* - data * - data
* - superblock * - superblock