diff options
author | Javier González <jg@lightnvm.io> | 2017-06-30 11:56:41 -0400 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2017-06-30 13:08:18 -0400 |
commit | b5e063a2861a3af00fe3770e5fb85f936facbf42 (patch) | |
tree | 461030bb83c92c026791b7db9de55e100d38aa0c /drivers/lightnvm/pblk-init.c | |
parent | ee8d5c1ad54e48ec44b6ae9cf91144fcab6ebf83 (diff) |
lightnvm: pblk: add initialization check
Add a sanity check to the pblk initialization sequence in order to
ensure that enough LUNs have been allocated to store the line metadata.
Signed-off-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <matias@cnexlabs.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/lightnvm/pblk-init.c')
-rw-r--r-- | drivers/lightnvm/pblk-init.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c index 025d8fe52154..1b0f61233c21 100644 --- a/drivers/lightnvm/pblk-init.c +++ b/drivers/lightnvm/pblk-init.c | |||
@@ -716,6 +716,12 @@ add_emeta_page: | |||
716 | lm->emeta_bb = geo->nr_luns - i; | 716 | lm->emeta_bb = geo->nr_luns - i; |
717 | lm->min_blk_line = 1 + DIV_ROUND_UP(lm->smeta_sec + lm->emeta_sec[0], | 717 | lm->min_blk_line = 1 + DIV_ROUND_UP(lm->smeta_sec + lm->emeta_sec[0], |
718 | geo->sec_per_blk); | 718 | geo->sec_per_blk); |
719 | if (lm->min_blk_line > lm->blk_per_line) { | ||
720 | pr_err("pblk: config. not supported. Min. LUN in line:%d\n", | ||
721 | lm->blk_per_line); | ||
722 | ret = -EINVAL; | ||
723 | goto fail; | ||
724 | } | ||
719 | 725 | ||
720 | ret = pblk_lines_alloc_metadata(pblk); | 726 | ret = pblk_lines_alloc_metadata(pblk); |
721 | if (ret) | 727 | if (ret) |