2022-06-21 13:45:21 +00:00
|
|
|
/* SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
* Copyright (c) Intel Corporation.
|
|
|
|
* All rights reserved.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "ftl_core.h"
|
|
|
|
#include "ftl_mngt.h"
|
|
|
|
#include "ftl_mngt_steps.h"
|
|
|
|
|
2022-06-20 09:50:06 +00:00
|
|
|
/*
|
|
|
|
* Steps executed during clean shutdown - includes persisting metadata and rolling
|
|
|
|
* back any setup steps executed during startup (closing bdevs, io channels, etc)
|
|
|
|
*/
|
2022-06-21 13:45:21 +00:00
|
|
|
static const struct ftl_mngt_process_desc desc_shutdown = {
|
|
|
|
.name = "FTL shutdown",
|
|
|
|
.error_handler = ftl_mngt_rollback_device,
|
|
|
|
.steps = {
|
2022-06-21 11:04:41 +00:00
|
|
|
{
|
|
|
|
.name = "Stop core poller",
|
|
|
|
.action = ftl_mngt_stop_core_poller
|
|
|
|
},
|
2022-06-20 09:44:35 +00:00
|
|
|
{
|
|
|
|
.name = "Dump statistics",
|
|
|
|
.action = ftl_mngt_dump_stats
|
|
|
|
},
|
2022-06-21 13:45:21 +00:00
|
|
|
{
|
|
|
|
.name = "Rollback FTL device",
|
|
|
|
.action = ftl_mngt_rollback_device
|
|
|
|
},
|
|
|
|
{}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
int
|
|
|
|
ftl_mngt_call_dev_shutdown(struct spdk_ftl_dev *dev, ftl_mngt_completion cb, void *cb_cntx)
|
|
|
|
{
|
|
|
|
return ftl_mngt_process_execute(dev, &desc_shutdown, cb, cb_cntx);
|
|
|
|
}
|