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 3E190C0218A for ; Thu, 30 Jan 2025 08:59:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AFBE92800D2; Thu, 30 Jan 2025 03:59:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AAB7E2800D0; Thu, 30 Jan 2025 03:59:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 999B42800D2; Thu, 30 Jan 2025 03:59:37 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 7BA702800D0 for ; Thu, 30 Jan 2025 03:59:37 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 0238E453A9 for ; Thu, 30 Jan 2025 08:59:36 +0000 (UTC) X-FDA: 83063519994.16.E5CBAC9 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf30.hostedemail.com (Postfix) with ESMTP id 49FCD80008 for ; Thu, 30 Jan 2025 08:59:35 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=linuxfoundation.org header.s=korg header.b=LIaqGnl8; spf=pass (imf30.hostedemail.com: domain of gregkh@linuxfoundation.org designates 147.75.193.91 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=1738227575; 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=aDxLZ3A2YtiGetk5LrVwNWbBcbpC8D4mgKqWksPgYDM=; b=v5K/l5yLdsnqLv60Tj91sPkf+fZVWU1F+zzekjKHiQdgmIkYwCYvwPfxm5zP8sasIzRNb7 1LrV/s95m6RobHZ/a2DXN2glaCbkm+zICJsKNeWUcTkORnvvW6EDzz2CEKKOo1jQA6t+Lb Rqfw2qgLxBz21IhUzLRZCo4Banz1wQg= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=linuxfoundation.org header.s=korg header.b=LIaqGnl8; spf=pass (imf30.hostedemail.com: domain of gregkh@linuxfoundation.org designates 147.75.193.91 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=1738227575; a=rsa-sha256; cv=none; b=vCKLWEaLy2xisLlPO6EEGFRHmYLMrB0Ybm4rb/uuG3cBgkFIfIxrtVfzw2Xu/R4EurxXYK u2c6RSdtWgD+Au0CT3v6eJL38848tXLjj0tmKm1Nkm8X+4H1U4nYCAciiJ3bOkMCIdK01z SeQkauqA+Ge3yu+QT9z1fkEg6yFj6sc= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id DD8C3A40252; Thu, 30 Jan 2025 08:57:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DFAADC4CED3; Thu, 30 Jan 2025 08:59:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1738227574; bh=MP/+WGB1BeItRIMNN6H/RjT5UiZLyELSJu2DmNb7SAs=; h=Subject:To:Cc:From:Date:In-Reply-To:From; b=LIaqGnl8baTaZnKr649HQvX19+++iwKeLkhpydbCgDrC91e3mQfVRWoAP2HJGwS1K CloqSoNeOS2EGlfxwUPO9YQSsaeNSjA6RdBglvA1tKnndH0fC49oKanGBrV256fv0B 0wa30vu/dU9SCKEaTZE171S4MHk7nICztqdlLCJE= Subject: Patch "libfs: Add simple_offset_rename() API" 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:29 +0100 In-Reply-To: <20250124191946.22308-6-cel@kernel.org> Message-ID: <2025013029-pyromania-shut-9b29@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-Queue-Id: 49FCD80008 X-Stat-Signature: q67n7ppk4zahaghtutzeaczhaj9jqoga X-Rspamd-Server: rspam08 X-Rspam-User: X-HE-Tag: 1738227575-195302 X-HE-Meta: U2FsdGVkX18yn78xVAW9V5aSrqhAyVZ7rgFksTq7GTqtWoSwOBCOzMiqW6ill+ykYQHZ10MpmrtMEPpATG/K4+4P+5+2ebdybrhqBHqsVCjHApCHvnSJ1kuWvIqE1zw3ob/yVod/9HN0UD/pd4ofXEtHMOUC2lCgwYtpCnSQmsQhY8TcClIkNkPGYRAyvy1/MdZJ03DkTz1kMrl6gEqOLINsPY4fLzEBKmvzV5EgFFvE8SFeLu/a+pkNMabWuhJakISExSW5J34WG+60Vtvg/J5HQiZtrGvhSkPTHC38CnFpvHPfjQj7RJ/05WpAAT70Z2lyurGU+F1URLO5EI8tQay1IRSBwpGfLpk/DXEDhVmMjdk7g3SusqZUwjuJzMVRYFM66BXyhDbESSps7HGCyl9XhJ94Pe+OVEjG2+jN3LA93O66DZ3CAmJHQRaMXCgY+Oc7INfg0iTofJzolNHmkWKxQzEXIhu01rZrMQZQEqlXEHpJihx90oBYMlnDK2dmskHyXrmSLD8u3hQkwPH8fbAavyPfVN8P/Qb4SdUl1Gt35+1FLvI7uzIW/jfmsUIlATBBhYJazoCifszXfPN1IGmTsaWpvNKCNko2kdpQpAtjTO19ceiRe8dmWzv7o4Ig6kSRS3kdSze3MddVa45UGiO0xyM4XHaDYz+5puXNCvtyeFFmIzeQVKmnRf4fuEJT5XGlW7PFKk8p2v5AgW3s+yy0ksZkIhNriVVS58ho7Hqg7LQRLl4sATigxNtng/tgL5YOf4sseQhnUl1iT0osndM568cvoGuue8tnhXC8c2BNaNvXaCOhvczBcY/vu7vWu9CciUQyyzekRrwAgtprgUnkeo1I+y7m7mDf82eSfTbMhVEDPZY0JK4BL5SRmrUbV9PQFvUh5e5EIV2YpLeSpDrB33iIw59nn2FIi24OVIxgmT2oRCX/OBm7l9u3jde3yt7wZ55RaBPdJ8y46d5 PWsU2PQP k9CVbkPXQrZfRs5zW6CqNlmD6IDuHBkpgmTSXRa7C3gOmiqvW2SwDnzkquSUQuxsQ3L2kFrH9MvXp4vfTY1csBVoPK/W79GbA6g2/KZW3z5Bd8va0TA+ybhCRVHnhmETwu+epMxh3zYV1Vajib6ZItTpmIFk3Jkz81zm6w+Or3AO9wXcqlrJnq+Axo1XnU476IUzf6uz5P+/X0e6SCuJ3rUONL/kaab3b6KYPNUPafKAqwsiEIX3CpgaZrYwu5akl7cVYmleZmIzH9OF6LkJDRxrcBzAejNpT0dvyXwLZKM0feAiUgiWmomxXJ7LS2HGUZM8X4dTNWA8nHwuuoFh8pbi6s8zQbxd7NC3gIXlukJvjZ7YOaOcYL9kbpAXPR84mkk8p7ESxQLDPaMT/ko6JUpMOFuPda9I4nDdouBKAW6CQ09B7Trvn24ilyX40LhXXW/JCgEjYhGwkMuGCwrtplczqFQL69KLfFT4I+4AmC0crJ6K6wrzOWZtj247b+VXvNLlBA3mwsSdZvsj0oyOZHyFCEAw1yMm/1IC8PxZnc8Tx/lgBD0iB9auPTKOQ24M6+G236DUsezniT2MS1ANvOXbPV4+ROiQ1yY7SCCuvEWbUJxxly9Zt8yCvPv9RJ4AkHegfODRPhEoUucrmuUEdez9w0VtgQI7YC83AgI0R+yy1RXvtNgPMTiSQ0Acs97bUNH1F 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 libfs: Add simple_offset_rename() API 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: libfs-add-simple_offset_rename-api.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-110405-greg=kroah.com@vger.kernel.org Fri Jan 24 20:21:49 2025 From: cel@kernel.org Date: Fri, 24 Jan 2025 14:19:40 -0500 Subject: libfs: Add simple_offset_rename() API 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-6-cel@kernel.org> From: Chuck Lever [ Upstream commit 5a1a25be995e1014abd01600479915683e356f5c ] I'm about to fix a tmpfs rename bug that requires the use of internal simple_offset helpers that are not available in mm/shmem.c Signed-off-by: Chuck Lever Link: https://lore.kernel.org/r/20240415152057.4605-3-cel@kernel.org Signed-off-by: Christian Brauner Signed-off-by: Chuck Lever Signed-off-by: Greg Kroah-Hartman --- fs/libfs.c | 21 +++++++++++++++++++++ include/linux/fs.h | 2 ++ mm/shmem.c | 3 +-- 3 files changed, 24 insertions(+), 2 deletions(-) --- a/fs/libfs.c +++ b/fs/libfs.c @@ -357,6 +357,27 @@ int simple_offset_empty(struct dentry *d } /** + * simple_offset_rename - handle directory offsets for rename + * @old_dir: parent directory of source entry + * @old_dentry: dentry of source entry + * @new_dir: parent_directory of destination entry + * @new_dentry: dentry of destination + * + * Caller provides appropriate serialization. + * + * Returns zero on success, a negative errno value on failure. + */ +int simple_offset_rename(struct inode *old_dir, struct dentry *old_dentry, + struct inode *new_dir, struct dentry *new_dentry) +{ + struct offset_ctx *old_ctx = old_dir->i_op->get_offset_ctx(old_dir); + struct offset_ctx *new_ctx = new_dir->i_op->get_offset_ctx(new_dir); + + simple_offset_remove(old_ctx, old_dentry); + return simple_offset_add(new_ctx, old_dentry); +} + +/** * simple_offset_rename_exchange - exchange rename with directory offsets * @old_dir: parent of dentry being moved * @old_dentry: dentry being moved --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -3198,6 +3198,8 @@ void simple_offset_init(struct offset_ct 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, struct dentry *old_dentry, struct inode *new_dir, --- a/mm/shmem.c +++ b/mm/shmem.c @@ -3434,8 +3434,7 @@ static int shmem_rename2(struct mnt_idma return error; } - simple_offset_remove(shmem_get_offset_ctx(old_dir), old_dentry); - error = simple_offset_add(shmem_get_offset_ctx(new_dir), old_dentry); + error = simple_offset_rename(old_dir, old_dentry, new_dir, new_dentry); if (error) return error; 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