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 3AB18EB64D9 for ; Tue, 27 Jun 2023 06:44:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 922C08D0002; Tue, 27 Jun 2023 02:44:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8D2FE8D0001; Tue, 27 Jun 2023 02:44:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7C24B8D0002; Tue, 27 Jun 2023 02:44:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 6D6FD8D0001 for ; Tue, 27 Jun 2023 02:44:27 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 3018C1A086B for ; Tue, 27 Jun 2023 06:44:27 +0000 (UTC) X-FDA: 80947588974.08.2B9FCC6 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf19.hostedemail.com (Postfix) with ESMTP id F2E621A000A for ; Tue, 27 Jun 2023 06:44:22 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=rD3YCF2Z; dmarc=none; spf=none (imf19.hostedemail.com: domain of BATV+9ff1e1c791a3eaa24235+7247+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+9ff1e1c791a3eaa24235+7247+infradead.org+hch@bombadil.srs.infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687848263; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=N1oSFwqUhmYz4eDcfKGE70CUsyp7TGBHK7B6scG3Ul0=; b=Pqr3XodMIy+4dgWw+3KPiN8wTG+CMngaWoQSziuU8Gm1T9nJ8d1YSZb4xvupAS2CJ9uADA dsVGF7Wheu3YJUl2LBhmDy3tJh2mrXUFMyipsClEY4+AV9TE6uVz2Kmx7Dh7pUXZgqbv2r hd0N5UpNXWUMfSAXWUs3QX2o2FOfsUw= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=rD3YCF2Z; dmarc=none; spf=none (imf19.hostedemail.com: domain of BATV+9ff1e1c791a3eaa24235+7247+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+9ff1e1c791a3eaa24235+7247+infradead.org+hch@bombadil.srs.infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687848263; a=rsa-sha256; cv=none; b=dr73QEj6L9FrQPSn/swHv3wxNJz2K+JyGSkLouDbsCyGkj82pFPjSjuBcoVDZbH3k2X43+ OUa+Djo4OzwDwNXeaEqdfpFawk+hadOEGz/H1SlesBZCIRiOk41GVyaP39rW1jqgHTfMkC el50Pxtb0H+4mX4tiO6n1d+6xa/QyZU= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=N1oSFwqUhmYz4eDcfKGE70CUsyp7TGBHK7B6scG3Ul0=; b=rD3YCF2ZdNWpubRMsYNDKg+P6L OMZOrsYVi5Nw4Y+Lfnn5tEHZCQ5T1Ww2YxvAEyNrMyLnrBUz0jTwFf1WEfZQDScUHq8nM9xHLT0F1 QJ5M7f/C5LsEok6aTyiEzc6kVMLRCyI6mldg0uH8S6PFC2rv+GOdOG0Fun4rwH2HtqatJ+9wTAlhT AQ7VRIGFIeJTBCuF/IR+1zpkrh4yfc3xgcQ0BjjEvwoFPGOLe9uuoEBKtkXnLSeJGjCnlrl0oJhum 6izhdVQ/gRyl3VYOh9ZdtijoSeYJ7rH6jFMg++NRCLtnBtOOHG6v6JYpDaxlcca+zFnAONOP2kYks U/hGXD0g==; Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat Linux)) id 1qE2Qx-00CCoi-1f; Tue, 27 Jun 2023 06:44:15 +0000 Date: Mon, 26 Jun 2023 23:44:15 -0700 From: Christoph Hellwig To: Chuck Lever Cc: viro@zeniv.linux.org.uk, brauner@kernel.org, hughd@google.com, akpm@linux-foundation.org, Chuck Lever , jlayton@redhat.com, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org Subject: Re: [PATCH v4 1/3] libfs: Add directory operations for stable offsets Message-ID: References: <168780354647.2142.537463116658872680.stgit@manet.1015granger.net> <168780368739.2142.1909222585425739373.stgit@manet.1015granger.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <168780368739.2142.1909222585425739373.stgit@manet.1015granger.net> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: F2E621A000A X-Stat-Signature: dyi4cdx19upij699wi43ezyrpoabh8b6 X-HE-Tag: 1687848262-313338 X-HE-Meta: U2FsdGVkX19ibJevDFXfQV6OUcBo8q0+Ns7fNlCpMoAWswx5QMdQ+KzY3/q8cnEom9qr+BK+5Pw9J786nzIPxIysFCavyDAJV0Rnbqdujm4u8128g7NQrwF/ZuwmlQv6kHBVyN2+38dGjmzgn8eYf5eBk+YV7u9Evlik546JIV8ANlsXU4Q/R80NEJf34d3RrydmANrSAfJmfwXWkRVdi9p8zKeCHALY+uE2CjSk6BVEYVXBVOTqEkISg4TxTCRfxOZ2tlkyRO9MsT2XNBVB7DotENEVStuV8lZsdNmPLtROh+1iCC4jRmv/pLC19s7Ivn0kGu3rjZ32bjK5n77kyzpA9ByDvhr2glhKF14rd8D1aFqM69FtuKQ++8XFgl3daB6/Q2YKXKKAGa7HqUkBgwn6frny60YoaPYp/pBg2+qIkEpEBVgQK6manNLuDB7/K1m8KaEYetW9+uqhc3wMRR/2e39H9wsCk15Mm7HdLWHZoKdriZNZYkvb5HivKZOKZuRWL/GCfhWo8u0rPs8RLeU3s9fObFd7JhE0X3Vmppqac6gGq02lAfvlbOFQnwLnh26LyQVysKwAVV+gb2CL55p3JNKRJNctHWIlq8QW2bPAD7fmaIDqCEYnDYk/jygLHRvcpAOg5tGFBiff8sUNLt2EbBYRW5Mb9tenFDJfHM1mmArsLua9bATl4HOrQGEJKzeTXPf9sNJWN5aLnI1xz8rcT8GmlbhdUiasA6blzm06wU79837mIYTYO3yBqkcYEC63Ju9ylmdU6z7Mn+hchAIM2Qcw4IgELVaF20XdzTELnYG/Zex48KF4t0zI2E1lABFPe+06eKrTDtw+h8XwLRU/F48bK9fl9rGV5KJw0yiJTVPD13nLUTFIQ3skED3LrgUAX5xYH+oTh0g5yQ3RRbcdRe88t9oTsiOghCwCle+Ebh2jgHIGQEmkGtK2TROFAwIo+BwbWvVxw/u7cij Q45/qME/ hYp3RNVUpHlBXRE22ekTtWneX6Iufss9uVDe5Lk8Lwby0uCdiDIRad+pg/ciFswJgdt5PAF+vyz4w1F/9XGvMAvxg0b5HBsI6ODphZ3xmK24Zn/EDcA6fNyd61Iii/DL5WXM5p6Ba7AbOK9WB+rUBitj2QLrXN4qX3Xe1gR9Z3EUsz02uxx+mLzcjW/UgEBAXn36EFQosnFMMIAjUvOvTxBLL0vMDgoBJ9VewXNJVMl2KoY06Z09FjJ/jbIGuzVdaL1eW1oPtflR1zWE/dbjYVGx76+YFoGBZEdGmiqjcRezqtAMhNcygmZqpvijEVaC2Fv/Q8pv37n72KKVZ+NubOQLoqhRGXTdAnqm1a6XNQiyql1a4aDLhTSFfVaRP4dYx++hotQj555OLrXA= 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: > + * @dir: parent directory to be initialized > + * > + */ > +void stable_offset_init(struct inode *dir) > +{ > + xa_init_flags(&dir->i_doff_map, XA_FLAGS_ALLOC1); > + dir->i_next_offset = 0; > +} > +EXPORT_SYMBOL(stable_offset_init); If this is exported I'd much prefer a EXPORT_SYMBOL_GPL. But the only user so far is shmfs, which can't be modular anyway, so I think we can drop the exports. > --- a/include/linux/dcache.h > +++ b/include/linux/dcache.h > @@ -96,6 +96,7 @@ struct dentry { > struct super_block *d_sb; /* The root of the dentry tree */ > unsigned long d_time; /* used by d_revalidate */ > void *d_fsdata; /* fs-specific data */ > + u32 d_offset; /* directory offset in parent */ > > union { > struct list_head d_lru; /* LRU list */ > diff --git a/include/linux/fs.h b/include/linux/fs.h > index 133f0640fb24..3fc2c04ed8ff 100644 > --- a/include/linux/fs.h > +++ b/include/linux/fs.h > @@ -719,6 +719,10 @@ struct inode { > #endif > > void *i_private; /* fs or device private pointer */ > + > + /* simplefs stable directory offset tracking */ > + struct xarray i_doff_map; > + u32 i_next_offset; We can't just increase the size of the dentry and inode for everyone for something that doesn't make any sense for normal file systems. This needs to move out into structures allocated by the file system and embedded into or used as the private dentry/inode data. > +extern void stable_offset_init(struct inode *dir); > +extern int stable_offset_add(struct inode *dir, struct dentry *dentry); > +extern void stable_offset_remove(struct inode *dir, struct dentry *dentry); > +extern void stable_offset_destroy(struct inode *dir); Please drop all the pointless externs for function prototypes.