mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 13:41:48 -04:00
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:
committed by
Jaegeuk Kim
parent
ed78aeebef
commit
b8b902fd57
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user