I compiled the latest e2fsprogs, and do fsck with -nvf on my ext4 file system. It showed Inode 18, i_blocks is 17179870744, should be 17179870744. Fix? no The i_blocks is the same. I found ext2fs_inode_i_blocks() has problem. The function check EXT4_FEATURE_RO_COMPAT_HUGE_FILE with "s_feature_compat". It should be "s_feature_ro_compat". Thanks. diff --git a/lib/ext2fs/blknum.c b/lib/ext2fs/blknum.c index a48b696..d67c6ec 100644 --- a/lib/ext2fs/blknum.c +++ b/lib/ext2fs/blknum.c @@ -49,7 +49,7 @@ blk64_t ext2fs_inode_data_blocks2(ext2_filsys fs, struct ext2_inode *inode) { return (inode->i_blocks | - ((fs->super->s_feature_incompat & + ((fs->super->s_feature_ro_incompat & EXT4_FEATURE_RO_COMPAT_HUGE_FILE) ? (__u64) inode->osd2.linux2.l_i_blocks_hi << 32 : 0)) - (inode->i_file_acl ? fs->blocksize >> 9 : 0); @@ -62,7 +62,7 @@ blk64_t ext2fs_inode_i_blocks(ext2_filsys fs, struct ext2_inode *inode) { return (inode->i_blocks | - ((fs->super->s_feature_incompat & + ((fs->super->s_feature_ro_incompat & EXT4_FEATURE_RO_COMPAT_HUGE_FILE) ? (__u64)inode->osd2.linux2.l_i_blocks_hi << 32 : 0)); } -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html