diff --git a/fs/ext4/super.c b/fs/ext4/super.c index c014edd12648b9c1573d10a27cce82434581251f..3ac306064b285c88707ef97dfe3faebc62d95be6 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -4009,7 +4009,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) !(sb->s_flags & MS_RDONLY)) { err = ext4_enable_quotas(sb); if (err) - goto failed_mount7; + goto failed_mount8; } #endif /* CONFIG_QUOTA */ @@ -4036,6 +4036,10 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) ext4_msg(sb, KERN_ERR, "VFS: Can't find ext4 filesystem"); goto failed_mount; +#ifdef CONFIG_QUOTA +failed_mount8: + kobject_del(&sbi->s_kobj); +#endif failed_mount7: ext4_unregister_li_request(sb); failed_mount6: @@ -5006,9 +5010,9 @@ static int ext4_enable_quotas(struct super_block *sb) DQUOT_USAGE_ENABLED); if (err) { ext4_warning(sb, - "Failed to enable quota (type=%d) " - "tracking. Please run e2fsck to fix.", - type); + "Failed to enable quota tracking " + "(type=%d, err=%d). Please run " + "e2fsck to fix.", type, err); return err; } }