aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2021-04-15 14:24:51 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2021-04-15 14:30:59 +0000
commit1663120ae452fe3783c74ce40522caf0e2327608 (patch)
treeaf48d6aee1a4a838943236cda40f9d66e5cf7a4e
parent788a171c77760c2847b6433c5a914a304d0aa184 (diff)
downloadsrc-1663120ae452fe3783c74ce40522caf0e2327608.tar.gz
src-1663120ae452fe3783c74ce40522caf0e2327608.zip
linux: implement O_PATH
Reviewed By: kib Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D29773
-rw-r--r--sys/compat/linux/linux_file.c2
-rw-r--r--sys/compat/linux/linux_file.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/sys/compat/linux/linux_file.c b/sys/compat/linux/linux_file.c
index 0c40a14d58f7..438b100d4e21 100644
--- a/sys/compat/linux/linux_file.c
+++ b/sys/compat/linux/linux_file.c
@@ -162,6 +162,8 @@ linux_common_openflags(int l_flags)
bsd_flags |= O_NOFOLLOW;
if (l_flags & LINUX_O_DIRECTORY)
bsd_flags |= O_DIRECTORY;
+ if (l_flags & LINUX_O_PATH)
+ bsd_flags |= O_PATH;
/* XXX LINUX_O_NOATIME: unable to be easily implemented. */
return (bsd_flags);
}
diff --git a/sys/compat/linux/linux_file.h b/sys/compat/linux/linux_file.h
index 03450b95f25c..ab137ba6b9c3 100644
--- a/sys/compat/linux/linux_file.h
+++ b/sys/compat/linux/linux_file.h
@@ -84,6 +84,7 @@
#define LINUX_O_NOFOLLOW 000400000 /* Do not follow links */
#define LINUX_O_NOATIME 001000000
#define LINUX_O_CLOEXEC 002000000
+#define LINUX_O_PATH 010000000
#define LINUX_F_DUPFD 0
#define LINUX_F_GETFD 1