From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=100.103.45.18 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794585484; b=vHzW5YNAMRxPpQ/YUJAdsspbB6O+tbyBCuxW9ZHKtrOTVmoZbQHIAKeT0SEgri+yOyv9 bNhfaaZPZpnODaYJmF0MKUOCqJ3dRe6WDNHtcGdO+fjslJgOfFKBveVHMLsbQpmJOiXa4 gWkk9yjnU5nNUZRreP1Ac29eIyNgPlhYYjsbqXz8iCpZ5wlZMvR1FmfILd6+ZOe3LPXh2 EAT4wuCJNmHX31V+67lQqdBWoBMQsxBL8meK2D24sLLjGJQytaPLKNX7ClTvppNesfoS7 chYBEPjXtrYrspm2Dq7XbrjNe3OZIw/BquoTObbJ76VadgQJE70+or+jILL1F7ACHsQ== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794585484; h=Received:DKIM-Signature:From:To:Cc:Subject:Date:Message-ID:X-Mailer: In-Reply-To:References:User-Agent:X-stable:X-Patchwork-Hint: MIME-Version:Content-Transfer-Encoding; bh=8DbScHy+xNLWMCXfr1XAQe5ff6nk0/hG6445SIt5rDs=; b=PiL3Nwu077RAlT/RfCy2FFZ9hN5IHmRgd0jBdBqTW1CTfZkmxlEbOUv02hThqvh7P0c9 YvFCdwfHSFQEAmqKly/VhCxG0400AkZ//i5Gvx0y1aNXkL9AzeuBD0+1HqC0ykiIiQ6gO zTi/MkqFRrNdCJdN1a9Nfgpy+KxkEsE5olOxteJz6HanfUMc55+idIF+C9BRSfiDkO5IH z3mn6LFeKm9XyblfmnmkpZS6wWjOQ7dIsHtinls6fxlwzySKnWWSXlaSHfyh9a01lRqBQ ztoSBxVkPDosBZyTf3mKAUWKy+F0bJRqvZZgJgl4V0nJZRg1JXFqhiSkxcGUfOOGy2w== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass header.d=linuxfoundation.org header.i=@linuxfoundation.org header.a=rsa-sha256 header.s=korg header.b=zRUmJTB6; arc=none smtp.remote-ip=100.103.45.18 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F204A606EBA2; Fri, 13 Nov 2026 15:58:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.a=rsa-sha256 header.s=korg header.b=zRUmJTB6 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E7E31F000C5; Fri, 13 Nov 2026 15:58:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=korg; t=1794585483; bh=8DbScHy+xNLWMCXfr1XAQe5ff6nk0/hG6445SIt5rDs=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=zRUmJTB6vRXtQZl9tm/nN4nXbFDuebqOBNVjFEbnQduESDp1YIVJmrLKJ/b8vcRjo 42twaCb7gO5ssn2D5Qxx4iSjQYeJwHgb7IsMYLuV+gmw04N9sd19K8J3Y23omrqXjj QDWa+45fSHfY/Ky/mGFItb2YgZmnjtYxzC0rStXo= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Josef Bacik , Jan Kara , "Gregory Price (Meta)" , "David Hildenbrand (Arm)" , Sasha Levin Subject: [PATCH 7.3 134/507] tmpfs: keep the quota soft limits of an unused id Date: Fri, 13 Nov 2026 10:47:18 -0500 Message-ID: <20261113153758.990201676@linuxfoundation.org> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261113153753.358973689@linuxfoundation.org> References: <20261113153753.358973689@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore X-Mailing-List: stable@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 7.3-stable review patch. If anyone has any objections, please let me know. ------------------ From: Josef Bacik [ Upstream commit 968d73463059156e1b89bfa6b189acd7d27197b2 ] When the last reference to a dquot goes away, shmem_release_dquot() stores its limits in the rb tree of the mount, unless shmem_is_empty_dquot() says that there is nothing worth storing. That function looks at the usage and at the two hard limits only. So if the administrator sets nothing but soft limits for an id that owns no file yet, the entry is thrown away as soon as the dquot that Q_SETQUOTA used is released, and the id never gets to see a limit. To fix it, compare the soft limits as well: an entry can be empty only if both soft limits are zero as well, which is exactly what shmem_acquire_dquot() sets for a new entry. Fix generated by an LLM and sent by Josef Bacik in private. Fixes: de4c0e7ca8b5 ("shmem: Add default quota limit mount options") Cc: stable@vger.kernel.org Signed-off-by: Josef Bacik Reviewed-by: Jan Kara Tested-by: Gregory Price (Meta) [ david: slightly adjusted description ] Link: https://patch.msgid.link/20261029-fixes_shmem-v4-2-392fc715d8f6@kernel.org Signed-off-by: David Hildenbrand (Arm) Signed-off-by: Sasha Levin --- mm/shmem_quota.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/shmem_quota.c b/mm/shmem_quota.c index d0b92d6da50f5..a83392f75e56b 100644 --- a/mm/shmem_quota.c +++ b/mm/shmem_quota.c @@ -251,6 +251,8 @@ static bool shmem_is_empty_dquot(struct dquot *dquot) if (test_bit(DQ_FAKE_B, &dquot->dq_flags) || (dquot->dq_dqb.dqb_curspace == 0 && dquot->dq_dqb.dqb_curinodes == 0 && + dquot->dq_dqb.dqb_bsoftlimit == 0 && + dquot->dq_dqb.dqb_isoftlimit == 0 && dquot->dq_dqb.dqb_bhardlimit == bhardlimit && dquot->dq_dqb.dqb_ihardlimit == ihardlimit)) return true; -- 2.53.0