Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3576736pxb; Mon, 24 Jan 2022 12:38:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJxWRhYH63WPfFsELeeGAWkFTzhC29JqcsFDExIce6bLtpVIbj6vB6RnG9gb7s1NwVHWEmAj X-Received: by 2002:a17:902:7148:b0:14b:650c:4ce7 with SMTP id u8-20020a170902714800b0014b650c4ce7mr2688885plm.4.1643056683231; Mon, 24 Jan 2022 12:38:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643056683; cv=none; d=google.com; s=arc-20160816; b=QqLQqZgZqz9O7nyauVVt9UZvLRauk2x4BiZlwFZNSfVdWO+qlk8HbnZDPpprsKen+K 3OP7rOXZLVySmIh59vqSpukxZVvgNA3LoG06tJ7dsLgPRWnHYptfr8MkfbnMWNZTh5hE 3q21iDpE0myfkONH9mCYLvmDsJolJ83r2umrSsBJxgqcycp4c3ojNJ4+C9NGkvV3y8Y/ a0AJvo6ASu4jSvWrbA2C8s91W2s4Zt5jVs3fzJhmMqYHD+LObKSV/egYw6axC7TF8jjr q4jA7LHQjEdNhb5eqrCl3fsZBB8t8azCLby61g14yPF6WuWwdLUtiDlt/UIynA/2Ryvk p5fg== 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=rvlAkVatcelst3I4HoMFca9XsXj50LZ0tc/3vA2jwDs=; b=uGsqCSFWqLHckEpQeuSGMuEPyX802+lRZgNOot8U//0iHm85taRGFmtdRGyDPB/SnZ CKyEa7wcsfK5Pfugtg7fUshSuiSIBwHnKAaUDJqPInhaiKfjVgcM9dL1KeHBQdyg3wup tDmvvgmAZbVXxZzH0OqyqdCxa702sVjQoIZqRf/DKEAlMqqc7/uBlMO6qkhGL+rtBpzW YVEZKJNDNB2+CqJET0TKcXgE6IPo9BiVAq4mey+G1h+OQuU7SH6VAUGnzRKkvyHOnxo+ ebU3NlxZEYzgp8jRCesGYF2BUunIMZkFsMuUc0UeMYFB9SCxW6O5GV8ZmRe01NCX2/b2 hhGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=QROLokJm; 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 q205si15705224pgq.11.2022.01.24.12.37.50; Mon, 24 Jan 2022 12:38:03 -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=QROLokJm; 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 S1356966AbiAXTsC (ORCPT + 99 others); Mon, 24 Jan 2022 14:48:02 -0500 Received: from dfw.source.kernel.org ([139.178.84.217]:35464 "EHLO dfw.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346088AbiAXTiD (ORCPT ); Mon, 24 Jan 2022 14:38:03 -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 1A9CB6135E; Mon, 24 Jan 2022 19:38:03 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EEC48C340E5; Mon, 24 Jan 2022 19:38:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643053082; bh=WrPbiVsHL3R4O3QuRUsnYj8sP4lCgmZ79KNdHnoSs5w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QROLokJm7FXJWaYjjnKEWjcZlhUKIzPLVO8RzrL4881U3pJYiMp9UXRYeS8clYhit pMrdLeG0qQ3gds+hS+UZAumUch/jcNv5hH4Ayo97rIDWqS+kBKgHQ2AoJ2i5Gj7Dwl ctO9ILS95+gSC4EfFxAU5A5giZJW/EHr1gC/PsEQ= 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.4 269/320] ext4: make sure quota gets properly shutdown on error Date: Mon, 24 Jan 2022 19:44:13 +0100 Message-Id: <20220124184003.131541828@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124183953.750177707@linuxfoundation.org> References: <20220124183953.750177707@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 @@ -5912,10 +5912,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; @@ -5935,7 +5932,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; }