Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3594500pxb; Mon, 24 Jan 2022 13:05:21 -0800 (PST) X-Google-Smtp-Source: ABdhPJyQoHMORbKsCgm1n/19zY7UJJLzTYesE+5avVaLxrKPGUiIVhnCME78w3/ElR3Sla7CcL17 X-Received: by 2002:a17:902:9343:b0:148:a2e8:2c49 with SMTP id g3-20020a170902934300b00148a2e82c49mr16358991plp.152.1643058321177; Mon, 24 Jan 2022 13:05:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643058321; cv=none; d=google.com; s=arc-20160816; b=TQaX1n5vL1nBsvCbc+aylxmWlb5w7sYvzVIl7vmDCDD1x2uCFOXDTObBOU92vFjS5M a4zQcQovH/BniH/R9g0l1VzkA8PGpgX6kJLp66OTvoFo5CjqS89/Xv/b47fy9YNb875w tWaUBioA2De1gGYj6pM0iDaEDS6FvvWS+Z15NAWLtJI/uqJmogmKLqbZxFYuX5GC6dcN 49g3jGC6MHs6COKKDRpy9QE4KySqzxtjBwm71IzTtpHqIR+DoIaaubQWPjuml0cre8Of WLVrys1ACBqAS/NT/ACebe+QkknZGfxzMrPdl+xIreGB6PbJRIzBuuf1AZNkpLE/vx9I 3maw== 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=+dCrBXdSwNp/z8bzLSeP3sO5M7KmpPdNMB/HIhURHdM=; b=nikBQs5BUSd/+jBwNu/GAxEljvtkhz1XfZlm2sDN+meWZi0xHchNRr64WNKPawOPe4 zgXu05FLXcebfWJqemWiMXe/n46zhm9dBI+z0g/INrkqKTJt5K+AqX4VxPu5id9rRZsL JUNd5LZ7QozLVISoGpIKF+KWfTKoCpvFpSG5kj7TcjeQ2juctXc3Pt5DOoEDVHwyv9hX CCKhAlanJM2Q4aUVyMGdC2iQF2U4KydhYkPsmH8SerSnmhQ0bJuEiQSoONm+8/3R5/Yx xAFcvma7YuQDPIsE9i6AxdK4ygAIXocYYFGGuhOakaMrUdGECtCJh3ELhFlzmloD1IW1 SsIg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Kyy7XG4v; 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 t191si11059743pgd.842.2022.01.24.13.05.08; Mon, 24 Jan 2022 13:05:21 -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=Kyy7XG4v; 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 S1383272AbiAXU1E (ORCPT + 99 others); Mon, 24 Jan 2022 15:27:04 -0500 Received: from ams.source.kernel.org ([145.40.68.75]:48466 "EHLO ams.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1377085AbiAXUEz (ORCPT ); Mon, 24 Jan 2022 15:04:55 -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 ams.source.kernel.org (Postfix) with ESMTPS id 26F3CB8119E; Mon, 24 Jan 2022 20:04:54 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8CE63C340E5; Mon, 24 Jan 2022 20:04:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643054692; bh=1LRY7Hc5xtjb83pWWXrGzUxDQvG9QongWQv+GtMJcTY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Kyy7XG4vtS8pRQ793/7MnU2HJbsREvqwXNrlC6h6PNnViIvKl1wTOaW3BJUHMRx13 7M2xncIRzQJaWCG4IYv/TrfNUt4yWj9VuODTIsO7/UPn97aT+KF4Ddvb/gc26wJkQr LsFDWuQf8u8Wz4SHb9SJ6HeTq7YM9/L9mosJWD10= 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.10 473/563] ext4: make sure quota gets properly shutdown on error Date: Mon, 24 Jan 2022 19:43:58 +0100 Message-Id: <20220124184040.829568391@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124184024.407936072@linuxfoundation.org> References: <20220124184024.407936072@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 @@ -6341,10 +6341,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; @@ -6364,7 +6361,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; }