diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 0c466ccbed69..ad6eff690edd 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -5211,6 +5211,22 @@ struct inode *__ext4_iget(struct super_block *sb, unsigned long ino, goto bad_inode; raw_inode = ext4_raw_inode(&iloc); + printk(KERN_WARNING "EXT4-fs DEBUG: inode=%lu i_mode=0x%x i_flags=0x%x i_size_lo=%u i_size_hi=%u\n", + ino, + le16_to_cpu(raw_inode->i_mode), + le32_to_cpu(raw_inode->i_flags), + le32_to_cpu(raw_inode->i_size_lo), + le32_to_cpu(raw_inode->i_size_high)); + /* Check if inline flag is set in raw flags */ + if (le32_to_cpu(raw_inode->i_flags) & EXT4_INLINE_DATA_FL) { + printk(KERN_WARNING "EXT4-fs DEBUG: inode=%lu has INLINE_DATA flag set!\n", ino); + } + + /* Check if extents flag is set in raw flags */ + if (le32_to_cpu(raw_inode->i_flags) & EXT4_EXTENTS_FL) { + printk(KERN_WARNING "EXT4-fs DEBUG: inode=%lu has EXTENTS flag set!\n", ino); + } + if ((flags & EXT4_IGET_HANDLE) && (raw_inode->i_links_count == 0) && (raw_inode->i_mode == 0)) { ret = -ESTALE;