On Fri, Jan 16, 2026 at 08:09:16AM +1100, Dave Chinner wrote: > > 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.
> 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. For other file systems like ext4 that have statically allocated inodes that is even more so the case. > 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. Agreed, although I bet that is what most folks think of for the inode - not a physical place on disk, but an object that gets invalidated on the last close after unlink. Either way, that rules do need to be written down clearly.
