bdev/ftl: spdk_ftl_module_(init|fini) are not longer needed
There is no need for spdk_ftl_module_(init|fini) after ANM functionality was removed from FTL lib. Change-Id: Id8d05aed8620217869c56fca35b490bc9c716541 Signed-off-by: Wojciech Malikowski <wojciech.malikowski@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472335 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
This commit is contained in:
parent
988759501d
commit
2ff623b504
@ -148,38 +148,9 @@ struct spdk_ftl_attrs {
|
||||
struct spdk_ftl_conf conf;
|
||||
};
|
||||
|
||||
struct ftl_module_init_opts {
|
||||
/* Thread on which to poll for ANM events */
|
||||
struct spdk_thread *anm_thread;
|
||||
};
|
||||
|
||||
typedef void (*spdk_ftl_fn)(void *, int);
|
||||
typedef void (*spdk_ftl_init_fn)(struct spdk_ftl_dev *, void *, int);
|
||||
|
||||
/**
|
||||
* Initialize the FTL module.
|
||||
*
|
||||
* \param opts module configuration
|
||||
* \param cb callback function to call when the module is initialized
|
||||
* \param cb_arg callback's argument
|
||||
*
|
||||
* \return 0 if successfully started initialization, negative values if
|
||||
* resources could not be allocated.
|
||||
*/
|
||||
int spdk_ftl_module_init(const struct ftl_module_init_opts *opts, spdk_ftl_fn cb, void *cb_arg);
|
||||
|
||||
/**
|
||||
* Deinitialize the FTL module. All FTL devices have to be unregistered prior to
|
||||
* calling this function.
|
||||
*
|
||||
* \param cb callback function to call when the deinitialization is completed
|
||||
* \param cb_arg callback's argument
|
||||
*
|
||||
* \return 0 if successfully scheduled deinitialization, negative errno
|
||||
* otherwise.
|
||||
*/
|
||||
int spdk_ftl_module_fini(spdk_ftl_fn cb, void *cb_arg);
|
||||
|
||||
/**
|
||||
* Initialize the FTL on given NVMe device and parallel unit range.
|
||||
*
|
||||
|
@ -1283,18 +1283,4 @@ spdk_ftl_dev_free(struct spdk_ftl_dev *dev, spdk_ftl_init_fn cb_fn, void *cb_arg
|
||||
return _spdk_ftl_dev_free(dev, cb_fn, cb_arg, spdk_get_thread());
|
||||
}
|
||||
|
||||
int
|
||||
spdk_ftl_module_init(const struct ftl_module_init_opts *opts, spdk_ftl_fn cb, void *cb_arg)
|
||||
{
|
||||
cb(cb_arg, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
spdk_ftl_module_fini(spdk_ftl_fn cb, void *cb_arg)
|
||||
{
|
||||
cb(cb_arg, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
SPDK_LOG_REGISTER_COMPONENT("ftl_init", SPDK_LOG_FTL_INIT)
|
||||
|
@ -98,7 +98,6 @@ struct ftl_deferred_init {
|
||||
typedef void (*bdev_ftl_finish_fn)(void);
|
||||
|
||||
static LIST_HEAD(, ftl_bdev) g_ftl_bdevs = LIST_HEAD_INITIALIZER(g_ftl_bdevs);
|
||||
static bdev_ftl_finish_fn g_finish_cb;
|
||||
static size_t g_num_conf_bdevs;
|
||||
static size_t g_num_init_bdevs;
|
||||
static pthread_mutex_t g_ftl_bdev_lock;
|
||||
@ -117,7 +116,7 @@ bdev_ftl_get_ctx_size(void)
|
||||
static struct spdk_bdev_module g_ftl_if = {
|
||||
.name = "ftl",
|
||||
.async_init = true,
|
||||
.async_fini = true,
|
||||
.async_fini = false,
|
||||
.module_init = bdev_ftl_initialize,
|
||||
.module_fini = bdev_ftl_finish,
|
||||
.examine_disk = bdev_ftl_examine,
|
||||
@ -185,11 +184,9 @@ static void
|
||||
bdev_ftl_free_cb(struct spdk_ftl_dev *dev, void *ctx, int status)
|
||||
{
|
||||
struct ftl_bdev *ftl_bdev = ctx;
|
||||
bool finish_done;
|
||||
|
||||
pthread_mutex_lock(&g_ftl_bdev_lock);
|
||||
LIST_REMOVE(ftl_bdev, list_entry);
|
||||
finish_done = LIST_EMPTY(&g_ftl_bdevs);
|
||||
pthread_mutex_unlock(&g_ftl_bdev_lock);
|
||||
|
||||
spdk_io_device_unregister(ftl_bdev, NULL);
|
||||
@ -204,10 +201,6 @@ bdev_ftl_free_cb(struct spdk_ftl_dev *dev, void *ctx, int status)
|
||||
spdk_bdev_destruct_done(&ftl_bdev->bdev, status);
|
||||
free(ftl_bdev->bdev.name);
|
||||
free(ftl_bdev);
|
||||
|
||||
if (finish_done && g_finish_cb) {
|
||||
g_finish_cb();
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
@ -838,16 +831,31 @@ bdev_ftl_init_cb(const struct ftl_bdev_info *info, void *ctx, int status)
|
||||
bdev_ftl_bdev_init_done();
|
||||
}
|
||||
|
||||
static void
|
||||
bdev_ftl_initialize_cb(void *ctx, int status)
|
||||
static int
|
||||
bdev_ftl_initialize(void)
|
||||
{
|
||||
pthread_mutexattr_t attr;
|
||||
struct spdk_conf_section *sp;
|
||||
struct ftl_bdev_init_opts *opts = NULL;
|
||||
struct ftl_deferred_init *defer_opts;
|
||||
size_t i;
|
||||
|
||||
if (status) {
|
||||
SPDK_ERRLOG("Failed to initialize FTL module\n");
|
||||
int rc = 0;
|
||||
|
||||
if (pthread_mutexattr_init(&attr)) {
|
||||
SPDK_ERRLOG("Mutex initialization failed\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE)) {
|
||||
SPDK_ERRLOG("Mutex initialization failed\n");
|
||||
rc = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (pthread_mutex_init(&g_ftl_bdev_lock, &attr)) {
|
||||
SPDK_ERRLOG("Mutex initialization failed\n");
|
||||
rc = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -883,47 +891,13 @@ bdev_ftl_initialize_cb(void *ctx, int status)
|
||||
bdev_ftl_bdev_init_done();
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
if (g_num_conf_bdevs == 0) {
|
||||
spdk_bdev_module_init_done(&g_ftl_if);
|
||||
}
|
||||
|
||||
free(opts);
|
||||
}
|
||||
|
||||
static int
|
||||
bdev_ftl_initialize(void)
|
||||
{
|
||||
struct ftl_module_init_opts ftl_opts = {};
|
||||
pthread_mutexattr_t attr;
|
||||
int rc = 0;
|
||||
|
||||
if (pthread_mutexattr_init(&attr)) {
|
||||
SPDK_ERRLOG("Mutex initialization failed\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE)) {
|
||||
SPDK_ERRLOG("Mutex initialization failed\n");
|
||||
rc = -1;
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (pthread_mutex_init(&g_ftl_bdev_lock, &attr)) {
|
||||
SPDK_ERRLOG("Mutex initialization failed\n");
|
||||
rc = -1;
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* TODO: retrieve this from config */
|
||||
ftl_opts.anm_thread = spdk_get_thread();
|
||||
rc = spdk_ftl_module_init(&ftl_opts, bdev_ftl_initialize_cb, NULL);
|
||||
|
||||
if (rc) {
|
||||
bdev_ftl_initialize_cb(NULL, rc);
|
||||
|
||||
}
|
||||
error:
|
||||
pthread_mutexattr_destroy(&attr);
|
||||
return rc;
|
||||
}
|
||||
@ -1003,39 +977,10 @@ bdev_ftl_delete_bdev(const char *name, spdk_bdev_unregister_cb cb_fn, void *cb_a
|
||||
cb_fn(cb_arg, -ENODEV);
|
||||
}
|
||||
|
||||
static void
|
||||
bdev_ftl_ftl_module_fini_cb(void *ctx, int status)
|
||||
{
|
||||
if (status) {
|
||||
SPDK_ERRLOG("Failed to deinitialize FTL module\n");
|
||||
assert(0);
|
||||
}
|
||||
|
||||
spdk_bdev_module_finish_done();
|
||||
}
|
||||
|
||||
static void
|
||||
bdev_ftl_finish_cb(void)
|
||||
{
|
||||
if (spdk_ftl_module_fini(bdev_ftl_ftl_module_fini_cb, NULL)) {
|
||||
SPDK_ERRLOG("Failed to deinitialize FTL module\n");
|
||||
assert(0);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
bdev_ftl_finish(void)
|
||||
{
|
||||
pthread_mutex_lock(&g_ftl_bdev_lock);
|
||||
|
||||
if (LIST_EMPTY(&g_ftl_bdevs)) {
|
||||
pthread_mutex_unlock(&g_ftl_bdev_lock);
|
||||
bdev_ftl_finish_cb();
|
||||
return;
|
||||
}
|
||||
|
||||
g_finish_cb = bdev_ftl_finish_cb;
|
||||
pthread_mutex_unlock(&g_ftl_bdev_lock);
|
||||
assert(LIST_EMPTY(&g_ftl_bdevs));
|
||||
}
|
||||
|
||||
SPDK_LOG_REGISTER_COMPONENT("bdev_ftl", SPDK_LOG_BDEV_FTL)
|
||||
|
Loading…
x
Reference in New Issue
Block a user