FTL: Add config checks during startup flow
Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com> Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com> Change-Id: I336880ee263dbb23b613bd933c776f0b922412cc Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13294 Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
7a7ac2af33
commit
b872e29fef
@ -19,7 +19,7 @@ FTL_SUBDIRS := mngt utils
|
|||||||
|
|
||||||
C_SRCS = ftl_core.c ftl_init.c ftl_layout.c
|
C_SRCS = ftl_core.c ftl_init.c ftl_layout.c
|
||||||
C_SRCS += mngt/ftl_mngt.c mngt/ftl_mngt_bdev.c mngt/ftl_mngt_shutdown.c mngt/ftl_mngt_startup.c
|
C_SRCS += mngt/ftl_mngt.c mngt/ftl_mngt_bdev.c mngt/ftl_mngt_shutdown.c mngt/ftl_mngt_startup.c
|
||||||
C_SRCS += mngt/ftl_mngt_md.c
|
C_SRCS += mngt/ftl_mngt_md.c mngt/ftl_mngt_misc.c
|
||||||
C_SRCS += utils/ftl_conf.c utils/ftl_md.c
|
C_SRCS += utils/ftl_conf.c utils/ftl_md.c
|
||||||
|
|
||||||
SPDK_MAP_FILE = $(abspath $(CURDIR)/spdk_ftl.map)
|
SPDK_MAP_FILE = $(abspath $(CURDIR)/spdk_ftl.map)
|
||||||
|
20
lib/ftl/mngt/ftl_mngt_misc.c
Normal file
20
lib/ftl/mngt/ftl_mngt_misc.c
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
* Copyright (c) Intel Corporation.
|
||||||
|
* All rights reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ftl_core.h"
|
||||||
|
#include "ftl_utils.h"
|
||||||
|
#include "ftl_mngt.h"
|
||||||
|
#include "ftl_mngt_steps.h"
|
||||||
|
#include "ftl_internal.h"
|
||||||
|
|
||||||
|
void
|
||||||
|
ftl_mngt_check_conf(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt)
|
||||||
|
{
|
||||||
|
if (ftl_conf_is_valid(&dev->conf)) {
|
||||||
|
ftl_mngt_next_step(mngt);
|
||||||
|
} else {
|
||||||
|
ftl_mngt_fail_step(mngt);
|
||||||
|
}
|
||||||
|
}
|
@ -12,6 +12,10 @@ static const struct ftl_mngt_process_desc desc_startup;
|
|||||||
static const struct ftl_mngt_process_desc desc_startup = {
|
static const struct ftl_mngt_process_desc desc_startup = {
|
||||||
.name = "FTL startup",
|
.name = "FTL startup",
|
||||||
.steps = {
|
.steps = {
|
||||||
|
{
|
||||||
|
.name = "Check configuration",
|
||||||
|
.action = ftl_mngt_check_conf,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "Open base bdev",
|
.name = "Open base bdev",
|
||||||
.action = ftl_mngt_open_base_bdev,
|
.action = ftl_mngt_open_base_bdev,
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
|
|
||||||
#include "ftl_mngt.h"
|
#include "ftl_mngt.h"
|
||||||
|
|
||||||
|
void ftl_mngt_check_conf(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt);
|
||||||
|
|
||||||
void ftl_mngt_open_base_bdev(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt);
|
void ftl_mngt_open_base_bdev(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt);
|
||||||
|
|
||||||
void ftl_mngt_close_base_bdev(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt);
|
void ftl_mngt_close_base_bdev(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt);
|
||||||
|
@ -101,3 +101,16 @@ ftl_conf_init_dev(struct spdk_ftl_dev *dev, const struct spdk_ftl_conf *conf)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
ftl_conf_is_valid(const struct spdk_ftl_conf *conf)
|
||||||
|
{
|
||||||
|
if (conf->overprovisioning >= 100) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (conf->overprovisioning == 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
|
|
||||||
#include "spdk/ftl.h"
|
#include "spdk/ftl.h"
|
||||||
|
|
||||||
|
bool ftl_conf_is_valid(const struct spdk_ftl_conf *conf);
|
||||||
|
|
||||||
int ftl_conf_cpy(struct spdk_ftl_conf *dst, const struct spdk_ftl_conf *src);
|
int ftl_conf_cpy(struct spdk_ftl_conf *dst, const struct spdk_ftl_conf *src);
|
||||||
|
|
||||||
void ftl_conf_deinit(struct spdk_ftl_conf *conf);
|
void ftl_conf_deinit(struct spdk_ftl_conf *conf);
|
||||||
|
Loading…
Reference in New Issue
Block a user