]> git.ipfire.org Git - thirdparty/linux.git/commit
vfs: add O_EMPTYPATH to openat(2)/openat2(2)
authorJori Koolstra <jkoolstra@xs4all.nl>
Fri, 24 Apr 2026 11:46:02 +0000 (13:46 +0200)
committerChristian Brauner <brauner@kernel.org>
Thu, 21 May 2026 08:53:33 +0000 (10:53 +0200)
commit31cf44efa6df72a524b40adefb80539f3a4e13ba
tree7ff56857adc3f9756dce98b28a7179256aeac61d
parent3e0be8ccff090cde4e10410f8e6a3fefeeff4124
vfs: add O_EMPTYPATH to openat(2)/openat2(2)

To get an operable version of an O_PATH file descriptor, it is possible
to use openat(fd, ".", O_DIRECTORY) for directories, but other files
currently require going through open("/proc/<pid>/fd/<nr>"), which
depends on a functioning procfs.

This patch adds the O_EMPTYPATH flag to openat(2)/openat2(2). If passed,
LOOKUP_EMPTY is set at path resolution time.

Note: This implies that you cannot rely anymore on disabling procfs from
being mounted (e.g. inside a container without procfs mounted and with
CAP_SYS_ADMIN dropped) to prevent O_PATH fds from being re-opened
read-write.

Signed-off-by: Jori Koolstra <jkoolstra@xs4all.nl>
Link: https://patch.msgid.link/20260424114611.1678641-2-jkoolstra@xs4all.nl
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
fs/fcntl.c
fs/open.c
include/linux/fcntl.h
include/uapi/asm-generic/fcntl.h