Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3683383pxb; Mon, 24 Jan 2022 15:15:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJwat5jQth/+YSK9w4PedrnKfens0vFyfMtYwAeVGE7E+QxyL8DpmrSoF/x8f6tfFntpDiBO X-Received: by 2002:a17:902:8f91:b0:149:87ff:ac85 with SMTP id z17-20020a1709028f9100b0014987ffac85mr16498456plo.162.1643066154151; Mon, 24 Jan 2022 15:15:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643066154; cv=none; d=google.com; s=arc-20160816; b=pP8mrC2i3CgCEx1ahHGR5xwWuzPtqCk6GE1DeYyNVVH1daXJUdfIUr+P67ND8IBsKy /SsU/3CijlcG+m1lje0OqM3F4lr3mMdijVe4+tyLZeVyP+tMlS3Wujubh/R4tw+CwaFM U4wfIE+S+IdBQzCGHtC7Icl402jhuGI3HnAMmDt+TLV1W/5vbbHJH5VcFKwSveFpwZLa FPpr6wLLfHBrpIDfJLQSUDHaovmjw0R6SlIEitDQAUgfXBMmLjr78gbhR96SL1iflIcv QHCW7hqkmIWh1sO3NIxQyWCDbpOLgG7VlwqZygCul/YHivFk9M/zsgBgz3xFPG1Dnv+z CuVA== 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=uSc1Q38xI4K6LkaRqL1qKgBOUFeHyveUy8EwDjtPkbQ=; b=WH/0Moib2Bz62k/Ipyl31WKg88Hn8rrhz82SHXg2+4i5vm6fiy/pnNLyzCMPqMAwIP hQK65bBdI5xofB0VDsgH+9k3piBznMVvxjRNNjuTHKemNuVmn9nleYSRuPeN8u9QgNuV dn9he+rF0Rww6YDIcpR6aFRLxMT9bXEW5e5oMQKjqZCtBePCLpvA41G85/NmzFBoATWC K4qhCt6L9ANvW+fb+FKwIeDQW09/bPLcHLCc/sJmoAo/gZPH4HnKgtLPomFkzyxdCTKW B7k3/YqSH0HcVRz3pST/eajKNhn0cDFointIITXD8zcsAvQ4UJv94jOyrToZuTJYgFt9 htIw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=JlwIbyWa; 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 n1si17019943plc.226.2022.01.24.15.15.06; Mon, 24 Jan 2022 15:15: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=JlwIbyWa; 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 S1844706AbiAXXKI (ORCPT + 99 others); Mon, 24 Jan 2022 18:10:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1581332AbiAXWRS (ORCPT ); Mon, 24 Jan 2022 17:17:18 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24CB7C04A2DA; Mon, 24 Jan 2022 12:45:43 -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 dfw.source.kernel.org (Postfix) with ESMTPS id B6E0160C19; Mon, 24 Jan 2022 20:45:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8FEDCC340E5; Mon, 24 Jan 2022 20:45:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643057142; bh=EdeKd8hYj4w686f57lxmjeNGU6Ybz4jy8tR2I583/b4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JlwIbyWaXtYjBC8monGqjtzJyOhPAV1pc+zxu/mt21qKPaAbidMghyg91fEVN6Sh6 fmfJ9jG6vN//rQadYjKcA3I/2I03MRAA8o0PdEPAYAnupCgXh98wtL71zSWMjnJraA Wp7FCsjH7tzr0xJlwhZEMVdEGKWYizy99z+1RJMk= 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.15 714/846] ext4: make sure quota gets properly shutdown on error Date: Mon, 24 Jan 2022 19:43:51 +0100 Message-Id: <20220124184125.653471993@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 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 @@ -6266,10 +6266,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; @@ -6289,7 +6286,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; }