[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