diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 5b7a15db4953..8682ee8f1e50 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -5414,6 +5414,13 @@ struct inode *__ext4_iget(struct super_block *sb, unsigned long ino, ei->i_sync_tid = tid; ei->i_datasync_tid = tid; } + if (EXT4_INODE_SIZE(inode->i_sb) < EXT4_GOOD_OLD_INODE_SIZE) { + ext4_error_inode(inode, function, line, 0, + "wow! this inode has less data"); + if (ext4_test_inode_flag(inode, EXT4_INODE_INLINE_DATA)) { + ext4_error_inode(inode, function, line, 0, "wow! this inode is line"); + } + } if (EXT4_INODE_SIZE(inode->i_sb) > EXT4_GOOD_OLD_INODE_SIZE) { if (ei->i_extra_isize == 0) { @@ -5422,6 +5429,8 @@ struct inode *__ext4_iget(struct super_block *sb, unsigned long ino, ei->i_extra_isize = sizeof(struct ext4_inode) - EXT4_GOOD_OLD_INODE_SIZE; } else { + ext4_error_inode(inode, function, line, 0, + "wow! this inode has reached ext4 iget"); ret = ext4_iget_extra_inode(inode, raw_inode, ei); if (ret) goto bad_inode;