[PATCH v2 0/4] pipe: Trivial cleanups

From: K Prateek Nayak
Date: Fri Mar 07 2025 - 00:29:54 EST


Hello folks,

Based on the suggestion on the RFC, the treewide conversion of
references to pipe->{head,tail} from unsigned int to pipe_index_t has
been dropped for now. The series contains trivial cleanup suggested to
limit the nr_slots in pipe_resize_ring() to be covered between
pipe_index_t limits of pipe->{head,tail} and using pipe_buf() to remove
the open-coded usage of masks to access pipe buffer building on Linus'
cleanup of fs/fuse/dev.c in commit ebb0f38bb47f ("fs/pipe: fix pipe
buffer index use in FUSE")

If folks are interested in converting a selective subset of references
to pipe->{head,tail} from unsigned int to pipe_index_t, please comment
on
https://lore.kernel.org/all/20250306113924.20004-4-kprateek.nayak@xxxxxxx/
and I can send out a patch or you can go ahead and send one out yourself
too :)

Changes are based on Linus' tree at commit 00a7d39898c8 ("fs/pipe: add
simpler helpers for common cases")

---
Changelog:

RFC v1..v2:

o Dropped the RFC tag.

o Use (piep_index_t)-1u as the upper limit for nr_slots replacing the
BITS_PER_TYPE() hackery to get the limits (Oleg; Patch 1)

o Patch 2 from the RFC v1 was dropped as it became redundand after the
introduction of pipe_is_full() helper.

o Patch 2-4 are additional cleanups introduced in this version to use
pipe_buf() replacing all the open-coded logic in various subsystems.
(Oleg; Patch 2-4)

RFC: https://lore.kernel.org/all/20250306113924.20004-1-kprateek.nayak@xxxxxxx/
---
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

fs/pipe.c | 13 +++++++------
fs/splice.c | 40 ++++++++++++++--------------------------
kernel/watch_queue.c | 7 +++----
3 files changed, 24 insertions(+), 36 deletions(-)


base-commit: 00a7d39898c8010bfd5ff62af31ca5db34421b38
--
2.43.0