On Wed, Feb 21, 2024 at 04:06:34PM +0100, Miklos Szeredi wrote: > On Wed, 21 Feb 2024 at 01:51, Kent Overstreet <kent.overstreet@xxxxxxxxx> 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. Even POSIX must bend when faced with reality. 64 bits is getting uncomfortably cramped already and with filesystems getting bigger it's going to break sooner or later. We don't want to be abusing st_dev, and snapshots and inode number sharding mean we're basically out of bits today. > doing (see documentation) is generally the right direction. It makes > various compromises but not to uniqueness, and we haven't had > complaints (fingers crossed). I haven't seen anything in overlayfs that looked like a real solution, just hacks that would break sooner or later if more filesystems are being stacked. > 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. If we define it, it has a perfectly well defined meaning. I wouldn't be against telling userspace to use file handles unconditionally; they should only need to query it for a file that has handlinks, anyways. But I think we _do_ need this bit, if nothing else, as exactly that nudge.