[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJfpeguBzbhdcknLG4CjFr12_PdGo460FSRONzsYBKmT9uaSMA@mail.gmail.com>
Date: Wed, 21 Feb 2024 16:06:34 +0100
From: Miklos Szeredi <miklos@...redi.hu>
To: Kent Overstreet <kent.overstreet@...ux.dev>
Cc: linux-bcachefs@...r.kernel.org, linux-btrfs@...r.kernel.org,
linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org,
lsf-pc@...ts.linux-foundation.org
Subject: Re: [LSF TOPIC] statx extensions for subvol/snapshot filesystems & more
On Wed, 21 Feb 2024 at 01:51, Kent Overstreet <kent.overstreet@...ux.dev> wrote:
>
> Recently we had a pretty long discussion on statx extensions, which
> eventually got a bit offtopic but nevertheless hashed out all the major
> issues.
>
> To summarize:
> - guaranteeing inode number uniqueness is becoming increasingly
> infeasible, we need a bit to tell userspace "inode number is not
> unique, use filehandle instead"
This is a tough one. POSIX says "The st_ino and st_dev fields taken
together uniquely identify the file within the system."
Adding a bit that says "from now the above POSIX rule is invalid"
doesn't instantly fix all the existing applications that rely on it.
Linux did manage to extend st_ino from 32 to 64 bits, but even in that
case it's not clear how many instances of
stat(path1, &st);
unsigned int ino = st.st_ino;
stat(path2, &st);
if (ino == st.st_ino)
...
are waiting to blow up one fine day. Of course the code should have
used ino_t, but I think this pattern is not that uncommon.
All in all, I don't think adding a flag to statx is the right answer.
It entitles filesystem developers to be sloppy about st_ino
uniqueness, which is not a good idea. I think what overlayfs is
doing (see documentation) is generally the right direction. It makes
various compromises but not to uniqueness, and we haven't had
complaints (fingers crossed).
Nudging userspace developers to use file handles would also be good,
but they should do so unconditionally, not based on a flag that has no
well defined meaning.
Thanks,
Miklos
Powered by blists - more mailing lists