Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3660518pxb; Mon, 24 Jan 2022 14:42:48 -0800 (PST) X-Google-Smtp-Source: ABdhPJwsLxKzoOXahBdzH/+sNAh9tmS5oLDq8lCHjEoCi7XoV7gnWZkOj9AlFUaUb4vLzXvtVxvn X-Received: by 2002:a05:6a00:1587:b0:4c7:6da7:7724 with SMTP id u7-20020a056a00158700b004c76da77724mr13310082pfk.18.1643064168417; Mon, 24 Jan 2022 14:42:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643064168; cv=none; d=google.com; s=arc-20160816; b=W8zYUnyTarF24YfMD1O8ho88WODwfO4V40c4DSvLN3pFHTfvRLnrQ5S6cclBHp2sBj 8/OGo72LD2ldaLzY9udHgQz2uQDketfEf+vwmO5XbJPMu7VE2qxMZF99jLjq+Wp9o0mi uy11tSJZTvtwjBXRWQhnKOqhjgXaT70TJYBBLRJWSZjmYKUm33Z2s/l+W5Su2BTrFkCi kw0vb2bHP6iWCvpA48HUcz3rsE4UydZbuA8hRCZdzaHOcADR1+D2MdLz+/mx4zOFJ/CB ZQgElqfBiF2mKwleCmgqvTzHW2BlxRxyksYNKczoM9IEZfpiuyyqdJ/Bd/AEBicAn8NL Mr+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=/bkvUcjahvCQkomzCZtgqbgql7/0sbd7juTszeiJKl4=; b=TJpTcX84DHAqmcscgYg2Og5Z8mtrAGn6zUff1Qk2svvWV9UgleApR4091gNiFYYoos foDn2GW0jZOWRemvjEm/MKcIX2nVWU+vBFelvYfcOiIQpL3NsxvpzRMHfOF76TgW0r78 56/OMPHsb4a+IVheeF/qiR8sdUoYnkp9fhG3abD7WrkbpAqQ1Jy1IgoNmXAkWYm8jm8t v/C9FkIsVif7IoQ6y399lp1GoOVHgOeKRiIBAsF4yQPTpR7eForY7Tt9jYauVSvZQseW df5Sph1ShbLt7RUqcz3kyek7PyEUtFbacbU7UCjqm5ePiSbZGXWODMShdOgJNkZ8Rg1E A/kw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ERebD0CS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v2si530811pjk.76.2022.01.24.14.42.36; Mon, 24 Jan 2022 14:42:48 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ERebD0CS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1835564AbiAXWgx (ORCPT + 99 others); Mon, 24 Jan 2022 17:36:53 -0500 Received: from dfw.source.kernel.org ([139.178.84.217]:55820 "EHLO dfw.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1377564AbiAXVhk (ORCPT ); Mon, 24 Jan 2022 16:37:40 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 89AF261320; Mon, 24 Jan 2022 21:37:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9F8D0C340E4; Mon, 24 Jan 2022 21:37:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643060259; bh=UT/Dyl9nj/GkI8RbdJNJ6JJC4uuJhbXEjUEcFtXd0Bo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ERebD0CSw+APQ9s/XpSjt6C35Wpb0fd42IGcq6a9V2aBWJ+Ft4oL5dtpNIdDhdfFT IFejbMLFaSSwEf6gSvLHrCuSAiy1DU1G5j3Ha/0etyNCniJ9+RVYC6XzkIux63p8pM Wrc5shrI8ilPYyf8Mmb/ZVn6GhvDFsB7BSQbZ89U= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jan Kara , stable@kernel.org, Theodore Tso Subject: [PATCH 5.16 0890/1039] ext4: make sure quota gets properly shutdown on error Date: Mon, 24 Jan 2022 19:44:39 +0100 Message-Id: <20220124184155.205187963@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124184125.121143506@linuxfoundation.org> References: <20220124184125.121143506@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jan Kara commit 15fc69bbbbbc8c72e5f6cc4e1be0f51283c5448e upstream. When we hit an error when enabling quotas and setting inode flags, we do not properly shutdown quota subsystem despite returning error from Q_QUOTAON quotactl. This can lead to some odd situations like kernel using quota file while it is still writeable for userspace. Make sure we properly cleanup the quota subsystem in case of error. Signed-off-by: Jan Kara Cc: stable@kernel.org Link: https://lore.kernel.org/r/20211007155336.12493-2-jack@suse.cz Signed-off-by: Theodore Ts'o Signed-off-by: Greg Kroah-Hartman --- fs/ext4/super.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -6275,10 +6275,7 @@ static int ext4_quota_on(struct super_bl lockdep_set_quota_inode(path->dentry->d_inode, I_DATA_SEM_QUOTA); err = dquot_quota_on(sb, type, format_id, path); - if (err) { - lockdep_set_quota_inode(path->dentry->d_inode, - I_DATA_SEM_NORMAL); - } else { + if (!err) { struct inode *inode = d_inode(path->dentry); handle_t *handle; @@ -6298,7 +6295,12 @@ static int ext4_quota_on(struct super_bl ext4_journal_stop(handle); unlock_inode: inode_unlock(inode); + if (err) + dquot_quota_off(sb, type); } + if (err) + lockdep_set_quota_inode(path->dentry->d_inode, + I_DATA_SEM_NORMAL); return err; }