f2fs: disallow setting an extension to both cold and hot

An extension should not exist in both the cold and hot extension lists
simultaneously. When adding a hot extension, check whether it already
exists in the cold list, and vice versa. Reject the operation with
-EINVAL if a conflict is found.

Signed-off-by: Yongpeng Yang <yangyongpeng@xiaomi.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
Yongpeng Yang
2026-04-10 23:05:37 +08:00
committed by Jaegeuk Kim
parent ed78aeebef
commit b8b902fd57

View File

@@ -83,6 +83,21 @@ int f2fs_update_extension_list(struct f2fs_sb_info *sbi, const char *name,
if (set) {
if (total_count == F2FS_MAX_EXTENSION)
return -EINVAL;
if (hot) {
start = 0;
count = cold_count;
} else {
start = cold_count;
count = total_count;
}
for (i = start; i < count; i++) {
if (!strcmp(name, extlist[i])) {
f2fs_warn(sbi, "extension '%s' already exists in %s list",
name, hot ? "cold" : "hot");
return -EINVAL;
}
}
} else {
if (!hot && !cold_count)
return -EINVAL;