Unverified Commit 0ff053b9 authored by Christian Brauner's avatar Christian Brauner
Browse files

fs: support O_PATH fds with FSCONFIG_SET_FD

Let FSCONFIG_SET_FD handle O_PATH file descriptors. This is particularly
useful in the context of overlayfs where layers can be specified via
file descriptors instead of paths. But userspace must currently use
non-O_PATH file desriptors which is often pointless especially if
the file descriptors have been created via open_tree(OPEN_TREE_CLONE).

Link: https://lore.kernel.org/r/20250210-work-overlayfs-v2-1-ed2a949b674b@kernel.org


Fixes: a08557d1 ("ovl: specify layers via file descriptors")
Reviewed-by: default avatarAmir Goldstein <amir73il@gmail.com>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent 2cc0b7fd
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -218,6 +218,8 @@ void autofs_clean_ino(struct autofs_info *);

static inline int autofs_check_pipe(struct file *pipe)
{
	if (pipe->f_mode & FMODE_PATH)
		return -EINVAL;
	if (!(pipe->f_mode & FMODE_CAN_WRITE))
		return -EINVAL;
	if (!S_ISFIFO(file_inode(pipe)->i_mode))
+1 −1
Original line number Diff line number Diff line
@@ -453,7 +453,7 @@ SYSCALL_DEFINE5(fsconfig,
	case FSCONFIG_SET_FD:
		param.type = fs_value_is_file;
		ret = -EBADF;
		param.file = fget(aux);
		param.file = fget_raw(aux);
		if (!param.file)
			goto out_key;
		param.dirfd = aux;