Re: [PATCH v2 00/11] fhandle, pidfs: allow open_by_handle_at() purely based on file handle

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 24, 2025 at 10:29 AM Christian Brauner <brauner@xxxxxxxxxx> wrote:
>
> Various filesystems such as pidfs and drm support opening file handles
> without having to require a file descriptor to identify the filesystem.
> The filesystem are global single instances and can be trivially
> identified solely on the information encoded in the file handle.
>
> This makes it possible to not have to keep or acquire a sentinal file
> descriptor just to pass it to open_by_handle_at() to identify the
> filesystem. That's especially useful when such sentinel file descriptor
> cannot or should not be acquired.
>
> For pidfs this means a file handle can function as full replacement for
> storing a pid in a file. Instead a file handle can be stored and
> reopened purely based on the file handle.
>
> Such autonomous file handles can be opened with or without specifying a
> a file descriptor. If no proper file descriptor is used the FD_INVALID
> sentinel must be passed. This allows us to define further special
> negative fd sentinels in the future.
>
> Userspace can trivially test for support by trying to open the file
> handle with an invalid file descriptor.
>
> Signed-off-by: Christian Brauner <brauner@xxxxxxxxxx>
> ---
> Changes in v2:
> - Simplify the FILEID_PIDFS enum.
> - Introduce FD_INVALID.
> - Require FD_INVALID for autonomous file handles.
> - Link to v1: https://lore.kernel.org/20250623-work-pidfs-fhandle-v1-0-75899d67555f@xxxxxxxxxx
>

After fixing the minor nits, feel free to add for the series

Reviewed-by: Amir Goldstein <amir73il@xxxxxxxxx>

> ---
> Christian Brauner (11):
>       fhandle: raise FILEID_IS_DIR in handle_type
>       fhandle: hoist copy_from_user() above get_path_from_fd()
>       fhandle: rename to get_path_anchor()
>       pidfs: add pidfs_root_path() helper
>       fhandle: reflow get_path_anchor()
>       uapi/fcntl: mark range as reserved
>       uapi/fcntl: add FD_INVALID
>       exportfs: add FILEID_PIDFS
>       fhandle: add EXPORT_OP_AUTONOMOUS_HANDLES marker
>       fhandle, pidfs: support open_by_handle_at() purely based on file handle
>       selftests/pidfd: decode pidfd file handles withou having to specify an fd
>
>  fs/fhandle.c                                       | 82 ++++++++++++++--------
>  fs/internal.h                                      |  1 +
>  fs/pidfs.c                                         | 16 ++++-
>  include/linux/exportfs.h                           |  9 ++-
>  include/uapi/linux/fcntl.h                         | 17 +++++
>  include/uapi/linux/pidfd.h                         | 15 ----
>  tools/testing/selftests/pidfd/Makefile             |  2 +-
>  tools/testing/selftests/pidfd/pidfd.h              |  6 +-
>  .../selftests/pidfd/pidfd_file_handle_test.c       | 60 ++++++++++++++++
>  9 files changed, 158 insertions(+), 50 deletions(-)
> ---
> base-commit: 4e3d1e6e1b2d9df9650be14380c534b3c5081ddd
> change-id: 20250619-work-pidfs-fhandle-b63ff35c4924
>





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux