Branch data Line data Source code
1 : : /* SPDX-License-Identifier: BSD-3-Clause 2 : : * Copyright (C) 2022 Intel Corporation. 3 : : * All rights reserved. 4 : : */ 5 : : 6 : : #include "spdk/thread.h" 7 : : 8 : : #include "ftl_core.h" 9 : : #include "ftl_mngt.h" 10 : : #include "ftl_mngt_steps.h" 11 : : #include "ftl_band.h" 12 : : #include "ftl_l2p.h" 13 : : 14 : : static void 15 : 66 : l2p_cb(struct spdk_ftl_dev *dev, int status, void *ctx) 16 : : { 17 : 66 : struct ftl_mngt_process *mngt = ctx; 18 : : 19 [ - + ]: 66 : if (status) { 20 : 0 : ftl_mngt_fail_step(mngt); 21 : : } else { 22 : 66 : ftl_mngt_next_step(mngt); 23 : : } 24 : 66 : } 25 : : 26 : : void 27 : 22 : ftl_mngt_init_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) 28 : : { 29 [ - + ]: 22 : if (ftl_l2p_init(dev)) { 30 : 0 : ftl_mngt_fail_step(mngt); 31 : : } else { 32 : 22 : ftl_mngt_next_step(mngt); 33 : : } 34 : 22 : } 35 : : 36 : : void 37 : 22 : ftl_mngt_deinit_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) 38 : : { 39 : 22 : ftl_l2p_deinit(dev); 40 : 22 : ftl_mngt_next_step(mngt); 41 : 22 : } 42 : : 43 : : void 44 : 5 : ftl_mngt_clear_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) 45 : : { 46 : 5 : ftl_l2p_clear(dev, l2p_cb, mngt); 47 : 5 : } 48 : : 49 : : void 50 : 22 : ftl_mngt_persist_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) 51 : : { 52 : 22 : ftl_l2p_persist(dev, l2p_cb, mngt); 53 : 22 : } 54 : : 55 : : void 56 : 22 : ftl_mngt_unmap_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) 57 : : { 58 : 22 : ftl_l2p_unmap(dev, l2p_cb, mngt); 59 : 22 : } 60 : : 61 : : void 62 : 17 : ftl_mngt_restore_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) 63 : : { 64 : 17 : ftl_l2p_restore(dev, l2p_cb, mngt); 65 : 17 : }