Merge tag 'vfs-6.13.exportfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
Pull vfs exportfs updates from Christian Brauner: "This contains work to bring NFS connectable file handles to userspace servers. The name_to_handle_at() system call is extended to encode connectable file handles. Such file handles can be resolved to an open file with a connected path. So far userspace NFS servers couldn't make use of this functionality even though the kernel does already support it. This is achieved by introducing a new flag for name_to_handle_at(). Similarly, the open_by_handle_at() system call is tought to understand connectable file handles explicitly created via name_to_handle_at()" * tag 'vfs-6.13.exportfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: fs: open_by_handle_at() support for decoding "explicit connectable" file handles fs: name_to_handle_at() support for "explicit connectable" file handles fs: prepare for "explicit connectable" file handles
This commit is contained in:
@@ -160,6 +160,19 @@ struct fid {
|
||||
#define EXPORT_FH_FID 0x2 /* File handle may be non-decodeable */
|
||||
#define EXPORT_FH_DIR_ONLY 0x4 /* Only decode file handle for a directory */
|
||||
|
||||
/*
|
||||
* Filesystems use only lower 8 bits of file_handle type for fid_type.
|
||||
* name_to_handle_at() uses upper 16 bits of type as user flags to be
|
||||
* interpreted by open_by_handle_at().
|
||||
*/
|
||||
#define FILEID_USER_FLAGS_MASK 0xffff0000
|
||||
#define FILEID_USER_FLAGS(type) ((type) & FILEID_USER_FLAGS_MASK)
|
||||
|
||||
/* Flags supported in encoded handle_type that is exported to user */
|
||||
#define FILEID_IS_CONNECTABLE 0x10000
|
||||
#define FILEID_IS_DIR 0x20000
|
||||
#define FILEID_VALID_USER_FLAGS (FILEID_IS_CONNECTABLE | FILEID_IS_DIR)
|
||||
|
||||
/**
|
||||
* struct export_operations - for nfsd to communicate with file systems
|
||||
* @encode_fh: encode a file handle fragment from a dentry
|
||||
|
||||
Reference in New Issue
Block a user