Jeff, These patches bring the NFS connectable file handles feature to userspace servers. They rely on Christian's and Aleksa's changes recently merged to v6.12. The API I chose for encoding conenctable file handles is pretty conventional (AT_HANDLE_CONNECTABLE). open_by_handle_at(2) does not have AT_ flags argument, but also, I find it more useful API that encoding a connectable file handle can mandate the resolving of a connected fd, without having to opt-in for a connected fd independently. I chose to implemnent this by using upper bits in the handle type field It may be valid (?) for filesystems to return a handle type with upper bits set, but AFAIK, no in-tree filesystem does that. I added some assertions just in case. Thanks, Amir. Changes since v2 [2]: - Use bit arithmetics instead of bitfileds (Jeff) - Add assertions about use of high type bits Changes since v1 [1]: - Assert on encode for disconnected path (Jeff) - Don't allow AT_HANDLE_CONNECTABLE with AT_EMPTY_PATH - Drop the O_PATH mount_fd API hack (Jeff) - Encode an explicit "connectable" flag in handle type [1] https://lore.kernel.org/linux-fsdevel/20240919140611.1771651-1-amir73il@xxxxxxxxx/ [2] https://lore.kernel.org/linux-fsdevel/20240923082829.1910210-1-amir73il@xxxxxxxxx/ Amir Goldstein (3): fs: prepare for "explicit connectable" file handles fs: name_to_handle_at() support for "explicit connectable" file handles fs: open_by_handle_at() support for decoding "explicit connectable" file handles fs/exportfs/expfs.c | 14 ++++++-- fs/fhandle.c | 74 ++++++++++++++++++++++++++++++++++---- include/linux/exportfs.h | 16 +++++++++ include/uapi/linux/fcntl.h | 1 + 4 files changed, 97 insertions(+), 8 deletions(-) -- 2.34.1