With introduction of packetized pipes, splice wasn't updated to respect this
new behaviour.
In terms of splice it means, that it never set PIPE_BUF_FLAG_PACKET on
created pipe buffer regarless pipe operating mode, thus breaking the whole
logic.
To fix this, new SPLICE_F_PACKET flag was introduced. It's supposed to be used
only in kernel and set, when write pipe is in packetized mode. In
splice_to_pipe() it's converted into created pipe buffer PIPE_BUF_FLAG_PACKET
flag.

The following series implements...

---

Stanislav Kinsburskiy (3):
      pipe: make is_packetized() non-static and declare in pipe_fs_i.h
      splice: new SPLICE_F_PACKET flag introduced
      splice: add support of splicing to packetized pipe


 fs/pipe.c                 |    2 +-
 fs/splice.c               |    8 ++++++++
 include/linux/pipe_fs_i.h |    2 ++
 include/linux/splice.h    |    5 +++++
 4 files changed, 16 insertions(+), 1 deletion(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to