pipe: Add O_NOTIFICATION_PIPE
authorDavid Howells <dhowells@redhat.com>
Wed, 12 Feb 2020 13:58:35 +0000 (13:58 +0000)
committerDavid Howells <dhowells@redhat.com>
Tue, 19 May 2020 14:08:23 +0000 (15:08 +0100)
commitb580b93664f91db8cb503429030df0f1c1e53528
treeba0e6a80817521b6cf15e3d789aa6aa7d674da6c
parent344fa64ef8f6740e99b32ab788b6e3742d7284b3
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>
include/uapi/linux/watch_queue.h