Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3576738pxb; Mon, 24 Jan 2022 12:38:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJyTJ8kIOJjWoAScUj+bXfQWduCux2AtrD5BUEdyjLmM5UX6fIoNeNtiJC/6TsUiWTg/kqmk X-Received: by 2002:a17:90a:f30e:: with SMTP id ca14mr69362pjb.157.1643056683262; 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=Ijod7TcHyKppB+fjLYnn9QmeLLpIQ4fYMqtWKrEjYbPJQsVfHb+HiiclYvf9y+mg+Z r0vmCb249sTXEe1vVSxe//oO+rSzriO7QHsxcB5Mw8LrmZhcxSB0UUo5TOzp7p8uLhIJ UegSWYqq3uyBY+SK0HyNVeMKan8lUhI6FscbNDP2urx3xFhVmy8TWSo9Wbp5pj2qu2UD wBTLilvLZX2Bgts+feL/gIQJbP9sQuwIM63fZtXRmc5BOSvIW6z6VC5qbKoaDXWH6Vq2 P6hXDN6LMS4a9ut0Tk83bsC6XKVssboLKgNxGhV+ttPL1scT+EfF7hRuLjSnMyvPutHl TfHQ== 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=vN1aGVaFytsKE64906BG0YX6OnmrysdLV6ISdXtUzH0=; b=ZkPlX9kZFPth8EHDIqEpu3z9iHGBOe+0X++XYoWm+4pwzFNKo7hn5Iq4+RitmKUtUT /xouMgPtSW+p0eFuMwZbvg4cbwUjb2wmvft7yqd3j7W/1rT2sSDraH3CXW4t5tP+s2vb umfcn4TEUnO016BcJZb5gQJQAV3JWTvWdloizoYzRhRebgObJMduBqDJr+hu12wBsqVh DgKeF0RW5qne3NskI47ubfdWBHycftbaSz09cd5pcsQ2E8hEn9RaQ7a1BySZZAf5upD6 7SAMVA4CHL6YmXq4/3Tc9nmdW+a+lOnElVCPs2uoFX84cquEPtPjMbzEvjHG6wwZLkox r8Jg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=TSSSPDOL; 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 s6si319145pjm.101.2022.01.24.12.37.51; 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=TSSSPDOL; 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 S1356981AbiAXTsK (ORCPT + 99 others); Mon, 24 Jan 2022 14:48:10 -0500 Received: from ams.source.kernel.org ([145.40.68.75]:59098 "EHLO ams.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345772AbiAXTiC (ORCPT ); Mon, 24 Jan 2022 14:38:02 -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 CD7FEB81215; Mon, 24 Jan 2022 19:38:00 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F416CC340E5; Mon, 24 Jan 2022 19:37:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643053079; bh=xn5CIkjOdhzi0YaD3ET90nmLIPGwL+NI53JbBeeAdXo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TSSSPDOL8FymrBxVmc4QmIShf6VPzBMqI1zSMRBh7+9mT3E88SiLHwcygqKK/14zO NLV3p54TF/8WT6Nzf5QiyWmRuLORZ5ISUjlKIicq7uUKq4M0Qu0GOyrwXIyjLhU0+c 05cxxAES99iy8wNsgdMIIBe6A1tyXlrXB8L3Jsp4= 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 , syzbot+3b6f9218b1301ddda3e2@syzkaller.appspotmail.com Subject: [PATCH 5.4 268/320] ext4: make sure to reset inode lockdep class when quota enabling fails Date: Mon, 24 Jan 2022 19:44:12 +0100 Message-Id: <20220124184003.098755253@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 4013d47a5307fdb5c13370b5392498b00fedd274 upstream. When we succeed in enabling some quota type but fail to enable another one with quota feature, we correctly disable all enabled quota types. However we forget to reset i_data_sem lockdep class. When the inode gets freed and reused, it will inherit this lockdep class (i_data_sem is initialized only when a slab is created) and thus eventually lockdep barfs about possible deadlocks. Reported-and-tested-by: syzbot+3b6f9218b1301ddda3e2@syzkaller.appspotmail.com Signed-off-by: Jan Kara Cc: stable@kernel.org Link: https://lore.kernel.org/r/20211007155336.12493-3-jack@suse.cz Signed-off-by: Theodore Ts'o Signed-off-by: Greg Kroah-Hartman --- fs/ext4/super.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -5998,8 +5998,19 @@ static int ext4_enable_quotas(struct sup "Failed to enable quota tracking " "(type=%d, err=%d). Please run " "e2fsck to fix.", type, err); - for (type--; type >= 0; type--) + for (type--; type >= 0; type--) { + struct inode *inode; + + inode = sb_dqopt(sb)->files[type]; + if (inode) + inode = igrab(inode); dquot_quota_off(sb, type); + if (inode) { + lockdep_set_quota_inode(inode, + I_DATA_SEM_NORMAL); + iput(inode); + } + } return err; }