ftl: Add md upgrade templates for P2L/Band/Chunk from version 0 to version 1
Since P2L, Band, Chunks start at version 1, adding some code blocking the loading of version 0 for them. Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com> Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com> Change-Id: I4f5d3a8bb3ed1e39bea18803ffb8ba319a815ae8 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13387 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
c8ab874d7c
commit
8c41c40331
@ -33,7 +33,8 @@ C_SRCS += mngt/ftl_mngt_md.c mngt/ftl_mngt_misc.c mngt/ftl_mngt_ioch.c mngt/ftl_
|
||||
C_SRCS += mngt/ftl_mngt_band.c mngt/ftl_mngt_self_test.c mngt/ftl_mngt_p2l.c
|
||||
C_SRCS += mngt/ftl_mngt_recovery.c mngt/ftl_mngt_upgrade.c
|
||||
C_SRCS += utils/ftl_conf.c utils/ftl_md.c utils/ftl_mempool.c utils/ftl_bitmap.c
|
||||
C_SRCS += upgrade/ftl_layout_upgrade.c upgrade/ftl_sb_upgrade.c
|
||||
C_SRCS += upgrade/ftl_layout_upgrade.c upgrade/ftl_sb_upgrade.c upgrade/ftl_p2l_upgrade.c
|
||||
C_SRCS += upgrade/ftl_band_upgrade.c upgrade/ftl_chunk_upgrade.c
|
||||
|
||||
SPDK_MAP_FILE = $(abspath $(CURDIR)/spdk_ftl.map)
|
||||
|
||||
|
@ -64,7 +64,7 @@ superblock_md_region_overflow(struct spdk_ftl_dev *dev, struct ftl_superblock_md
|
||||
}
|
||||
|
||||
/* Make sure the entry doesn't overflow the pointer value (probably overkill to check) */
|
||||
if (UINT64_MAX - (uintptr_t)sb_reg < sizeof(*sb_reg)) {
|
||||
if (UINT64_MAX - (uintptr_t)sb_reg <= sizeof(*sb_reg)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
16
lib/ftl/upgrade/ftl_band_upgrade.c
Normal file
16
lib/ftl/upgrade/ftl_band_upgrade.c
Normal file
@ -0,0 +1,16 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright (c) Intel Corporation.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#include "ftl_band.h"
|
||||
#include "ftl_layout_upgrade.h"
|
||||
|
||||
struct ftl_region_upgrade_desc band_upgrade_desc[] = {
|
||||
[FTL_BAND_VERSION_0] = {
|
||||
.verify = ftl_region_upgrade_disabled,
|
||||
},
|
||||
};
|
||||
|
||||
SPDK_STATIC_ASSERT(SPDK_COUNTOF(band_upgrade_desc) == FTL_BAND_VERSION_CURRENT,
|
||||
"Missing band region upgrade descriptors");
|
16
lib/ftl/upgrade/ftl_chunk_upgrade.c
Normal file
16
lib/ftl/upgrade/ftl_chunk_upgrade.c
Normal file
@ -0,0 +1,16 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright (c) Intel Corporation.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#include "ftl_nv_cache.h"
|
||||
#include "ftl_layout_upgrade.h"
|
||||
|
||||
struct ftl_region_upgrade_desc nvc_upgrade_desc[] = {
|
||||
[FTL_NVC_VERSION_0] = {
|
||||
.verify = ftl_region_upgrade_disabled,
|
||||
},
|
||||
};
|
||||
|
||||
SPDK_STATIC_ASSERT(SPDK_COUNTOF(nvc_upgrade_desc) == FTL_NVC_VERSION_CURRENT,
|
||||
"Missing NVC region upgrade descriptors");
|
@ -45,17 +45,41 @@ static struct ftl_layout_upgrade_desc_list layout_upgrade_desc[] = {
|
||||
.desc = sb_upgrade_desc,
|
||||
},
|
||||
[FTL_LAYOUT_REGION_TYPE_L2P] = {},
|
||||
[FTL_LAYOUT_REGION_TYPE_BAND_MD] = {},
|
||||
[FTL_LAYOUT_REGION_TYPE_BAND_MD_MIRROR] = {},
|
||||
[FTL_LAYOUT_REGION_TYPE_BAND_MD] = {
|
||||
.count = FTL_BAND_VERSION_CURRENT,
|
||||
.desc = band_upgrade_desc,
|
||||
},
|
||||
[FTL_LAYOUT_REGION_TYPE_BAND_MD_MIRROR] = {
|
||||
.count = FTL_BAND_VERSION_CURRENT,
|
||||
.desc = band_upgrade_desc,
|
||||
},
|
||||
[FTL_LAYOUT_REGION_TYPE_VALID_MAP] = {},
|
||||
[FTL_LAYOUT_REGION_TYPE_NVC_MD] = {},
|
||||
[FTL_LAYOUT_REGION_TYPE_NVC_MD_MIRROR] = {},
|
||||
[FTL_LAYOUT_REGION_TYPE_NVC_MD] = {
|
||||
.count = FTL_NVC_VERSION_CURRENT,
|
||||
.desc = nvc_upgrade_desc,
|
||||
},
|
||||
[FTL_LAYOUT_REGION_TYPE_NVC_MD_MIRROR] = {
|
||||
.count = FTL_NVC_VERSION_CURRENT,
|
||||
.desc = nvc_upgrade_desc,
|
||||
},
|
||||
[FTL_LAYOUT_REGION_TYPE_DATA_NVC] = {},
|
||||
[FTL_LAYOUT_REGION_TYPE_DATA_BASE] = {},
|
||||
[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_GC] = {},
|
||||
[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_GC_NEXT] = {},
|
||||
[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_COMP] = {},
|
||||
[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_COMP_NEXT] = {},
|
||||
[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_GC] = {
|
||||
.count = FTL_P2L_VERSION_CURRENT,
|
||||
.desc = p2l_upgrade_desc,
|
||||
},
|
||||
[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_GC_NEXT] = {
|
||||
.count = FTL_P2L_VERSION_CURRENT,
|
||||
.desc = p2l_upgrade_desc,
|
||||
},
|
||||
[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_COMP] = {
|
||||
.count = FTL_P2L_VERSION_CURRENT,
|
||||
.desc = p2l_upgrade_desc,
|
||||
},
|
||||
[FTL_LAYOUT_REGION_TYPE_P2L_CKPT_COMP_NEXT] = {
|
||||
.count = FTL_P2L_VERSION_CURRENT,
|
||||
.desc = p2l_upgrade_desc,
|
||||
},
|
||||
[FTL_LAYOUT_REGION_TYPE_TRIM_MD] = {},
|
||||
[FTL_LAYOUT_REGION_TYPE_TRIM_MD_MIRROR] = {},
|
||||
};
|
||||
|
17
lib/ftl/upgrade/ftl_p2l_upgrade.c
Normal file
17
lib/ftl/upgrade/ftl_p2l_upgrade.c
Normal file
@ -0,0 +1,17 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright (c) Intel Corporation.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#include "mngt/ftl_mngt.h"
|
||||
#include "mngt/ftl_mngt_steps.h"
|
||||
#include "ftl_layout_upgrade.h"
|
||||
|
||||
struct ftl_region_upgrade_desc p2l_upgrade_desc[] = {
|
||||
[FTL_P2L_VERSION_0] = {
|
||||
.verify = ftl_region_upgrade_disabled
|
||||
},
|
||||
};
|
||||
|
||||
SPDK_STATIC_ASSERT(SPDK_COUNTOF(p2l_upgrade_desc) == FTL_P2L_VERSION_CURRENT,
|
||||
"Missing P2L region upgrade descriptors");
|
Loading…
Reference in New Issue
Block a user