[f2fs-dev] [RFC PATCH v3 2/2] dump.f2fs: dump inline extent mapping information

Yongpeng Yang <[email protected]> Fri, 24 Jul 2026 20:59:59 +0800
Newsgroups net.sourceforge.lists.linux-f2fs-devel
Message-ID <[email protected]>
From: Yongpeng Yang <[email protected]>

When extra attributes are enabled and an inode reserves an inline
extent area (i_inline_ext_capacity > 0), print the capacity, the valid
extent count, and the content of every extent entry (fofs, blkaddr,
len) in print_inode_info().

The inline extent area lives right after struct f2fs_inode->i_extra_end,
so it can be read directly without any format-specific decoding.

Example output:

  i_inline_ext_capacity         [0x     100 : 256]
  inline_ext (cnt/cap)          [3 / 256]
    inline_ext[0]: fofs:3ac blkaddr:12f400 len:64
    inline_ext[1]: fofs:410 blkaddr:12f480 len:20
    inline_ext[2]: fofs:500 blkaddr:130000 len:c

Signed-off-by: Yongpeng Yang <[email protected]>
---
 fsck/mount.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/fsck/mount.c b/fsck/mount.c
index 8c14c97..1c0429f 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -349,6 +349,23 @@ void print_inode_info(struct f2fs_sb_info *sbi,
 			DISP_u8(inode, i_log_cluster_size);
 			DISP_u16(inode, i_compress_flag);
 		}
+		if (le32_to_cpu(inode->i_inline_ext_capacity) > 0) {
+			struct f2fs_iext_header *eh =
+				(struct f2fs_iext_header *)inode->i_extra_end;
+			u32 cnt = le32_to_cpu(eh->cnt);
+			u32 cap = le32_to_cpu(inode->i_inline_ext_capacity);
+			u32 j;
+
+			DISP_u32(inode, i_inline_ext_capacity);
+			printf("%-30s\t\t[%u / %u]\n",
+				"inline_ext (cnt/cap)", cnt, cap);
+			for (j = 0; j < cnt && j < cap; j++) {
+				printf("  inline_ext[%u]: fofs:%x blkaddr:%x len:%x\n",
+					j, le32_to_cpu(eh->exts[j].fofs),
+					le32_to_cpu(eh->exts[j].blk_addr),
+					le32_to_cpu(eh->exts[j].len));
+			}
+		}
 	}
 
 	addrs = ADDRS_PER_INODE(inode);
-- 
2.43.0



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