Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3684651pxb; Mon, 24 Jan 2022 15:17:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJyWDbRVOyc5T/hANmpaOh18UAIbSNTU7pf3KKKSfBfGMRhJF3drxaA+sC7S3YoQN4/RMt+H X-Received: by 2002:a17:90b:4d88:: with SMTP id oj8mr619406pjb.194.1643066274018; Mon, 24 Jan 2022 15:17:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643066274; cv=none; d=google.com; s=arc-20160816; b=fFsV6vU3F4B5km0HUlQ/JOREhbRfywgRNN/cHZwpH40CVwnrnNgEHxhy6YMiHDlIsk 4xDhj+45LtEQ7mi6XDnVlOayfx/6b4FL5NaHok+vK7/sNlLteIbJKXbnEyB994Jd2Adu Stx7zI1ggowDclL9+TBw+ALWZK6qs4de1a1IDVW5PBEF9s29v5PL5TB5wietLlGz2l48 3wT2KVe9Ugu1wloT2yDXvnhAgiKUp/yqRUqHginJToeK/kocyF1+sBTm5UIz5dF1HH9R MKa3wSHn/fk40EeB85KrbUG+qqeQ8hV4adJk/w9xQ/JCV16QUxQu04Ac6SdXKZzvxB2Y 6OfA== 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=F1RwlZ4reBsSAmr7JjvCwW+Gz9r6wjAOx7XmW5vhmCE=; b=eVcLKLgb5BL9TxqoZi+XPAcTonStz1JFlUsxC1R6YepB96o9MAX0kX/dk57NmYa2n2 dLNrS89MSflWRnB3e1d85od9/yE9duWtHjqPqEE2rbDCzseoHB/5mNh2zFv7lx7MlOMZ vi72M7Dqh4KuQkT+nTEsoBqrwFhVgaeIAGFDFibFr1R8gG6OaYIfuFKGnu9Q7KiPDf7L 5w8g7e+LgHBIM5R4CefDmPmYp5f+qCGFEPOm8sn6lZgbzZ/CxPd2LXEubWSg5Wa/Rh5h /sZHV+KH9IjtNq2g9YIo8obe/ISpWC/bpsXpIYO2qmIvwLPADH9CRR0K5qxHGF56q4W1 t/CQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=sQwFvkZz; 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 g5si3601514pfu.292.2022.01.24.15.17.42; Mon, 24 Jan 2022 15:17:54 -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=sQwFvkZz; 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 S1844994AbiAXXK6 (ORCPT + 99 others); Mon, 24 Jan 2022 18:10:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35650 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356206AbiAXWRS (ORCPT ); Mon, 24 Jan 2022 17:17:18 -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 D4799C04A2D7; Mon, 24 Jan 2022 12:45:40 -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 79D4EB81061; Mon, 24 Jan 2022 20:45:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AFAADC340E5; Mon, 24 Jan 2022 20:45:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643057139; bh=dzVoloKPV8iehEkPtMjgCkWs6t5GNeQ2ByyoDuIQLb0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sQwFvkZzt36ZqrGYeEWruCovWAvpSDGcR/WCj89Vhov11SAFN2hpNj9snX3iNqGPD pljsPQ0hBMQxnajmGmIQ56pEHsndWRv+sf3pyefYpIqqJgXFxAF8eKkpwvd2Y1W4lO F6KIluNjdk17Tyg4iOB1LNA6QYPLHoUErkUmQz4w= 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.15 713/846] ext4: make sure to reset inode lockdep class when quota enabling fails Date: Mon, 24 Jan 2022 19:43:50 +0100 Message-Id: <20220124184125.622910378@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124184100.867127425@linuxfoundation.org> References: <20220124184100.867127425@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 @@ -6352,8 +6352,19 @@ int ext4_enable_quotas(struct super_bloc "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; }