On Tue, May 28, 2024 at 02:04:16PM +0200, Christian Brauner wrote: > Can you please explain how opening an fd based on a handle returned from > name_to_handle_at() and not using a mount file descriptor for > open_by_handle_at() would work? Same as NFS file handles: name_to_handle_at returns a handle that includes a file system identifier. open_by_handle_at looks up the superblock based on that identifier. For the identifier I could imagin three choices: 1) use the fsid as returned in statfs and returned by fsnotify. The downside is that it is "only" 64-bit. The upside is that we have a lot of plumbing for it 2) fixed 128-bit identifier to provide more entropy 3) a variable length identifier, which is more similar to NFS, but also a lot more complicated We'd need a global lookup structure to find the sb by id. The simplest one would be a simple linear loop over super_blocks which isn't terribly efficient, but probably better than whatever userspace is doing to find a mount fd right now. Let me cook up a simple prototype for 1) as it shouldn't be more than a few hundred lines of code.