diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 07dda6745435..0168e219fa82 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -4696,6 +4696,7 @@ struct inode *__ext4_iget(struct super_block *sb, unsigned long ino,
 	if (!(inode->i_state & I_NEW)) {
 		if ((err_str = check_igot_inode(inode, flags)) != NULL) {
 			ext4_error_inode(inode, function, line, 0, err_str);
+			iput(inode);
 			return ERR_PTR(-EFSCORRUPTED);
 		}
 		return inode;
diff --git a/fs/super.c b/fs/super.c
index 34afe411cf2b..f7bbdaec1e52 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -511,6 +511,7 @@ void generic_shutdown_super(struct super_block *sb)
 
 			spin_lock(&sb->s_inode_list_lock);
 			list_for_each_entry(inode, &sb->s_inodes, i_sb_list) {
+				pr_err("busy inode: %lu\n", inode->i_ino);
 				inode->i_op = VFS_PTR_POISON;
 				inode->i_sb = VFS_PTR_POISON;
 				inode->i_mapping = VFS_PTR_POISON;