Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp796094pxb; Tue, 3 Nov 2020 12:46:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJxZuY18vAib5AsdoGAjjypblVjXtldUdbkCRgqOpXX+e+fXQ0EFlZ4fVvJvklhJAjsGBDVk X-Received: by 2002:a05:6402:22c6:: with SMTP id dm6mr2588803edb.139.1604436390587; Tue, 03 Nov 2020 12:46:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604436390; cv=none; d=google.com; s=arc-20160816; b=OZAL6hJzu8j4QEPDOSDV900nVEAl1lNRtO93/G5UKj70RKaT/n4JjVkUldm7TebEJF 3wIPCnPZQTOB0J1yf7iLu6Ki3l5pu6Rd2imoz/Cfx3lrGAMRGL35acz2J6Z4aq0jLjSp EZzXSO2IxgJVTaotpNxMK8jG9P54YJRa2k3KYiUChv6LWGo0TXHShtMYqcX1JAtUnhEW vMi9icZpADpWDPwtDXFfPCG7Dtj3OIo551Kro/xZTTG52Lp/OOMjvL7oRQ2mBQhZH2PF EubDBaRgUi6bDU5jKN4CPnVn5FRDQ+Uf5yfqcIuzyu1aHvmM8jdxO/6fG0S8NHh82KBY mJTw== 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=2F1592/pBtl1VD8MHwSKfqYFiVa5G0BA9dIXYcjqKDk=; b=pnWWJKCbVsTWbNLPpy9/v5mL0kszoKvjE/NZO2N+QtOjk8ZK2ELDGZ7OZiBSc4dDH1 Qhv6MEQAtZGczmx4ypHDknFHUwgPIUKV+ZERNTiqCtnG4jTxWXuCXB5VlaWgQ076geXW DOiF/iKMOcMzWOLX+ncNXa/fwihPojVv35hri4ueV0T00fGnNbxjzPmiVyvFLwnoPrEJ VTd+DArk74ghYhwABhlCiWOlocpEcINx6RACLb8pvBTS5+kUp416k39OYvYWhqUJycGr aarXYhLuvp38i4n6qHpuzL77CSjcQkbI5ccCddQnLZ4z+QzZvDZUgWWgKV5n4WUf2pJ3 IA5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=eJoAk74C; 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=fail (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 z22si6531ejx.130.2020.11.03.12.46.07; Tue, 03 Nov 2020 12:46:30 -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=@kernel.org header.s=default header.b=eJoAk74C; 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=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730006AbgKCUnm (ORCPT + 99 others); Tue, 3 Nov 2020 15:43:42 -0500 Received: from mail.kernel.org ([198.145.29.99]:57702 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730741AbgKCUnj (ORCPT ); Tue, 3 Nov 2020 15:43:39 -0500 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C0B7C223BF; Tue, 3 Nov 2020 20:43:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604436219; bh=doA8cbooLMM+qyK1FkxLDqNfk/it7BcN3ktOBSfQfdc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eJoAk74CgfEUzGd0bwsMD1U3LqY4cmBmys0hFtIEZ0GqIhtNW3Ad57eNDgUClX8Gi JWtI03na1x12am+BHQOYPUHjTpn1r4ZR+11N0AC6sUF02G3eziDO2xA7msrMBfBr82 v2oV4BY/G/AbotWT32lYOf4Cgbb5gXjDQ/p0UOV0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Andreas Dilger , Ritesh Harjani , Jan Kara , Theodore Tso , Sasha Levin Subject: [PATCH 5.9 155/391] ext4: Detect already used quota file early Date: Tue, 3 Nov 2020 21:33:26 +0100 Message-Id: <20201103203357.292350688@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201103203348.153465465@linuxfoundation.org> References: <20201103203348.153465465@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 [ Upstream commit e0770e91424f694b461141cbc99adf6b23006b60 ] When we try to use file already used as a quota file again (for the same or different quota type), strange things can happen. At the very least lockdep annotations may be wrong but also inode flags may be wrongly set / reset. When the file is used for two quota types at once we can even corrupt the file and likely crash the kernel. Catch all these cases by checking whether passed file is already used as quota file and bail early in that case. This fixes occasional generic/219 failure due to lockdep complaint. Reviewed-by: Andreas Dilger Reported-by: Ritesh Harjani Signed-off-by: Jan Kara Link: https://lore.kernel.org/r/20201015110330.28716-1-jack@suse.cz Signed-off-by: Theodore Ts'o Signed-off-by: Sasha Levin --- fs/ext4/super.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fs/ext4/super.c b/fs/ext4/super.c index ea425b49b3456..d31ae5a878594 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -6042,6 +6042,11 @@ static int ext4_quota_on(struct super_block *sb, int type, int format_id, /* Quotafile not on the same filesystem? */ if (path->dentry->d_sb != sb) return -EXDEV; + + /* Quota already enabled for this file? */ + if (IS_NOQUOTA(d_inode(path->dentry))) + return -EBUSY; + /* Journaling quota? */ if (EXT4_SB(sb)->s_qf_names[type]) { /* Quotafile not in fs root? */ -- 2.27.0