From patchwork Wed Jun 28 15:25:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever X-Patchwork-Id: 13295920 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 52432EB64D7 for ; Wed, 28 Jun 2023 15:25:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 88DAB8D0002; Wed, 28 Jun 2023 11:25:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 83D8D8D0001; Wed, 28 Jun 2023 11:25:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 72BF78D0002; Wed, 28 Jun 2023 11:25:08 -0400 (EDT) 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 64BBE8D0001 for ; Wed, 28 Jun 2023 11:25:08 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2565240ABB for ; Wed, 28 Jun 2023 15:25:08 +0000 (UTC) X-FDA: 80952529896.19.5714FA3 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf21.hostedemail.com (Postfix) with ESMTP id 5A5C41C0024 for ; Wed, 28 Jun 2023 15:25:05 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=uOXfycZp; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf21.hostedemail.com: domain of cel@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cel@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687965905; 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: references:dkim-signature; bh=MPfo+SAPQ1c5Uqudpix/vbBvcTsKz8IL0fo1pDD8nHs=; b=sPLTBRWt91dS3LDBkgUJMcJtuQyVLMWTae5imYWy5fUC3hVR1d9Ufe2ikUhLePNEx9qml8 PPuuNhE9ognSW4Y/HLPhWDk2+hgiRrXScQ1rYZ/8K/BITnT7UrfsBbJYg4ApDS76a4NF+F rn5lohbGOeJZmVbb0oU5fEjqqTzVxGg= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=uOXfycZp; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf21.hostedemail.com: domain of cel@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cel@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687965905; a=rsa-sha256; cv=none; b=7eSiq1YVDJkB0h5VFJ38OjN+FA/9qiFc+kQBHFScN3S1gKNhAHN9UAXzDw4T4gDPKBjVBX NkdDRE1e1fDorlkVExeotEv7QmUbBT3OyqdOvLaVAjXErkk8Nh2pQEfiUBXikBlFq7rWF0 29phovx8KGhZrZq3cpKD5BH1GxNZLrA= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 67CE161361; Wed, 28 Jun 2023 15:25:04 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 25710C433C0; Wed, 28 Jun 2023 15:25:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1687965903; bh=0tXZEXiIJLpeFxOnH6daR96H3UImBjpwNLzvCQrwB/M=; h=Subject:From:To:Cc:Date:From; b=uOXfycZpI1aJ6uAwlRrj8OC8eeY6advuefRJChv0KJVUrx4mEaJkR8EE5mxHB4CBj YV7Gr2CZqUrytmo162g42IR7mEv7muLnlh1m5Xrn3oOvYPDvhdqeqthATIeUa+6mEp SIWsgdwdFviiqK0FcU2Ff1h4cxogYirODde+0hzl7Sz5KOJ5MiOT5Pc2Br+HRiS9Td maHtuQqYiNCZipZfXFYjmD0UOWqmzGY0mvnXAe86tXKb/XpehDqcbLL3py2BY5I6iw X5zouzzbdD2KkiVFsrJVsxvEjgnJTCK0oRYb0IgRIioAdnGvkDSiaEmp1KpQzi1QuD cRHbnPVJDKW3w== Subject: [PATCH v6 0/3] shmemfs stable directory offsets From: Chuck Lever To: viro@zeniv.linux.org.uk, brauner@kernel.org, hughd@google.com, akpm@linux-foundation.org Cc: Chuck Lever , Jeff Layton , Christoph Hellwig , jlayton@redhat.com, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org Date: Wed, 28 Jun 2023 11:25:02 -0400 Message-ID: <168796579723.157221.1988816921257656153.stgit@manet.1015granger.net> User-Agent: StGit/1.5 MIME-Version: 1.0 X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 5A5C41C0024 X-Stat-Signature: fptote7mnxgk3z6xs6bhrrqgz6iok57g X-Rspam-User: X-HE-Tag: 1687965905-49926 X-HE-Meta: U2FsdGVkX18y3HDaq5Q2Zkq0YUqTtmUFCAKb8fGEHUMGbSqBAxP9P3FNqL84HHQ/7L7W+yMYCWBp3Iao/EhTCNOVbYqfgX7V6T3LbNSiKe8G8HPrlj7qJWhE0wZ1iglJefLJns4wND8h0VpQnswOsnoLUElzub9DCWOpqvhpPxyx0mitKelUmAFIh8xr7TT9uj+T7Rtof7F9zVhN9BMT3PBeJU4D3hopnWD3F9zlU0gwVYNkdLdKDFRnq5sryHnxrnQ3fGCuGursLzgWWQlZjjhB+vQngJrXuFqPv2EJq8TRC2zAv+rmXLqGM2f4nPbNTbgoRKz4nlfaSzZSeMKdmc7w8l6FcfG9DZ4WsE4C/rp+RjuhA46CMRE5vPJQsjxaEbU1DxlWjlDroOiAtuMZl482VXlMwnEokcEAVohIVsNqyQXSVCzGK9jWRkGW+LlmD4UgJW168Y1LEZlJxKiQfjqq6+z3CLHx11QVk2VIEWMBRlCBfIvG173QywOn/cAyi9GCCB8xgXdRcRFqVPYKRmPGtCZ0iqy7vG3yk7k2kYaSPiDjmV/nhO6M05YxoXuuiDSdcznIlqxhvkbYcXL5V2SBmwZJwphevvgRdNGUH6i+0LlwXaJIdeoZYQtt778TZzjR0iL2OdcdAiJBUsOur62OVfYQTXIbm5od7KuACms7wpsxNl527wMA6RH3mRGwJ3MAXZKiW68S5MtiZfPSgjR68gH5/gYH/KNWKEfGn5pcLSwIAWb5b1DwGhzCW3+DTeFO3IdviT7senhSUxEhMM0C/28XoHRB7nB+h8JVjqXrCKbwzKpqYP3mM1buMehvSghVAo3jnsDj7MuasGw5rCiryrFU7auRDJJ8UkJT5+vwvyHncdxtaF78RsrsmBPJA0b7mQDvCupZwm7y2P8+wUzXk2dgtP/3kaoUGCDUtPlx3F4cb+n+SzwqysM43ptVqwnOXen351G/U46IfjM 5LxzHk8e qoH0GI4zpu5z/r7ghsJ02yOIlrAy3Hh/Gy2tV1Zshk8PseCXQRnQOA+jtmno0nWUQ5/Jo8KOOz12Lj0UrCbkYhKV0htCF2wVfyW79V3h1Iv9TTPhCA2Qf8XiS668psHZTtBpg/tfPS8UJPqr6Qn1HjMSuLpeBBWeIHhCeTZsbrxyqVW5mi+EbvOJkuoo8xn9wl1ez1MlEiTS5MZRdy4ghOMpgueieJZ7qM+mPsjM5ncizy9ptCtX4XJ/U2g== 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: The following series implements stable directory offsets for shmemfs/tmpfs and provides infrastructure for use by other file systems that are based on simplefs. Changes since v5: - Rename functions and structures Changes since v4: - Remove new fields from struct inode/dentry - Remove EXPORT_SYMBOL and extern for new functions - Try again to fix error handling for rename_exchange Changes since v3: - Rebased on v6.4 - Fixed error handling bugs Changes since v2: - Move bulk of stable offset support into fs/libfs.c - Replace xa_find_after with xas_find_next for efficiency Changes since v1: - Break the single patch up into a series Changes since RFC: - Destroy xarray in shmem_destroy_inode() instead of free_in_core_inode() - A few cosmetic updates --- Chuck Lever (3): libfs: Add directory operations for stable offsets shmem: Refactor shmem_symlink() shmem: stable directory offsets fs/libfs.c | 247 +++++++++++++++++++++++++++++++++++++++ include/linux/fs.h | 18 +++ include/linux/shmem_fs.h | 1 + mm/shmem.c | 62 +++++++--- 4 files changed, 313 insertions(+), 15 deletions(-) -- Chuck Lever