From: Yongpeng Yang <[email protected]>

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 <[email protected]>
---
 fs/f2fs/namei.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
index e360f08a9586..3215983dc030 100644
--- a/fs/f2fs/namei.c
+++ b/fs/f2fs/namei.c
@@ -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;
-- 
2.43.0



_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to