xref: /spdk/lib/ftl/mngt/ftl_mngt_l2p.c (revision 6448f3367202ffd02ceb04be45bd86a651785b89)
1b16bdc6dSArtur Paszkiewicz /*   SPDX-License-Identifier: BSD-3-Clause
2b16bdc6dSArtur Paszkiewicz  *   Copyright (c) Intel Corporation.
3b16bdc6dSArtur Paszkiewicz  *   All rights reserved.
4b16bdc6dSArtur Paszkiewicz  */
5b16bdc6dSArtur Paszkiewicz 
6b16bdc6dSArtur Paszkiewicz #include "spdk/thread.h"
7b16bdc6dSArtur Paszkiewicz 
8b16bdc6dSArtur Paszkiewicz #include "ftl_core.h"
9b16bdc6dSArtur Paszkiewicz #include "ftl_mngt.h"
10b16bdc6dSArtur Paszkiewicz #include "ftl_mngt_steps.h"
11*6448f336SArtur Paszkiewicz #include "ftl_band.h"
12b16bdc6dSArtur Paszkiewicz #include "ftl_l2p.h"
13b16bdc6dSArtur Paszkiewicz 
14b16bdc6dSArtur Paszkiewicz static void
15b16bdc6dSArtur Paszkiewicz l2p_cb(struct spdk_ftl_dev *dev, int status, void *ctx)
16b16bdc6dSArtur Paszkiewicz {
17b16bdc6dSArtur Paszkiewicz 	struct ftl_mngt_process *mngt = ctx;
18b16bdc6dSArtur Paszkiewicz 
19b16bdc6dSArtur Paszkiewicz 	if (status) {
20b16bdc6dSArtur Paszkiewicz 		ftl_mngt_fail_step(mngt);
21b16bdc6dSArtur Paszkiewicz 	} else {
22b16bdc6dSArtur Paszkiewicz 		ftl_mngt_next_step(mngt);
23b16bdc6dSArtur Paszkiewicz 	}
24b16bdc6dSArtur Paszkiewicz }
25b16bdc6dSArtur Paszkiewicz 
26b16bdc6dSArtur Paszkiewicz void
27b16bdc6dSArtur Paszkiewicz ftl_mngt_init_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt)
28b16bdc6dSArtur Paszkiewicz {
29b16bdc6dSArtur Paszkiewicz 	if (ftl_l2p_init(dev)) {
30b16bdc6dSArtur Paszkiewicz 		ftl_mngt_fail_step(mngt);
31b16bdc6dSArtur Paszkiewicz 	} else {
32b16bdc6dSArtur Paszkiewicz 		ftl_mngt_next_step(mngt);
33b16bdc6dSArtur Paszkiewicz 	}
34b16bdc6dSArtur Paszkiewicz }
35b16bdc6dSArtur Paszkiewicz 
36b16bdc6dSArtur Paszkiewicz void
37b16bdc6dSArtur Paszkiewicz ftl_mngt_deinit_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt)
38b16bdc6dSArtur Paszkiewicz {
39b16bdc6dSArtur Paszkiewicz 	ftl_l2p_deinit(dev);
40b16bdc6dSArtur Paszkiewicz 	ftl_mngt_next_step(mngt);
41b16bdc6dSArtur Paszkiewicz }
42b16bdc6dSArtur Paszkiewicz 
43b16bdc6dSArtur Paszkiewicz void
44b16bdc6dSArtur Paszkiewicz ftl_mngt_clear_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt)
45b16bdc6dSArtur Paszkiewicz {
46b16bdc6dSArtur Paszkiewicz 	ftl_l2p_clear(dev, l2p_cb, mngt);
47b16bdc6dSArtur Paszkiewicz }
48