aboutsummaryrefslogtreecommitdiff
path: root/fsck/mount.c
diff options
context:
space:
mode:
authorChao Yu <yuchao0@huawei.com>2019-03-25 21:20:33 +0800
committerJaegeuk Kim <jaegeuk@kernel.org>2020-01-14 07:43:00 -0800
commitd77bca8e16fe32c95fb1136ae6b8ef66c08d1b35 (patch)
treed6840e4c5daf1200267150cccdbdd7ae0de6135b /fsck/mount.c
parentfdd47b2ea7677119328c32bd159b7c200fd70212 (diff)
downloadf2fs-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.c20
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 */