On Thu, 28 Mar 2019 15:37:49 +0000
Slavomir Kaslev <kaslevs@xxxxxxxxxx> wrote:
On Wed, 2019-03-27 at 14:19 -0400, Sasha Levin wrote:
> From: Slavomir Kaslev <kaslevs@xxxxxxxxxx>
>
> [ Upstream commit ee5e001196d1345b8fee25925ff5f1d67936081e ]
>
> The current implementation of splice() and tee() ignores O_NONBLOCK
> set
> on pipe file descriptors and checks only the SPLICE_F_NONBLOCK flag
> for
> blocking on pipe arguments. This is inconsistent since splice()-ing
> from/to non-pipe file descriptors does take O_NONBLOCK into
> consideration.
>
> Fix this by promoting O_NONBLOCK, when set on a pipe, to
> SPLICE_F_NONBLOCK.
Hey Sasha,
I don't think that this patch should be merged to stable kernels. It's
more of a feature rather than a bug/regression fix and it changes how
splice() has been working from day one.
Can you please drop it from the stable queues?
On the other hand, it keeps stable more in sync with what mainline has.
If someone writes new code against a stable release, and depends on
this behavior, it's less likely to break when they run it on a newer
kernel. Which means its less likely that Linus will revert your
change ;-)