Unverified Commit 54747606 authored by K Prateek Nayak's avatar K Prateek Nayak Committed by Christian Brauner
Browse files

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: default avatarOleg Nesterov <oleg@redhat.com>
Signed-off-by: default avatarK Prateek Nayak <kprateek.nayak@amd.com>
Link: https://lore.kernel.org/r/20250307052919.34542-3-kprateek.nayak@amd.com


Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent cf3d0c54
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -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 @@ static bool post_one_notification(struct watch_queue *wqueue,
	return done;

lost:
	buf = &pipe->bufs[(head - 1) & mask];
	buf = pipe_buf(pipe, head - 1);
	buf->flags |= PIPE_BUF_FLAG_LOSS;
	goto out;
}