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