Skip to content

Commit b580b93

Browse files
committed
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 <[email protected]>
1 parent 344fa64 commit b580b93

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

include/uapi/linux/watch_queue.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
#define _UAPI_LINUX_WATCH_QUEUE_H
44

55
#include <linux/types.h>
6+
#include <linux/fcntl.h>
7+
8+
#define O_NOTIFICATION_PIPE O_EXCL /* Parameter to pipe2() selecting notification pipe */
69

710
enum watch_notification_type {
811
WATCH_TYPE_META = 0, /* Special record */

0 commit comments

Comments
 (0)