On Mon, Nov 20, 2023 at 01:16:24PM +0100, Florian Weimer wrote: > Is the ID something specific to the VFS layer itself, or does it come > from file systems? It comes from the VFS. > POSIX has a seekdir/telldir interface like that, I don't think file > system authors like it. Some have added dedicated data structures for > it to implement somewhat predictable behavior in the face of concurrent > directory modification. Would this interface suffer from similar > issues? The same issue was solved for /proc/$$/mountinfo using cursors. This patchset removes the need for cursors, since the new unique mount ID can be used to locate the current position without having to worry about deleted and added mounts. OTOH I agree that seekdir/telldir are horrible and it's probably best to at least hide the seekability behind a stateful API: struct lm *lm = listmount_open(mnt_id, flags) do { num = listmount(lm, buf, bufsize); for (i = 0; i < num; i++) { /* process buf[i] */ } } while (num > 0); listmount_close(lm); Whether doing that in libc or in the kernel is debatable. I don't think the kernel API needs to be stateful, but it may allow more flexibility in the future. I don't know. Thanks, Miklos