diff options
author | K Prateek Nayak <kprateek.nayak@amd.com> | 2025-03-07 05:29:17 +0000 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2025-03-10 08:55:05 +0100 |
commit | 547476063e123e73fc3aea8432104ab092ffea84 (patch) | |
tree | dbcc7a64e6988a3e8865e4dc3743073a05eb6640 /kernel/watch_queue.c | |
parent | cf3d0c54b21c4a351d4f94cf188e9715dbd1ef5b (diff) |
kernel/watch_queue: Use pipe_buf() to retrieve the pipe buffer
Use pipe_buf() helper to retrieve the pipe buffer in
post_one_notification() replacing the open-coded the logic.
Suggested-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
Link: https://lore.kernel.org/r/20250307052919.34542-3-kprateek.nayak@amd.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'kernel/watch_queue.c')
-rw-r--r-- | kernel/watch_queue.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/kernel/watch_queue.c b/kernel/watch_queue.c index 5267adeaa403..605129eb61a1 100644 --- a/kernel/watch_queue.c +++ b/kernel/watch_queue.c @@ -101,12 +101,11 @@ static bool post_one_notification(struct watch_queue *wqueue, struct pipe_inode_info *pipe = wqueue->pipe; struct pipe_buffer *buf; struct page *page; - unsigned int head, tail, mask, note, offset, len; + unsigned int head, tail, note, offset, len; bool done = false; spin_lock_irq(&pipe->rd_wait.lock); - mask = pipe->ring_size - 1; head = pipe->head; tail = pipe->tail; if (pipe_full(head, tail, pipe->ring_size)) @@ -124,7 +123,7 @@ static bool post_one_notification(struct watch_queue *wqueue, memcpy(p + offset, n, len); kunmap_atomic(p); - buf = &pipe->bufs[head & mask]; + buf = pipe_buf(pipe, head); buf->page = page; buf->private = (unsigned long)wqueue; buf->ops = &watch_queue_pipe_buf_ops; @@ -147,7 +146,7 @@ out: return done; lost: - buf = &pipe->bufs[(head - 1) & mask]; + buf = pipe_buf(pipe, head - 1); buf->flags |= PIPE_BUF_FLAG_LOSS; goto out; } |