[PATCH] f2fs-tools: fix wrong endian conversion related to i_flags

From: Daeho Jeong
Date: Thu Sep 05 2024 - 17:20:31 EST


From: Daeho Jeong <daehojeong@xxxxxxxxxx>

Fixed wrong endian conversions related to i_flags.

Signed-off-by: Daeho Jeong <daehojeong@xxxxxxxxxx>
---
fsck/node.c | 2 +-
include/f2fs_fs.h | 2 +-
mkfs/f2fs_format.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/fsck/node.c b/fsck/node.c
index 7ee29ac..632151a 100644
--- a/fsck/node.c
+++ b/fsck/node.c
@@ -62,7 +62,7 @@ int f2fs_rebuild_qf_inode(struct f2fs_sb_info *sbi, int qtype)

raw_node->i.i_size = cpu_to_le64(1024 * 6);
raw_node->i.i_blocks = cpu_to_le64(1);
- raw_node->i.i_flags = F2FS_NOATIME_FL | F2FS_IMMUTABLE_FL;
+ raw_node->i.i_flags = cpu_to_le32(F2FS_NOATIME_FL | F2FS_IMMUTABLE_FL);

if (is_set_ckpt_flags(ckpt, CP_CRC_RECOVERY_FLAG))
cp_ver |= (cur_cp_crc(ckpt) << 32);
diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h
index 870a6e4..fdbc25b 100644
--- a/include/f2fs_fs.h
+++ b/include/f2fs_fs.h
@@ -986,7 +986,7 @@ static_assert(sizeof(struct node_footer) == 24, "");
#define file_enc_name(fi) ((fi)->i_advise & FADVISE_ENC_NAME_BIT)

#define F2FS_CASEFOLD_FL 0x40000000 /* Casefolded file */
-#define IS_CASEFOLDED(dir) ((dir)->i_flags & F2FS_CASEFOLD_FL)
+#define IS_CASEFOLDED(dir) ((dir)->i_flags & cpu_to_le32(F2FS_CASEFOLD_FL))

/*
* fsck i_compr_blocks counting helper
diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c
index 30d8e19..db1bc89 100644
--- a/mkfs/f2fs_format.c
+++ b/mkfs/f2fs_format.c
@@ -1414,7 +1414,7 @@ static int f2fs_write_qf_inode(int qtype)

raw_node->i.i_size = cpu_to_le64(1024 * 6);
raw_node->i.i_blocks = cpu_to_le64(1 + QUOTA_DATA);
- raw_node->i.i_flags = F2FS_NOATIME_FL | F2FS_IMMUTABLE_FL;
+ raw_node->i.i_flags = cpu_to_le32(F2FS_NOATIME_FL | F2FS_IMMUTABLE_FL);

node_blkaddr = alloc_next_free_block(CURSEG_HOT_NODE);
F2FS_NODE_FOOTER(raw_node)->next_blkaddr = cpu_to_le32(node_blkaddr + 1);
--
2.46.0.469.g59c65b2a67-goog