[GIT PULL] vfs pipe

From: Christian Brauner
Date: Sat Mar 22 2025 - 06:14:11 EST


Hey Linus,

/* Summary */

This contains updates for pipes:

- Introduce struct file_operations pipeanon_fops.

- Don't update {a,c,m}time for anonymous pipes to avoid the performance costs
associated with it.

- Change pipe_write() to never add a zero-sized buffer.

- Limit the slots in pipe_resize_ring().

- Use pipe_buf() to retrieve the pipe buffer everywhere.

- Drop an always true check in anon_pipe_write().

- Aache 2 pages instead of 1.

- Avoid spurious calls to prepare_to_wait_event() in ___wait_event().

/* Testing */

gcc version 14.2.0 (Debian 14.2.0-6)
Debian clang version 16.0.6 (27+b1)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline
=============================

No known conflicts.

Merge conflicts with other trees
================================

No known conflicts.

The following changes since commit 00a7d39898c8010bfd5ff62af31ca5db34421b38:

fs/pipe: add simpler helpers for common cases (2025-03-06 18:25:35 -1000)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.15-rc1.pipe

for you to fetch changes up to 3732d8f16531ddc591622bc64ce4d4c160c34bb4:

Merge patch series "pipe: Trivial cleanups" (2025-03-10 08:55:13 +0100)

Please consider pulling these changes from the signed vfs-6.15-rc1.pipe tag.

Thanks!
Christian

----------------------------------------------------------------
vfs-6.15-rc1.pipe

----------------------------------------------------------------
Christian Brauner (4):
Merge patch series "pipe: don't update {a,c,m}time for anonymous pipes"
Merge patch series "some pipe + wait stuff"
Merge mainline pipe changes
Merge patch series "pipe: Trivial cleanups"

K Prateek Nayak (4):
fs/pipe: Limit the slots in pipe_resize_ring()
kernel/watch_queue: Use pipe_buf() to retrieve the pipe buffer
fs/pipe: Use pipe_buf() helper to retrieve pipe buffer
fs/splice: Use pipe_buf() helper to retrieve pipe buffer

Mateusz Guzik (3):
pipe: drop an always true check in anon_pipe_write()
pipe: cache 2 pages instead of 1
wait: avoid spurious calls to prepare_to_wait_event() in ___wait_event()

Oleg Nesterov (3):
pipe: introduce struct file_operations pipeanon_fops
pipe: don't update {a,c,m}time for anonymous pipes
pipe: change pipe_write() to never add a zero-sized buffer

fs/pipe.c | 181 ++++++++++++++++++++++++++--------------------
fs/splice.c | 40 ++++------
include/linux/pipe_fs_i.h | 2 +-
include/linux/wait.h | 3 +
kernel/watch_queue.c | 7 +-
5 files changed, 124 insertions(+), 109 deletions(-)