git: da51ef550cf5 - stable/13 - linux: implement O_PATH

From: Edward Tomasz Napierala <trasz_at_FreeBSD.org>
Date: Thu, 17 Feb 2022 10:55:26 UTC
The branch stable/13 has been updated by trasz:

URL: https://cgit.FreeBSD.org/src/commit/?id=da51ef550cf54750fd4c962d52b84d33601e6e7e

commit da51ef550cf54750fd4c962d52b84d33601e6e7e
Author:     Edward Tomasz Napierala <trasz@FreeBSD.org>
AuthorDate: 2021-04-15 14:24:51 +0000
Commit:     Edward Tomasz Napierala <trasz@FreeBSD.org>
CommitDate: 2022-02-13 21:06:37 +0000

    linux: implement O_PATH
    
    Reviewed By:    kib
    Sponsored By:   EPSRC
    Differential Revision:  https://reviews.freebsd.org/D29773
    
    (cherry picked from commit 1663120ae452fe3783c74ce40522caf0e2327608)
---
 sys/compat/linux/linux_file.c | 2 ++
 sys/compat/linux/linux_file.h | 1 +
 2 files changed, 3 insertions(+)

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