From: David Laight <david.laight.linux@gmail.com>
To: "Chuck Lever" <cel@kernel.org>
Cc: "Dave Chinner" <david@fromorbit.com>,
"Amir Goldstein" <amir73il@gmail.com>,
"Jeff Layton" <jlayton@kernel.org>,
"Christian Brauner" <brauner@kernel.org>,
"Alexander Viro" <viro@zeniv.linux.org.uk>,
"Chuck Lever" <chuck.lever@oracle.com>,
NeilBrown <neil@brown.name>,
"Olga Kornievskaia" <okorniev@redhat.com>,
"Dai Ngo" <Dai.Ngo@oracle.com>, "Tom Talpey" <tom@talpey.com>,
"Hugh Dickins" <hughd@google.com>,
"Baolin Wang" <baolin.wang@linux.alibaba.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Theodore Tso" <tytso@mit.edu>,
"Andreas Dilger" <adilger.kernel@dilger.ca>,
"Jan Kara" <jack@suse.com>, "Gao Xiang" <xiang@kernel.org>,
"Chao Yu" <chao@kernel.org>, "Yue Hu" <zbestahu@gmail.com>,
"Jeffle Xu" <jefflexu@linux.alibaba.com>,
"Sandeep Dhavale" <dhavale@google.com>,
"Hongbo Li" <lihongbo22@huawei.com>,
"Chunhai Guo" <guochunhai@vivo.com>,
"Carlos Maiolino" <cem@kernel.org>,
"Ilya Dryomov" <idryomov@gmail.com>,
"Alex Markuze" <amarkuze@redhat.com>,
"Viacheslav Dubeyko" <slava@dubeyko.com>,
"Chris Mason" <clm@fb.com>, "David Sterba" <dsterba@suse.com>,
"Luis de Bethencourt" <luisbg@kernel.org>,
"Salah Triki" <salah.triki@gmail.com>,
"Phillip Lougher" <phillip@squashfs.org.uk>,
"Steve French" <sfrench@samba.org>,
"Paulo Alcantara" <pc@manguebit.org>,
"Ronnie Sahlberg" <ronniesahlberg@gmail.com>,
"Shyam Prasad N" <sprasad@microsoft.com>,
"Bharath SM" <bharathsm@microsoft.com>,
"Miklos Szeredi" <miklos@szeredi.hu>,
"Mike Marshall" <hubcap@omnibond.com>,
"Martin Brandenburg" <martin@omnibond.com>,
"Mark Fasheh" <mark@fasheh.com>,
"Joel Becker" <jlbec@evilplan.org>,
"Joseph Qi" <joseph.qi@linux.alibaba.com>,
"Konstantin Komarov" <almaz.alexandrovich@paragon-software.com>,
"Ryusuke Konishi" <konishi.ryusuke@gmail.com>,
"Trond Myklebust" <trondmy@kernel.org>,
"Anna Schumaker" <anna@kernel.org>,
"Dave Kleikamp" <shaggy@kernel.org>,
"David Woodhouse" <dwmw2@infradead.org>,
"Richard Weinberger" <richard@nod.at>, "Jan Kara" <jack@suse.cz>,
"Andreas Gruenbacher" <agruenba@redhat.com>,
"OGAWA Hirofumi" <hirofumi@mail.parknet.co.jp>,
"Jaegeuk Kim" <jaegeuk@kernel.org>,
"Christoph Hellwig" <hch@infradead.org>,
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org, linux-mm@kvack.org,
linux-ext4@vger.kernel.org, linux-erofs@lists.ozlabs.org,
linux-xfs@vger.kernel.org, ceph-devel@vger.kernel.org,
linux-btrfs@vger.kernel.org, linux-cifs@vger.kernel.org,
samba-technical@lists.samba.org, linux-unionfs@vger.kernel.org,
devel@lists.orangefs.org, ocfs2-devel@lists.linux.dev,
ntfs3@lists.linux.dev, linux-nilfs@vger.kernel.org,
jfs-discussion@lists.sourceforge.net,
linux-mtd@lists.infradead.org, gfs2@lists.linux.dev,
linux-f2fs-devel@lists.sourceforge.net
Subject: Re: [PATCH 00/29] fs: require filesystems to explicitly opt-in to nfsd export support
Date: Thu, 15 Jan 2026 22:40:18 +0000 [thread overview]
Message-ID: <20260115224018.2988ca25@pumpkin> (raw)
In-Reply-To: <06dcc4b6-7457-4094-a1c6-586ce518020f@app.fastmail.com>
On Thu, 15 Jan 2026 16:37:27 -0500
"Chuck Lever" <cel@kernel.org> wrote:
> On Thu, Jan 15, 2026, at 4:09 PM, Dave Chinner wrote:
> > On Thu, Jan 15, 2026 at 02:37:09PM -0500, Chuck Lever wrote:
> >> On 1/15/26 2:14 PM, Amir Goldstein wrote:
> >> > On Thu, Jan 15, 2026 at 7:32 PM Chuck Lever <cel@kernel.org> wrote:
> >> >>
> >> >>
> >> >>
> >> >> On Thu, Jan 15, 2026, at 1:17 PM, Amir Goldstein wrote:
> >> >>> On Thu, Jan 15, 2026 at 6:48 PM Jeff Layton <jlayton@kernel.org> wrote:
> >> >>>>
> >> >>>> In recent years, a number of filesystems that can't present stable
> >> >>>> filehandles have grown struct export_operations. They've mostly done
> >> >>>> this for local use-cases (enabling open_by_handle_at() and the like).
> >> >>>> Unfortunately, having export_operations is generally sufficient to make
> >> >>>> a filesystem be considered exportable via nfsd, but that requires that
> >> >>>> the server present stable filehandles.
> >> >>>
> >> >>> Where does the term "stable file handles" come from? and what does it mean?
> >> >>> Why not "persistent handles", which is described in NFS and SMB specs?
> >> >>>
> >> >>> Not to mention that EXPORT_OP_PERSISTENT_HANDLES was Acked
> >> >>> by both Christoph and Christian:
> >> >>>
> >> >>> https://lore.kernel.org/linux-fsdevel/20260115-rundgang-leihgabe-12018e93c00c@brauner/
> >> >>>
> >> >>> Am I missing anything?
> >> >>
> >> >> PERSISTENT generally implies that the file handle is saved on
> >> >> persistent storage. This is not true of tmpfs.
> >> >
> >> > That's one way of interpreting "persistent".
> >> > Another way is "continuing to exist or occur over a prolonged period."
> >> > which works well for tmpfs that is mounted for a long time.
> >>
> >> I think we can be a lot more precise about the guarantee: The file
> >> handle does not change for the life of the inode it represents. It
> >
> > <pedantic mode engaged>
> >
> > File handles most definitely change over the life of a /physical/
> > inode. Unlinking a file does not require ending the life of the
> > physical object that provides the persistent data store for the
> > file.
> >
> > e.g. XFS dynamically allocates physical inodes might in a life cycle
> > that looks somewhat life this:
> >
> > allocate physical inode
> > insert record into allocated inode index
> > mark inode as free
> >
> > while (don't need to free physical inode) {
> > ...
> > allocate inode for a new file
> > update persistent inode metadata to generate new filehandle
> > mark inode in use
> > ...
> > unlink file
> > mark inode free
> > }
> >
> > remove inode from allocated inode index
> > free physical inode
> >
> > i.e. a free inode is still an -allocated, indexed inode- in the
> > filesystem, and until we physically remove it from the filesystem
> > the inode life cycle has not ended.
> >
> > IOWs, the physical (persistent) inode lifetime can span the lifetime
> > of -many- files. However, the filesystem guarantees that the handle
> > generated for that inode is different for each file it represents
> > over the whole inode life time.
> >
> > Hence I think that file handle stability/persistence needs to be
> > defined in terms of -file lifetimes-, not the lifetimes of the
> > filesystem objects implement the file's persistent data store.
>
> Fair enough, "inode" is the wrong term to use here.
Usually there is 'generation number' changes when the inode is used for
a new file.
IIRC the original nfs file handle was the major/minor for the disk partition,
the index into the 'on-disk inode table' (the inode number) and the
'generation number' (but I'm sure the length was a power of 2...).
It's not surprising Unix uses inode number and file handles.
K&R would have used RSM-11/M where 'file directory lookup' was a userspace
operation and the kernel only supported 'open by file handle'.
Although that got lost between there and ntfs.
(Windows IO is definitely based on RSM-11/M though.)
David
WARNING: multiple messages have this Message-ID (diff)
From: David Laight <david.laight.linux@gmail.com>
To: "Chuck Lever" <cel@kernel.org>
Cc: Martin Brandenburg <martin@omnibond.com>,
jfs-discussion@lists.sourceforge.net, Jan Kara <jack@suse.cz>,
Paulo Alcantara <pc@manguebit.org>,
Alex Markuze <amarkuze@redhat.com>,
Sandeep Dhavale <dhavale@google.com>,
linux-btrfs@vger.kernel.org, Carlos Maiolino <cem@kernel.org>,
Amir Goldstein <amir73il@gmail.com>,
Dave Chinner <david@fromorbit.com>,
linux-unionfs@vger.kernel.org,
Konstantin Komarov <almaz.alexandrovich@paragon-software.com>,
Chris Mason <clm@fb.com>,
Andreas Dilger <adilger.kernel@dilger.ca>,
Chunhai Guo <guochunhai@vivo.com>,
Ronnie Sahlberg <ronniesahlberg@gmail.com>,
linux-mtd@lists.infradead.org,
Mike Marshall <hubcap@omnibond.com>,
linux-xfs@vger.kernel.org, linux-nilfs@vger.kernel.org,
Yue Hu <zbestahu@gmail.com>, Miklos Szeredi <miklos@szeredi.hu>,
samba-technical@lists.samba.org,
Richard Weinberger <richard@nod.at>,
Mark Fasheh <mark@fasheh.com>, Hugh Dickins <hughd@google.com>,
Dai Ngo <Dai.Ngo@oracle.com>,
Ryusuke Konishi <konishi.ryusuke@gmail.com>,
Christoph Hellwig <hch@infradead.org>,
Viacheslav Dubeyko <slava@dubeyko.com>,
NeilBrown <neil@brown.name>, Gao Xiang <xiang@kernel.org>,
linux-ext4@vger.kernel.org, Salah Triki <salah.triki@gmail.com>,
linux-mm@kvack.org, devel@lists.orangefs.org,
Shyam Prasad N <sprasad@microsoft.com>,
Olga Kornievskaia <okorniev@redhat.com>,
linux-cifs@vger.kernel.org, Dave Kleikamp <shaggy@kernel.org>,
linux-nfs@vger.kernel.org, Tom Talpey <tom@talpey.com>,
ocfs2-devel@lists.linux.dev, Bharath SM <bharathsm@microsoft.com>,
David Sterba <dsterba@suse.com>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Baolin Wang <baolin.wang@linux.alibaba.com>,
Jeffle Xu <jefflexu@linux.alibaba.com>,
Jaegeuk Kim <jaegeuk@kernel.org>,
ceph-devel@vger.kernel.org, Ilya Dryomov <idryomov@gmail.com>,
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>,
Andreas Gruenbacher <agruenba@redhat.com>,
gfs2@lists.linux.dev, Christian Brauner <brauner@kernel.org>,
Theodore Tso <tytso@mit.edu>,
Luis de Bethencourt <luisbg@kernel.org>,
Joseph Qi <joseph.qi@linux.alibaba.com>,
linux-erofs@lists.ozlabs.org, Jeff Layton <jlayton@kernel.org>,
linux-kernel@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net,
Steve French <sfrench@samba.org>,
Chuck Lever <chuck.lever@oracle.com>,
Hongbo Li <lihongbo22@huawei.com>,
Anna Schumaker <anna@kernel.org>, Jan Kara <jack@suse.com>,
linux-fsdevel@vger.kernel.org,
Phillip Lougher <phillip@squashfs.org.uk>,
Andrew Morton <akpm@linux-foundation.org>,
ntfs3@lists.linux.dev, David Woodhouse <dwmw2@infradead.org>,
Trond Myklebust <trondmy@kernel.org>,
Joel Becker <jlbec@evilplan.org>
Subject: Re: [f2fs-dev] [PATCH 00/29] fs: require filesystems to explicitly opt-in to nfsd export support
Date: Thu, 15 Jan 2026 22:40:18 +0000 [thread overview]
Message-ID: <20260115224018.2988ca25@pumpkin> (raw)
In-Reply-To: <06dcc4b6-7457-4094-a1c6-586ce518020f@app.fastmail.com>
On Thu, 15 Jan 2026 16:37:27 -0500
"Chuck Lever" <cel@kernel.org> wrote:
> On Thu, Jan 15, 2026, at 4:09 PM, Dave Chinner wrote:
> > On Thu, Jan 15, 2026 at 02:37:09PM -0500, Chuck Lever wrote:
> >> On 1/15/26 2:14 PM, Amir Goldstein wrote:
> >> > On Thu, Jan 15, 2026 at 7:32 PM Chuck Lever <cel@kernel.org> wrote:
> >> >>
> >> >>
> >> >>
> >> >> On Thu, Jan 15, 2026, at 1:17 PM, Amir Goldstein wrote:
> >> >>> On Thu, Jan 15, 2026 at 6:48 PM Jeff Layton <jlayton@kernel.org> wrote:
> >> >>>>
> >> >>>> In recent years, a number of filesystems that can't present stable
> >> >>>> filehandles have grown struct export_operations. They've mostly done
> >> >>>> this for local use-cases (enabling open_by_handle_at() and the like).
> >> >>>> Unfortunately, having export_operations is generally sufficient to make
> >> >>>> a filesystem be considered exportable via nfsd, but that requires that
> >> >>>> the server present stable filehandles.
> >> >>>
> >> >>> Where does the term "stable file handles" come from? and what does it mean?
> >> >>> Why not "persistent handles", which is described in NFS and SMB specs?
> >> >>>
> >> >>> Not to mention that EXPORT_OP_PERSISTENT_HANDLES was Acked
> >> >>> by both Christoph and Christian:
> >> >>>
> >> >>> https://lore.kernel.org/linux-fsdevel/20260115-rundgang-leihgabe-12018e93c00c@brauner/
> >> >>>
> >> >>> Am I missing anything?
> >> >>
> >> >> PERSISTENT generally implies that the file handle is saved on
> >> >> persistent storage. This is not true of tmpfs.
> >> >
> >> > That's one way of interpreting "persistent".
> >> > Another way is "continuing to exist or occur over a prolonged period."
> >> > which works well for tmpfs that is mounted for a long time.
> >>
> >> I think we can be a lot more precise about the guarantee: The file
> >> handle does not change for the life of the inode it represents. It
> >
> > <pedantic mode engaged>
> >
> > File handles most definitely change over the life of a /physical/
> > inode. Unlinking a file does not require ending the life of the
> > physical object that provides the persistent data store for the
> > file.
> >
> > e.g. XFS dynamically allocates physical inodes might in a life cycle
> > that looks somewhat life this:
> >
> > allocate physical inode
> > insert record into allocated inode index
> > mark inode as free
> >
> > while (don't need to free physical inode) {
> > ...
> > allocate inode for a new file
> > update persistent inode metadata to generate new filehandle
> > mark inode in use
> > ...
> > unlink file
> > mark inode free
> > }
> >
> > remove inode from allocated inode index
> > free physical inode
> >
> > i.e. a free inode is still an -allocated, indexed inode- in the
> > filesystem, and until we physically remove it from the filesystem
> > the inode life cycle has not ended.
> >
> > IOWs, the physical (persistent) inode lifetime can span the lifetime
> > of -many- files. However, the filesystem guarantees that the handle
> > generated for that inode is different for each file it represents
> > over the whole inode life time.
> >
> > Hence I think that file handle stability/persistence needs to be
> > defined in terms of -file lifetimes-, not the lifetimes of the
> > filesystem objects implement the file's persistent data store.
>
> Fair enough, "inode" is the wrong term to use here.
Usually there is 'generation number' changes when the inode is used for
a new file.
IIRC the original nfs file handle was the major/minor for the disk partition,
the index into the 'on-disk inode table' (the inode number) and the
'generation number' (but I'm sure the length was a power of 2...).
It's not surprising Unix uses inode number and file handles.
K&R would have used RSM-11/M where 'file directory lookup' was a userspace
operation and the kernel only supported 'open by file handle'.
Although that got lost between there and ntfs.
(Windows IO is definitely based on RSM-11/M though.)
David
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
WARNING: multiple messages have this Message-ID (diff)
From: David Laight <david.laight.linux@gmail.com>
To: "Chuck Lever" <cel@kernel.org>
Cc: "Dave Chinner" <david@fromorbit.com>,
"Amir Goldstein" <amir73il@gmail.com>,
"Jeff Layton" <jlayton@kernel.org>,
"Christian Brauner" <brauner@kernel.org>,
"Alexander Viro" <viro@zeniv.linux.org.uk>,
"Chuck Lever" <chuck.lever@oracle.com>,
NeilBrown <neil@brown.name>,
"Olga Kornievskaia" <okorniev@redhat.com>,
"Dai Ngo" <Dai.Ngo@oracle.com>, "Tom Talpey" <tom@talpey.com>,
"Hugh Dickins" <hughd@google.com>,
"Baolin Wang" <baolin.wang@linux.alibaba.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Theodore Tso" <tytso@mit.edu>,
"Andreas Dilger" <adilger.kernel@dilger.ca>,
"Jan Kara" <jack@suse.com>, "Gao Xiang" <xiang@kernel.org>,
"Chao Yu" <chao@kernel.org>, "Yue Hu" <zbestahu@gmail.com>,
"Jeffle Xu" <jefflexu@linux.alibaba.com>,
"Sandeep Dhavale" <dhavale@google.com>,
"Hongbo Li" <lihongbo22@huawei.com>,
"Chunhai Guo" <guochunhai@vivo.com>,
"Carlos Maiolino" <cem@kernel.org>,
"Ilya Dryomov" <idryomov@gmail.com>,
"Alex Markuze" <amarkuze@redhat.com>,
"Viacheslav Dubeyko" <slava@dubeyko.com>,
"Chris Mason" <clm@fb.com>, "David Sterba" <dsterba@suse.com>,
"Luis de Bethencourt" <luisbg@kernel.org>,
"Salah Triki" <salah.triki@gmail.com>,
"Phillip Lougher" <phillip@squashfs.org.uk>,
"Steve French" <sfrench@samba.org>,
"Paulo Alcantara" <pc@manguebit.org>,
"Ronnie Sahlberg" <ronniesahlberg@gmail.com>,
"Shyam Prasad N" <sprasad@microsoft.com>,
"Bharath SM" <bharathsm@microsoft.com>,
"Miklos Szeredi" <miklos@szeredi.hu>,
"Mike Marshall" <hubcap@omnibond.com>,
"Martin Brandenburg" <martin@omnibond.com>,
"Mark Fasheh" <mark@fasheh.com>,
"Joel Becker" <jlbec@evilplan.org>,
"Joseph Qi" <joseph.qi@linux.alibaba.com>,
"Konstantin Komarov" <almaz.alexandrovich@paragon-software.com>,
"Ryusuke Konishi" <konishi.ryusuke@gmail.com>,
"Trond Myklebust" <trondmy@kernel.org>,
"Anna Schumaker" <anna@kernel.org>,
"Dave Kleikamp" <shaggy@kernel.org>,
"David Woodhouse" <dwmw2@infradead.org>,
"Richard Weinberger" <richard@nod.at>, "Jan Kara" <jack@suse.cz>,
"Andreas Gruenbacher" <agruenba@redhat.com>,
"OGAWA Hirofumi" <hirofumi@mail.parknet.co.jp>,
"Jaegeuk Kim" <jaegeuk@kernel.org>,
"Christoph Hellwig" <hch@infradead.org>,
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org, linux-mm@kvack.org,
linux-ext4@vger.kernel.org, linux-erofs@lists.ozlabs.org,
linux-xfs@vger.kernel.org, ceph-devel@vger.kernel.org,
linux-btrfs@vger.kernel.org, linux-cifs@vger.kernel.org,
samba-technical@lists.samba.org, linux-unionfs@vger.kernel.org,
devel@lists.orangefs.org, ocfs2-devel@lists.linux.dev,
ntfs3@lists.linux.dev, linux-nilfs@vger.kernel.org,
jfs-discussion@lists.sourceforge.net,
linux-mtd@lists.infradead.org, gfs2@lists.linux.dev,
linux-f2fs-devel@lists.sourceforge.net
Subject: Re: [PATCH 00/29] fs: require filesystems to explicitly opt-in to nfsd export support
Date: Thu, 15 Jan 2026 22:40:18 +0000 [thread overview]
Message-ID: <20260115224018.2988ca25@pumpkin> (raw)
In-Reply-To: <06dcc4b6-7457-4094-a1c6-586ce518020f@app.fastmail.com>
On Thu, 15 Jan 2026 16:37:27 -0500
"Chuck Lever" <cel@kernel.org> wrote:
> On Thu, Jan 15, 2026, at 4:09 PM, Dave Chinner wrote:
> > On Thu, Jan 15, 2026 at 02:37:09PM -0500, Chuck Lever wrote:
> >> On 1/15/26 2:14 PM, Amir Goldstein wrote:
> >> > On Thu, Jan 15, 2026 at 7:32 PM Chuck Lever <cel@kernel.org> wrote:
> >> >>
> >> >>
> >> >>
> >> >> On Thu, Jan 15, 2026, at 1:17 PM, Amir Goldstein wrote:
> >> >>> On Thu, Jan 15, 2026 at 6:48 PM Jeff Layton <jlayton@kernel.org> wrote:
> >> >>>>
> >> >>>> In recent years, a number of filesystems that can't present stable
> >> >>>> filehandles have grown struct export_operations. They've mostly done
> >> >>>> this for local use-cases (enabling open_by_handle_at() and the like).
> >> >>>> Unfortunately, having export_operations is generally sufficient to make
> >> >>>> a filesystem be considered exportable via nfsd, but that requires that
> >> >>>> the server present stable filehandles.
> >> >>>
> >> >>> Where does the term "stable file handles" come from? and what does it mean?
> >> >>> Why not "persistent handles", which is described in NFS and SMB specs?
> >> >>>
> >> >>> Not to mention that EXPORT_OP_PERSISTENT_HANDLES was Acked
> >> >>> by both Christoph and Christian:
> >> >>>
> >> >>> https://lore.kernel.org/linux-fsdevel/20260115-rundgang-leihgabe-12018e93c00c@brauner/
> >> >>>
> >> >>> Am I missing anything?
> >> >>
> >> >> PERSISTENT generally implies that the file handle is saved on
> >> >> persistent storage. This is not true of tmpfs.
> >> >
> >> > That's one way of interpreting "persistent".
> >> > Another way is "continuing to exist or occur over a prolonged period."
> >> > which works well for tmpfs that is mounted for a long time.
> >>
> >> I think we can be a lot more precise about the guarantee: The file
> >> handle does not change for the life of the inode it represents. It
> >
> > <pedantic mode engaged>
> >
> > File handles most definitely change over the life of a /physical/
> > inode. Unlinking a file does not require ending the life of the
> > physical object that provides the persistent data store for the
> > file.
> >
> > e.g. XFS dynamically allocates physical inodes might in a life cycle
> > that looks somewhat life this:
> >
> > allocate physical inode
> > insert record into allocated inode index
> > mark inode as free
> >
> > while (don't need to free physical inode) {
> > ...
> > allocate inode for a new file
> > update persistent inode metadata to generate new filehandle
> > mark inode in use
> > ...
> > unlink file
> > mark inode free
> > }
> >
> > remove inode from allocated inode index
> > free physical inode
> >
> > i.e. a free inode is still an -allocated, indexed inode- in the
> > filesystem, and until we physically remove it from the filesystem
> > the inode life cycle has not ended.
> >
> > IOWs, the physical (persistent) inode lifetime can span the lifetime
> > of -many- files. However, the filesystem guarantees that the handle
> > generated for that inode is different for each file it represents
> > over the whole inode life time.
> >
> > Hence I think that file handle stability/persistence needs to be
> > defined in terms of -file lifetimes-, not the lifetimes of the
> > filesystem objects implement the file's persistent data store.
>
> Fair enough, "inode" is the wrong term to use here.
Usually there is 'generation number' changes when the inode is used for
a new file.
IIRC the original nfs file handle was the major/minor for the disk partition,
the index into the 'on-disk inode table' (the inode number) and the
'generation number' (but I'm sure the length was a power of 2...).
It's not surprising Unix uses inode number and file handles.
K&R would have used RSM-11/M where 'file directory lookup' was a userspace
operation and the kernel only supported 'open by file handle'.
Although that got lost between there and ntfs.
(Windows IO is definitely based on RSM-11/M though.)
David
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2026-01-16 0:13 UTC|newest]
Thread overview: 276+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-15 17:47 [PATCH 00/29] fs: require filesystems to explicitly opt-in to nfsd export support Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 01/29] exportfs: add new EXPORT_OP_STABLE_HANDLES flag Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-16 10:45 ` Jan Kara
2026-01-16 10:45 ` Jan Kara
2026-01-16 10:45 ` [f2fs-dev] " Jan Kara
2026-01-15 17:47 ` [PATCH 02/29] tmpfs: add EXPORT_OP_STABLE_HANDLES flag to export operations Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-16 10:47 ` Jan Kara
2026-01-16 10:47 ` Jan Kara
2026-01-16 10:47 ` [f2fs-dev] " Jan Kara
2026-01-15 17:47 ` [PATCH 03/29] ext4: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-16 2:22 ` Theodore Tso
2026-01-16 2:22 ` Theodore Tso
2026-01-16 2:22 ` [f2fs-dev] " Theodore Tso
2026-01-16 10:46 ` Jan Kara
2026-01-16 10:46 ` Jan Kara
2026-01-16 10:46 ` [f2fs-dev] " Jan Kara
2026-01-15 17:47 ` [PATCH 04/29] ext2: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-16 10:46 ` Jan Kara
2026-01-16 10:46 ` Jan Kara
2026-01-16 10:46 ` [f2fs-dev] " Jan Kara
2026-01-15 17:47 ` [PATCH 05/29] erofs: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 06/29] efs: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 07/29] xfs: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 08/29] ceph: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 19:16 ` Viacheslav Dubeyko
2026-01-15 19:16 ` Viacheslav Dubeyko
2026-01-15 19:16 ` [f2fs-dev] " Viacheslav Dubeyko via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 09/29] btrfs: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 10/29] befs: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 11/29] ufs: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 12/29] udf: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-16 10:47 ` Jan Kara
2026-01-16 10:47 ` Jan Kara
2026-01-16 10:47 ` [f2fs-dev] " Jan Kara
2026-01-15 17:47 ` [PATCH 13/29] affs: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 14/29] squashfs: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 15/29] smb/client: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 19:26 ` Amir Goldstein
2026-01-15 19:26 ` Amir Goldstein
2026-01-15 19:26 ` [f2fs-dev] " Amir Goldstein
2026-01-15 17:47 ` [PATCH 16/29] ovl: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 18:21 ` Amir Goldstein
2026-01-15 18:21 ` Amir Goldstein
2026-01-15 18:21 ` [f2fs-dev] " Amir Goldstein
2026-01-15 17:47 ` [PATCH 17/29] orangefs: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 18/29] ocfs2: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-16 10:47 ` Jan Kara
2026-01-16 10:47 ` Jan Kara
2026-01-16 10:47 ` [f2fs-dev] " Jan Kara
2026-01-15 17:47 ` [PATCH 19/29] ntfs3: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 20/29] nilfs2: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-19 8:39 ` Ryusuke Konishi
2026-01-19 8:39 ` Ryusuke Konishi
2026-01-19 8:39 ` [f2fs-dev] " Ryusuke Konishi
2026-01-15 17:47 ` [PATCH 21/29] nfs: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 22/29] jfs: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 22:09 ` Dave Kleikamp
2026-01-15 22:09 ` Dave Kleikamp
2026-01-15 22:09 ` [f2fs-dev] " Dave Kleikamp via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 23/29] jffs2: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-18 15:36 ` Richard Weinberger
2026-01-18 15:36 ` Richard Weinberger
2026-01-18 15:36 ` [f2fs-dev] " Richard Weinberger
2026-01-15 17:47 ` [PATCH 24/29] isofs: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-16 10:48 ` Jan Kara
2026-01-16 10:48 ` Jan Kara
2026-01-16 10:48 ` [f2fs-dev] " Jan Kara
2026-01-15 17:47 ` [PATCH 25/29] gfs2: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 26/29] fuse: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 18:54 ` Amir Goldstein
2026-01-15 18:54 ` Amir Goldstein
2026-01-15 18:54 ` [f2fs-dev] " Amir Goldstein
2026-01-15 19:46 ` Jeff Layton
2026-01-15 19:46 ` Jeff Layton
2026-01-15 19:46 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 27/29] fat: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:47 ` [PATCH 28/29] f2fs: " Jeff Layton
2026-01-15 17:47 ` Jeff Layton
2026-01-15 17:47 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 17:48 ` [PATCH 29/29] nfsd: only allow filesystems that set EXPORT_OP_STABLE_HANDLES Jeff Layton
2026-01-15 17:48 ` Jeff Layton
2026-01-15 17:48 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 19:23 ` Amir Goldstein
2026-01-15 19:23 ` Amir Goldstein
2026-01-15 19:23 ` [f2fs-dev] " Amir Goldstein
2026-01-16 12:36 ` Jeff Layton
2026-01-16 12:36 ` Jeff Layton
2026-01-16 12:36 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-16 14:46 ` Amir Goldstein
2026-01-16 14:46 ` Amir Goldstein
2026-01-16 14:46 ` [f2fs-dev] " Amir Goldstein
2026-01-16 15:13 ` Jeff Layton
2026-01-16 15:13 ` Jeff Layton
2026-01-16 15:13 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-15 18:17 ` [PATCH 00/29] fs: require filesystems to explicitly opt-in to nfsd export support Amir Goldstein
2026-01-15 18:17 ` Amir Goldstein
2026-01-15 18:17 ` [f2fs-dev] " Amir Goldstein
2026-01-15 18:29 ` Jeff Layton
2026-01-15 18:29 ` Jeff Layton
2026-01-15 18:29 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-18 23:23 ` NeilBrown
2026-01-18 23:23 ` NeilBrown
2026-01-18 23:23 ` [f2fs-dev] " NeilBrown
2026-01-19 6:41 ` Christoph Hellwig
2026-01-19 6:41 ` Christoph Hellwig
2026-01-19 6:41 ` [f2fs-dev] " Christoph Hellwig
2026-01-19 7:22 ` NeilBrown
2026-01-19 7:22 ` NeilBrown
2026-01-19 7:22 ` [f2fs-dev] " NeilBrown
2026-01-19 7:25 ` Christoph Hellwig
2026-01-19 7:25 ` Christoph Hellwig
2026-01-19 7:25 ` [f2fs-dev] " Christoph Hellwig
2026-01-19 9:27 ` Christian Brauner
2026-01-19 9:27 ` Christian Brauner
2026-01-19 9:27 ` [f2fs-dev] " Christian Brauner via Linux-f2fs-devel
2026-01-19 20:45 ` NeilBrown
2026-01-19 20:45 ` NeilBrown
2026-01-19 20:45 ` [f2fs-dev] " NeilBrown
2026-01-20 7:38 ` Christoph Hellwig
2026-01-20 7:38 ` Christoph Hellwig
2026-01-20 7:38 ` [f2fs-dev] " Christoph Hellwig
2026-01-20 9:27 ` NeilBrown
2026-01-20 9:27 ` NeilBrown
2026-01-20 9:27 ` [f2fs-dev] " NeilBrown
2026-01-20 10:34 ` Christian Brauner
2026-01-20 10:34 ` Christian Brauner
2026-01-20 10:34 ` [f2fs-dev] " Christian Brauner via Linux-f2fs-devel
2026-01-21 9:48 ` Christoph Hellwig
2026-01-21 9:48 ` Christoph Hellwig
2026-01-21 9:48 ` [f2fs-dev] " Christoph Hellwig
2026-01-21 10:34 ` NeilBrown
2026-01-21 10:34 ` NeilBrown
2026-01-21 10:34 ` [f2fs-dev] " NeilBrown
2026-01-21 14:27 ` Jeff Layton
2026-01-21 14:27 ` Jeff Layton
2026-01-21 14:27 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-21 14:47 ` Christoph Hellwig
2026-01-21 14:47 ` Christoph Hellwig
2026-01-21 14:47 ` [f2fs-dev] " Christoph Hellwig
2026-01-21 15:18 ` Jeff Layton
2026-01-21 15:18 ` Jeff Layton
2026-01-21 15:18 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-22 6:37 ` Christoph Hellwig
2026-01-22 6:37 ` Christoph Hellwig
2026-01-22 6:37 ` [f2fs-dev] " Christoph Hellwig
2026-01-22 12:12 ` Jeff Layton
2026-01-22 12:12 ` Jeff Layton
2026-01-22 12:12 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-22 17:04 ` Darrick J. Wong
2026-01-22 17:04 ` Darrick J. Wong
2026-01-22 17:04 ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-01-21 12:37 ` Jeff Layton
2026-01-21 12:37 ` Jeff Layton
2026-01-21 12:37 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-20 9:04 ` Christian Brauner
2026-01-20 9:04 ` Christian Brauner
2026-01-20 9:04 ` [f2fs-dev] " Christian Brauner via Linux-f2fs-devel
2026-01-20 9:41 ` NeilBrown
2026-01-20 9:41 ` NeilBrown
2026-01-20 9:41 ` [f2fs-dev] " NeilBrown
2026-01-20 10:31 ` Christian Brauner
2026-01-20 10:31 ` Christian Brauner
2026-01-20 10:31 ` [f2fs-dev] " Christian Brauner via Linux-f2fs-devel
2026-01-20 12:50 ` Jeff Layton
2026-01-20 12:50 ` Jeff Layton
2026-01-20 12:50 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-21 3:58 ` NeilBrown
2026-01-21 3:58 ` NeilBrown
2026-01-21 3:58 ` [f2fs-dev] " NeilBrown
2026-01-21 11:56 ` Jeff Layton
2026-01-21 11:56 ` Jeff Layton
2026-01-21 11:56 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-21 18:59 ` Amir Goldstein
2026-01-21 18:59 ` Amir Goldstein
2026-01-21 18:59 ` [f2fs-dev] " Amir Goldstein
2026-01-21 10:00 ` Christoph Hellwig
2026-01-21 10:00 ` Christoph Hellwig
2026-01-21 10:00 ` [f2fs-dev] " Christoph Hellwig
2026-01-21 10:01 ` Christoph Hellwig
2026-01-21 10:01 ` Christoph Hellwig
2026-01-21 10:01 ` [f2fs-dev] " Christoph Hellwig
2026-01-21 9:58 ` Christoph Hellwig
2026-01-21 9:58 ` Christoph Hellwig
2026-01-21 9:58 ` [f2fs-dev] " Christoph Hellwig
2026-01-21 9:52 ` Christoph Hellwig
2026-01-21 9:52 ` Christoph Hellwig
2026-01-21 9:52 ` [f2fs-dev] " Christoph Hellwig
2026-01-19 12:30 ` Jeff Layton
2026-01-19 12:30 ` Jeff Layton
2026-01-19 12:30 ` [f2fs-dev] " Jeff Layton via Linux-f2fs-devel
2026-01-21 4:10 ` NeilBrown
2026-01-21 4:10 ` NeilBrown
2026-01-21 4:10 ` [f2fs-dev] " NeilBrown
2026-01-15 18:31 ` Chuck Lever
2026-01-15 18:31 ` Chuck Lever
2026-01-15 18:31 ` [f2fs-dev] " Chuck Lever via Linux-f2fs-devel
2026-01-15 19:14 ` Amir Goldstein
2026-01-15 19:14 ` Amir Goldstein
2026-01-15 19:14 ` [f2fs-dev] " Amir Goldstein
2026-01-15 19:31 ` Amir Goldstein
2026-01-15 19:31 ` Amir Goldstein
2026-01-15 19:31 ` [f2fs-dev] " Amir Goldstein
2026-01-15 19:37 ` Chuck Lever
2026-01-15 19:37 ` Chuck Lever
2026-01-15 19:37 ` [f2fs-dev] " Chuck Lever via Linux-f2fs-devel
2026-01-15 19:47 ` Amir Goldstein
2026-01-15 19:47 ` Amir Goldstein
2026-01-15 19:47 ` [f2fs-dev] " Amir Goldstein
2026-01-15 21:09 ` Dave Chinner
2026-01-15 21:09 ` Dave Chinner
2026-01-15 21:09 ` [f2fs-dev] " Dave Chinner via Linux-f2fs-devel
2026-01-15 21:37 ` Chuck Lever
2026-01-15 21:37 ` Chuck Lever
2026-01-15 21:37 ` [f2fs-dev] " Chuck Lever via Linux-f2fs-devel
2026-01-15 22:40 ` David Laight [this message]
2026-01-15 22:40 ` David Laight
2026-01-15 22:40 ` [f2fs-dev] " David Laight
2026-01-19 7:56 ` Christoph Hellwig
2026-01-19 7:56 ` Christoph Hellwig
2026-01-19 7:56 ` [f2fs-dev] " Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260115224018.2988ca25@pumpkin \
--to=david.laight.linux@gmail.com \
--cc=Dai.Ngo@oracle.com \
--cc=adilger.kernel@dilger.ca \
--cc=agruenba@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=almaz.alexandrovich@paragon-software.com \
--cc=amarkuze@redhat.com \
--cc=amir73il@gmail.com \
--cc=anna@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=bharathsm@microsoft.com \
--cc=brauner@kernel.org \
--cc=cel@kernel.org \
--cc=cem@kernel.org \
--cc=ceph-devel@vger.kernel.org \
--cc=chao@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=clm@fb.com \
--cc=david@fromorbit.com \
--cc=devel@lists.orangefs.org \
--cc=dhavale@google.com \
--cc=dsterba@suse.com \
--cc=dwmw2@infradead.org \
--cc=gfs2@lists.linux.dev \
--cc=guochunhai@vivo.com \
--cc=hch@infradead.org \
--cc=hirofumi@mail.parknet.co.jp \
--cc=hubcap@omnibond.com \
--cc=hughd@google.com \
--cc=idryomov@gmail.com \
--cc=jack@suse.com \
--cc=jack@suse.cz \
--cc=jaegeuk@kernel.org \
--cc=jefflexu@linux.alibaba.com \
--cc=jfs-discussion@lists.sourceforge.net \
--cc=jlayton@kernel.org \
--cc=jlbec@evilplan.org \
--cc=joseph.qi@linux.alibaba.com \
--cc=konishi.ryusuke@gmail.com \
--cc=lihongbo22@huawei.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-erofs@lists.ozlabs.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-nilfs@vger.kernel.org \
--cc=linux-unionfs@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=luisbg@kernel.org \
--cc=mark@fasheh.com \
--cc=martin@omnibond.com \
--cc=miklos@szeredi.hu \
--cc=neil@brown.name \
--cc=ntfs3@lists.linux.dev \
--cc=ocfs2-devel@lists.linux.dev \
--cc=okorniev@redhat.com \
--cc=pc@manguebit.org \
--cc=phillip@squashfs.org.uk \
--cc=richard@nod.at \
--cc=ronniesahlberg@gmail.com \
--cc=salah.triki@gmail.com \
--cc=samba-technical@lists.samba.org \
--cc=sfrench@samba.org \
--cc=shaggy@kernel.org \
--cc=slava@dubeyko.com \
--cc=sprasad@microsoft.com \
--cc=tom@talpey.com \
--cc=trondmy@kernel.org \
--cc=tytso@mit.edu \
--cc=viro@zeniv.linux.org.uk \
--cc=xiang@kernel.org \
--cc=zbestahu@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.