]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
f2fs: refactor node footer flag setting related code
authorYongpeng Yang <yangyongpeng@xiaomi.com>
Wed, 18 Mar 2026 08:45:33 +0000 (16:45 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 2 Apr 2026 16:24:18 +0000 (16:24 +0000)
This patch refactors the node footer flag setting code to simplify
redundant logic and adjust function parameters and return types. No
logical changes.

Signed-off-by: Yongpeng Yang <yangyongpeng@xiaomi.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/f2fs.h
fs/f2fs/node.c
fs/f2fs/node.h

index f2580faa076382da33bd661e1679ebb513972bd1..04891aaf476fe1b1886dad1ae86b549e884ef237 100644 (file)
@@ -3924,7 +3924,7 @@ bool f2fs_in_warm_node_list(struct folio *folio);
 void f2fs_init_fsync_node_info(struct f2fs_sb_info *sbi);
 void f2fs_del_fsync_node_entry(struct f2fs_sb_info *sbi, struct folio *folio);
 void f2fs_reset_fsync_node_info(struct f2fs_sb_info *sbi);
-int f2fs_need_dentry_mark(struct f2fs_sb_info *sbi, nid_t nid);
+bool f2fs_need_dentry_mark(struct f2fs_sb_info *sbi, nid_t nid);
 bool f2fs_is_checkpointed_node(struct f2fs_sb_info *sbi, nid_t nid);
 bool f2fs_need_inode_block_update(struct f2fs_sb_info *sbi, nid_t ino);
 int f2fs_get_node_info(struct f2fs_sb_info *sbi, nid_t nid,
index b8e5cadbab3ad061d03c08a5911571ba23889894..e027c388207f9a567b627817d0c12fcb7629cd28 100644 (file)
@@ -391,7 +391,7 @@ void f2fs_reset_fsync_node_info(struct f2fs_sb_info *sbi)
        spin_unlock_irqrestore(&sbi->fsync_node_lock, flags);
 }
 
-int f2fs_need_dentry_mark(struct f2fs_sb_info *sbi, nid_t nid)
+bool f2fs_need_dentry_mark(struct f2fs_sb_info *sbi, nid_t nid)
 {
        struct f2fs_nm_info *nm_i = NM_I(sbi);
        struct nat_entry *e;
index 824ac9f0e6e42a6dc7db49cf316ae8f187b1d3df..bcf2034e42639f53bbceb5ae290199416ee409da 100644 (file)
@@ -400,27 +400,26 @@ static inline int is_node(const struct folio *folio, int type)
 #define is_fsync_dnode(folio)  is_node(folio, FSYNC_BIT_SHIFT)
 #define is_dent_dnode(folio)   is_node(folio, DENT_BIT_SHIFT)
 
-static inline void set_cold_node(const struct folio *folio, bool is_dir)
+static inline void __set_mark(const struct folio *folio, bool mark, int type)
 {
        struct f2fs_node *rn = F2FS_NODE(folio);
        unsigned int flag = le32_to_cpu(rn->footer.flag);
 
-       if (is_dir)
-               flag &= ~BIT(COLD_BIT_SHIFT);
-       else
-               flag |= BIT(COLD_BIT_SHIFT);
-       rn->footer.flag = cpu_to_le32(flag);
-}
-
-static inline void set_mark(struct folio *folio, int mark, int type)
-{
-       struct f2fs_node *rn = F2FS_NODE(folio);
-       unsigned int flag = le32_to_cpu(rn->footer.flag);
        if (mark)
                flag |= BIT(type);
        else
                flag &= ~BIT(type);
        rn->footer.flag = cpu_to_le32(flag);
+}
+
+static inline void set_cold_node(const struct folio *folio, bool is_dir)
+{
+       __set_mark(folio, !is_dir, COLD_BIT_SHIFT);
+}
+
+static inline void set_mark(struct folio *folio, bool mark, int type)
+{
+       __set_mark(folio, mark, type);
 
 #ifdef CONFIG_F2FS_CHECK_FS
        f2fs_inode_chksum_set(F2FS_F_SB(folio), folio);