summaryrefslogtreecommitdiff
path: root/include/uapi
diff options
context:
space:
mode:
authorJori Koolstra <jkoolstra@xs4all.nl>2026-04-24 14:46:02 +0300
committerChristian Brauner <brauner@kernel.org>2026-05-21 11:53:33 +0300
commit31cf44efa6df72a524b40adefb80539f3a4e13ba (patch)
tree7ff56857adc3f9756dce98b28a7179256aeac61d /include/uapi
parent3e0be8ccff090cde4e10410f8e6a3fefeeff4124 (diff)
downloadlinux-31cf44efa6df72a524b40adefb80539f3a4e13ba.tar.xz
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>
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/asm-generic/fcntl.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h
index 613475285643..bfc68156b45a 100644
--- a/include/uapi/asm-generic/fcntl.h
+++ b/include/uapi/asm-generic/fcntl.h
@@ -88,6 +88,10 @@
#define __O_TMPFILE 020000000
#endif
+#ifndef O_EMPTYPATH
+#define O_EMPTYPATH (1 << 26) /* allow empty path */
+#endif
+
/* a horrid kludge trying to make sure that this will fail on old kernels */
#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)