--- a/fs/gfs2/glops.c +++ b/fs/gfs2/glops.c @@ -439,8 +439,13 @@ static int gfs2_dinode_in(struct gfs2_inode *ip, const void *buf) /* i_diskflags and i_eattr must be set before gfs2_set_inode_flags() */ gfs2_set_inode_flags(inode); height = be16_to_cpu(str->di_height); - if (unlikely(height > GFS2_MAX_META_HEIGHT)) - goto corrupt; + if (unlikely(height > GFS2_MAX_META_HEIGHT)) { + printk(KERN_INFO "buf->di_height: %d\n", height); + depth = be16_to_cpu(str->di_depth); + printk(KERN_INFO "buf->di_depth: %d\n", depth); + printk(KERN_INFO "inode->i_size: %d\n", inode->i_size); + return -EIO; + } ip->i_height = (u8)height; depth = be16_to_cpu(str->di_depth);