diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c index 14bf440ea4df..a9b8d7f10836 100644 --- a/fs/ocfs2/inode.c +++ b/fs/ocfs2/inode.c @@ -1491,7 +1491,12 @@ int ocfs2_validate_inode_block(struct super_block *sb, le32_to_cpu(di->i_fs_generation)); goto bail; } - + if (unlikely(le32_to_cpu(di->i_mode) == 0)) { + rc = ocfs2_error(sb, "Invalid dinode #%llu: i_mode is zero! " + "FS corruption detected.\n", + (unsigned long long)bh->b_blocknr); + goto bail; + } rc = 0; bail: