From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0F338C02190 for ; Thu, 30 Jan 2025 09:00:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 46DD4280277; Thu, 30 Jan 2025 03:59:58 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 318162800D0; Thu, 30 Jan 2025 03:59:58 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0C35B280277; Thu, 30 Jan 2025 03:59:58 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id CA7CC2800D0 for ; Thu, 30 Jan 2025 03:59:57 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 907364631D for ; Thu, 30 Jan 2025 08:59:57 +0000 (UTC) X-FDA: 83063520834.03.38F8171 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf10.hostedemail.com (Postfix) with ESMTP id E366AC0017 for ; Thu, 30 Jan 2025 08:59:55 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=linuxfoundation.org header.s=korg header.b=Ad3mnuPD; spf=pass (imf10.hostedemail.com: domain of gregkh@linuxfoundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org; dmarc=pass (policy=none) header.from=linuxfoundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738227596; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:dkim-signature; bh=WEyWsHTJiST2WFksJzwzS8C4aLJzq9OLqrGaXbPGR3A=; b=sWnXjkgH1wBGYqjjeyxbJWt9MHmcSx2Fc7aSn5qfXM8GvFSlZzWOlrH8IYmgCbUi0nP6HW s7w9WHzy/RvHQobNVh35b/U2pHUobgfoniIe5jvcPaHbM+5EHg6i75ZDD+9Vjqb2ETG+BL v2AstjBJUy+OmEJEp4wSBNqVeTrly3Q= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=linuxfoundation.org header.s=korg header.b=Ad3mnuPD; spf=pass (imf10.hostedemail.com: domain of gregkh@linuxfoundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org; dmarc=pass (policy=none) header.from=linuxfoundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738227596; a=rsa-sha256; cv=none; b=2qoY5lS2DlqQBDTgsD2VpKDVbVG0sweX+QInFlIH9cifOYwWw4TWBdT4VFl8er23sLvJwA UQYsJwSe3ebgjUkoCGG7iDBQIOqmpH2ehpd30HbUQJB2cKdftpOnGX9/jp8Rvfah7BIjaH /870/8137jWx4HJJPkscjT6R/h1dmAg= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 1B51F5C4315; Thu, 30 Jan 2025 08:59:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 74E95C4CED3; Thu, 30 Jan 2025 08:59:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1738227594; bh=/SG1YPZGrNagD3g+Fq6ZNK0eM7NqVSBT8YD5YBxg+jM=; h=Subject:To:Cc:From:Date:In-Reply-To:From; b=Ad3mnuPDjfdU5Ye5Ll5gk+pcoRkp5lg8KWRm9H9U4uuE1bpPAncOms4daVmr56nB7 hmAXimMmK+OWNwC2l57mxVkJGf/SHwASxT2oKeIPp10QAI3ACiU+JzK4zuMI+2lfJ3 y5yaNMigrDRrhLAmfJOILK/pgpkhZTic+jvXObGw= Subject: Patch "Revert "libfs: Add simple_offset_empty()"" has been added to the 6.6-stable tree To: akpm@linux-foundation.org,brauner@kernel.org,cel@kernel.org,chuck.lever@oracle.com,gregkh@linuxfoundation.org,hughd@google.com,linux-mm@kvack.org,sashal@kernel.org,viro@zeniv.linux.org.uk,yangerkun@huawei.com,yukuai3@huawei.com Cc: From: Date: Thu, 30 Jan 2025 09:59:31 +0100 In-Reply-To: <20250124191946.22308-9-cel@kernel.org> Message-ID: <2025013031-levitator-attention-4a2b@gregkh> MIME-Version: 1.0 Content-Type: text/plain; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: 8bit X-stable: commit X-Patchwork-Hint: ignore X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: E366AC0017 X-Stat-Signature: d7yokotgff7itw3whyyzqukbknnwsyoz X-Rspam-User: X-HE-Tag: 1738227595-554711 X-HE-Meta: U2FsdGVkX1+4iv8zjxJ6wSk3+9GQ+Q9GlAYwTP5QpTRuotN6pWQoGslwZNc6EGhgiFJSftDNjcH8+d7V5uiAnd5ZUON2RnEAAbuX6L6fq1xe6CPCdLrlmSeKzwMcrpwUuNnxCiDVN749hMLiTLICywCkGocIWEqlAos3BZKB6nATG/mQDnEwI2trjbuluD0QNyCuiE8XPcPIsHGT1IYLwk0bcQIfcTgobpwjG02dwdnfyDyXOzpl5vmFgcHwzWd2n180J7QzZLqR2k68W9BR6pd8k7qfKjpg0gst1BMrjzpmWZO1ZWUn97aqDmtkvoHXyh5lM9xgcqZZQNBmcsbL0iK+VIRp2ddMnBK0uwMiMj5pdLqb2xRlIdHGirNZEJklGmWBmGVMJ8xKouTdJ8NdlJ53EqwaBhWkBrBomtMUEMkjpTqKGbWW51sCz8Ddf/NNT1mK7OiVfcUsE+rRqvkzROT4TZnQssYPNfel43PILPoXtwyzhEL36iU3LhEEW/bldlpuE2nTNuqh89GDS9nwPB4oLFbYD1PhNMxvtnrQsk7xZ3vygkHWg9ZiRZnPX1SsafHzoUzUaZPSINWUVP8bGjELJZFtMH12xxaUferGFOA79NCoJ6Nd4J9emGpSUYFewdpJPgjbHmRfwZIwKnz8gt3L3ReqbQvbV8NwT1MyXSqfFXgD9A9SjNG6PtyPK4iw2K/nstbFtEbjhks1BtjUuugMADt3w4EX3gblJ9AC6JhHG0tE89pc/HuDRFCId9zCq7vTEkGGnpDPcRkcpXN1D7iQwiyoTTC4cjlG/1lMJFfvHcVMZBoUooQnbV5abbtvOHV35ag10cMubeoKRVXVefJvsM6QxJIZcLsL0s3NrBMEcy7Bhwm/Wr4sSateotCKtOWYrre4YDA/+FUwZhTaj5onCIawnUrJTVGRVfLhvOejECcaGzQ3Cls3usc1Gu/zvVNrx1kN+Mrj3FQpDKU EeDbYGPP 0ymD1oYFPLartgXV9TR6VdtI2t0gIZtQGLu7T02+3FvVieBra9uOxK95mjX1nehboo+66vZYh5DXp+MczyJ8FtEcsVdHiPhXPpbAulWy+PWnmyNcbHXev+tNI0qo54ugMQjPVJcwPdvxbEhwuTWTYwuSVbjqRba4JarBjlkWUcA29iFMVaf6HesMpvu0JLuM+O6lEiDEYcqGr/741tnwXBWzSduOOud0fFC5rDEOTMv+WDB8+Z/1gkWZ9g49dSD9lfjmjHfjrCFvshmt+VKrMCfhFkkj/fR0kNBwN2LRwzgtWdxz5tK6YZFmkQkFWrLgyEYSOI7W+kfmomJ0EbA3A93ge7/qM+ufjsed9/0WMcQutOisA+hgWxyydAhJ9PAPTugjxTFIaXR3jw6zhFoBDhROfXB85YkKVZoKJ+IU3A7416l1ttGgC7GcplM84f1fb3SYy+VCWdmPwcd8SdDnh3s4ixTPJN2WKYuxY092cr+JzkBSjMadJQ3dNxIh9HRNXvM/70f/4Hk/PLXeuyxQ8nA35UeHh9RFI1hJK1qThXisZ/vo+xQw+QLT78IDWdy+Uu0jHuYOo9OoJo51IzRqU4bUOLtq950Vk3BbcCf5E7sd1bh68neTYBdHhO18mE3r+aVpPJXKXNMzAeOaE4bRIH9inYaSPmp0nnnY3PGvJIytUl3yZv2o5uu/V4YnQL07AhxNq X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: This is a note to let you know that I've just added the patch titled Revert "libfs: Add simple_offset_empty()" to the 6.6-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: revert-libfs-add-simple_offset_empty.patch and it can be found in the queue-6.6 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let know about it. >From stable+bounces-110408-greg=kroah.com@vger.kernel.org Fri Jan 24 20:21:08 2025 From: cel@kernel.org Date: Fri, 24 Jan 2025 14:19:43 -0500 Subject: Revert "libfs: Add simple_offset_empty()" To: Hugh Dickins , Andrew Morten , Christian Brauner , Al Viro , Greg Kroah-Hartman , Sasha Levin Cc: , , , yukuai3@huawei.com, yangerkun@huawei.com, Chuck Lever Message-ID: <20250124191946.22308-9-cel@kernel.org> From: Chuck Lever [ Upstream commit d7bde4f27ceef3dc6d72010a20d4da23db835a32 ] simple_empty() and simple_offset_empty() perform the same task. The latter's use as a canary to find bugs has not found any new issues. A subsequent patch will remove the use of the mtree for iterating directory contents, so revert back to using a similar mechanism for determining whether a directory is indeed empty. Only one such mechanism is ever needed. Signed-off-by: Chuck Lever Link: https://lore.kernel.org/r/20241228175522.1854234-3-cel@kernel.org Reviewed-by: Yang Erkun Signed-off-by: Christian Brauner [ cel: adjusted to apply to origin/linux-6.6.y ] Signed-off-by: Chuck Lever Signed-off-by: Greg Kroah-Hartman --- fs/libfs.c | 32 -------------------------------- include/linux/fs.h | 1 - mm/shmem.c | 4 ++-- 3 files changed, 2 insertions(+), 35 deletions(-) --- a/fs/libfs.c +++ b/fs/libfs.c @@ -325,38 +325,6 @@ void simple_offset_remove(struct offset_ } /** - * simple_offset_empty - Check if a dentry can be unlinked - * @dentry: dentry to be tested - * - * Returns 0 if @dentry is a non-empty directory; otherwise returns 1. - */ -int simple_offset_empty(struct dentry *dentry) -{ - struct inode *inode = d_inode(dentry); - struct offset_ctx *octx; - struct dentry *child; - unsigned long index; - int ret = 1; - - if (!inode || !S_ISDIR(inode->i_mode)) - return ret; - - index = DIR_OFFSET_MIN; - octx = inode->i_op->get_offset_ctx(inode); - xa_for_each(&octx->xa, index, child) { - spin_lock(&child->d_lock); - if (simple_positive(child)) { - spin_unlock(&child->d_lock); - ret = 0; - break; - } - spin_unlock(&child->d_lock); - } - - return ret; -} - -/** * simple_offset_rename - handle directory offsets for rename * @old_dir: parent directory of source entry * @old_dentry: dentry of source entry --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -3197,7 +3197,6 @@ struct offset_ctx { void simple_offset_init(struct offset_ctx *octx); int simple_offset_add(struct offset_ctx *octx, struct dentry *dentry); void simple_offset_remove(struct offset_ctx *octx, struct dentry *dentry); -int simple_offset_empty(struct dentry *dentry); int simple_offset_rename(struct inode *old_dir, struct dentry *old_dentry, struct inode *new_dir, struct dentry *new_dentry); int simple_offset_rename_exchange(struct inode *old_dir, --- a/mm/shmem.c +++ b/mm/shmem.c @@ -3368,7 +3368,7 @@ static int shmem_unlink(struct inode *di static int shmem_rmdir(struct inode *dir, struct dentry *dentry) { - if (!simple_offset_empty(dentry)) + if (!simple_empty(dentry)) return -ENOTEMPTY; drop_nlink(d_inode(dentry)); @@ -3425,7 +3425,7 @@ static int shmem_rename2(struct mnt_idma return simple_offset_rename_exchange(old_dir, old_dentry, new_dir, new_dentry); - if (!simple_offset_empty(new_dentry)) + if (!simple_empty(new_dentry)) return -ENOTEMPTY; if (flags & RENAME_WHITEOUT) { Patches currently in stable-queue which might be from cel@kernel.org are queue-6.6/libfs-replace-simple_offset-end-of-directory-detection.patch queue-6.6/libfs-re-arrange-locking-in-offset_iterate_dir.patch queue-6.6/libfs-add-simple_offset_empty.patch queue-6.6/shmem-fix-shmem_rename2.patch queue-6.6/revert-libfs-add-simple_offset_empty.patch queue-6.6/libfs-use-d_children-list-to-iterate-simple_offset-directories.patch queue-6.6/libfs-define-a-minimum-directory-offset.patch queue-6.6/libfs-return-enospc-when-the-directory-offset-range-is-exhausted.patch queue-6.6/libfs-fix-simple_offset_rename_exchange.patch queue-6.6/libfs-add-simple_offset_rename-api.patch