]> git.baikalelectronics.ru Git - kernel.git/commit
pipe: Allow buffers to be marked read-whole-or-error for notifications
authorDavid Howells <dhowells@redhat.com>
Tue, 14 Jan 2020 17:07:11 +0000 (17:07 +0000)
committerDavid Howells <dhowells@redhat.com>
Tue, 19 May 2020 14:38:18 +0000 (15:38 +0100)
commitf56b06d52f50161f60bb060d9a0d3af119cb41e4
treef454a431df62749357767cf70feba3c2022b5cb0
parent0ddbd2498ef72552210f55dcd3e6b0f0a44d8b97
pipe: Allow buffers to be marked read-whole-or-error for notifications

Allow a buffer to be marked such that read() must return the entire buffer
in one go or return ENOBUFS.  Multiple buffers can be amalgamated into a
single read, but a short read will occur if the next "whole" buffer won't
fit.

This is useful for watch queue notifications to make sure we don't split a
notification across multiple reads, especially given that we need to
fabricate an overrun record under some circumstances - and that isn't in
the buffers.

Signed-off-by: David Howells <dhowells@redhat.com>
fs/pipe.c
include/linux/pipe_fs_i.h
kernel/watch_queue.c
samples/watch_queue/watch_test.c