diff options
author | Chao Yu <yuchao0@huawei.com> | 2019-03-25 21:20:33 +0800 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2020-01-14 07:43:00 -0800 |
commit | d77bca8e16fe32c95fb1136ae6b8ef66c08d1b35 (patch) | |
tree | d6840e4c5daf1200267150cccdbdd7ae0de6135b /fsck/mount.c | |
parent | fdd47b2ea7677119328c32bd159b7c200fd70212 (diff) | |
download | f2fs-tools-d77bca8e16fe32c95fb1136ae6b8ef66c08d1b35.tar.gz |
dump.f2fs: print more info of inode layout
This patch adds to print all valid blkaddrs in inode's i_addr field,
besides, it also adds to print meaning of specific blkaddr(flag).
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fsck/mount.c')
-rw-r--r-- | fsck/mount.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/fsck/mount.c b/fsck/mount.c index 7f3854d..e4ba048 100644 --- a/fsck/mount.c +++ b/fsck/mount.c @@ -236,16 +236,18 @@ void print_inode_info(struct f2fs_sb_info *sbi, } } - DISP_u32(inode, i_addr[ofs]); /* Pointers to data blocks */ - DISP_u32(inode, i_addr[ofs + 1]); /* Pointers to data blocks */ - DISP_u32(inode, i_addr[ofs + 2]); /* Pointers to data blocks */ - DISP_u32(inode, i_addr[ofs + 3]); /* Pointers to data blocks */ + for (i = ofs; i < ADDRS_PER_INODE(inode); i++) { + block_t blkaddr = le32_to_cpu(inode->i_addr[i]); + char *flag = ""; - for (i = ofs + 3; i < ADDRS_PER_INODE(inode); i++) { - if (inode->i_addr[i] == 0x0) - break; - printf("i_addr[0x%x] points data block\t\t[0x%4x]\n", - i, le32_to_cpu(inode->i_addr[i])); + if (blkaddr == 0x0) + continue; + if (blkaddr == COMPRESS_ADDR) + flag = "cluster flag"; + else if (blkaddr == NEW_ADDR) + flag = "reserved flag"; + printf("i_addr[0x%x] %-16s\t\t[0x%8x : %u]\n", i, flag, + blkaddr, blkaddr); } DISP_u32(inode, i_nid[0]); /* direct */ |