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>
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;