summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2020-02-12 16:58:35 +0300
committerDavid Howells <dhowells@redhat.com>2020-05-19 17:08:23 +0300
commitb580b93664f91db8cb503429030df0f1c1e53528 (patch)
treeba0e6a80817521b6cf15e3d789aa6aa7d674da6c
parent344fa64ef8f6740e99b32ab788b6e3742d7284b3 (diff)
downloadlinux-b580b93664f91db8cb503429030df0f1c1e53528.tar.xz
pipe: Add O_NOTIFICATION_PIPE
Add an O_NOTIFICATION_PIPE flag that can be passed to pipe2() to indicate that the pipe being created is going to be used for notifications. This suppresses the use of splice(), vmsplice(), tee() and sendfile() on the pipe as calling iov_iter_revert() on a pipe when a kernel notification message has been inserted into the middle of a multi-buffer splice will be messy. The flag is given the same value as O_EXCL as it seems unlikely that this flag will ever be applicable to pipes and I don't want to use up another O_* bit unnecessarily. An alternative could be to add a pipe3() system call. Signed-off-by: David Howells <dhowells@redhat.com>
-rw-r--r--include/uapi/linux/watch_queue.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/uapi/linux/watch_queue.h b/include/uapi/linux/watch_queue.h
index 5f3d21e8a34b..9df72227f515 100644
--- a/include/uapi/linux/watch_queue.h
+++ b/include/uapi/linux/watch_queue.h
@@ -3,6 +3,9 @@
#define _UAPI_LINUX_WATCH_QUEUE_H
#include <linux/types.h>
+#include <linux/fcntl.h>
+
+#define O_NOTIFICATION_PIPE O_EXCL /* Parameter to pipe2() selecting notification pipe */
enum watch_notification_type {
WATCH_TYPE_META = 0, /* Special record */