Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3982352pxb; Tue, 25 Jan 2022 00:37:16 -0800 (PST) X-Google-Smtp-Source: ABdhPJzJFF0wmSwpUnLHIE5+YqszV6uK1Yu9V5Wtl0mPZkin1pol+bTFMheT8j9P2qT/woXVr5om X-Received: by 2002:a17:907:2cc2:: with SMTP id hg2mr14950407ejc.645.1643099836641; Tue, 25 Jan 2022 00:37:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643099836; cv=none; d=google.com; s=arc-20160816; b=fuffp+9WBQprdVOsCL2fKEPWzCifk/OUSiy4ed0tSuY4cZNRdQ/wpZeDtAIwO4WeWb HlDEoLkaujIJdPuhXfpURc8w6cpKFhdhcK4nLC8cUx80XDIzi/QCsOShKGXP1EG9N05h Iw4cqNuNiLPhR7y+RAnH3n2wZ0wiJAusHw0SPekTSUQ2apTQPUiH94sAu94lOwN7a4a8 ULGaPRI3VvqsHwg6MKzeHTxnZrdEyIC32c0iWRdqgkmvjNCBUyB1YcwvZOH6PS5HfraD OPNYr2GvC1+FqxR3mSNqYUH7V49b8lTxkltPG5x+L2W6OB2KzCKnwhroe76rfnR8G1hC dc4w== 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=LT4LUlYVjxyGIehdfXbs4K/+9HS22p3s+1yAiVOuASY=; b=OaTwnotFZxDAJZv85WtRMrMbtAeF2oEt9Lku9s7pLFca1pQHHMSMQT0tytOOd7L4l+ 86lvZ0xm0UE6ryWaULiO+PGPATTwFNDh2wGTbo/6WIUmmoQbTVQj8Mf/8vyx0DDnxdmc ixczuIbWAN6XvHC1jzfgU4s4lm9WaIQJx6H0UxXeq51tQOHVefXxgZhbHYlhTIccOFPy h0u3yxUPp5xsj+xffwDBO4iERgUBjjxpdr+XzTTL0pOuQxXjID4ZjbND//ZGzjbe2yv0 5cGutrWZs7kz/kCrLuBvwhgBG8WkM+MuW9gQQL0jh13vengn4xCGefDDpvxr5WR/iR/9 u1Bg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="t8Gt+/5H"; 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 r15si10870875edd.229.2022.01.25.00.36.50; Tue, 25 Jan 2022 00:37:16 -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="t8Gt+/5H"; 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 S1314750AbiAYCvk (ORCPT + 99 others); Mon, 24 Jan 2022 21:51:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47096 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349192AbiAXVFL (ORCPT ); Mon, 24 Jan 2022 16:05:11 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 88E51C068095; Mon, 24 Jan 2022 12:04:52 -0800 (PST) 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 47A4AB810BD; Mon, 24 Jan 2022 20:04:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B043C340E5; Mon, 24 Jan 2022 20:04:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643054690; bh=wDexgYPxIcnur2R9Xoptda8AzH+1e7S/lnUXV2G5T8c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=t8Gt+/5H+srMlqfDqVng6zkDZ3tegF1h5D7ng1+IKyXBfsv6dc64Gn6q8NRL5jQaq XolpjB5KicjxezAPUq0wGbQx/LLpfKH0lZiEoBvVo11ch+JfHnTC4JlGHe0/6ksye9 kyIKVkhx+VHgZ5DqUrsfKBciSMR2fWIotY+0jQ08= 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.10 472/563] ext4: make sure to reset inode lockdep class when quota enabling fails Date: Mon, 24 Jan 2022 19:43:57 +0100 Message-Id: <20220124184040.797286521@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 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 @@ -6427,8 +6427,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; }