]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
quota: avoid missing put_quota_format when DQUOT_SUSPENDED is passed
authorKemeng Shi <shikemeng@huaweicloud.com>
Mon, 15 Jul 2024 13:05:31 +0000 (21:05 +0800)
committerJan Kara <jack@suse.cz>
Mon, 22 Jul 2024 16:13:34 +0000 (18:13 +0200)
Avoid missing put_quota_format when DQUOT_SUSPENDED is passed to
dquot_load_quota_sb.

Link: https://patch.msgid.link/20240715130534.2112678-2-shikemeng@huaweicloud.com
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
Fixes: d44c57663723 ("quota: Remove BUG_ON in dquot_load_quota_sb()")
Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Signed-off-by: Jan Kara <jack@suse.cz>
fs/quota/dquot.c

index a2b256dac36e6fd865db877c91aa345ece92cf85..104927804bec55048b33ff3877cebfc434f94715 100644 (file)
@@ -2406,7 +2406,7 @@ static int vfs_setup_quota_inode(struct inode *inode, int type)
 int dquot_load_quota_sb(struct super_block *sb, int type, int format_id,
        unsigned int flags)
 {
-       struct quota_format_type *fmt = find_quota_format(format_id);
+       struct quota_format_type *fmt;
        struct quota_info *dqopt = sb_dqopt(sb);
        int error;
 
@@ -2416,6 +2416,7 @@ int dquot_load_quota_sb(struct super_block *sb, int type, int format_id,
        if (WARN_ON_ONCE(flags & DQUOT_SUSPENDED))
                return -EINVAL;
 
+       fmt = find_quota_format(format_id);
        if (!fmt)
                return -ESRCH;
        if (!sb->dq_op || !sb->s_qcop ||