Skip to content

Commit

Permalink
watch_queue: Fix to release page in ->release()
Browse files Browse the repository at this point in the history
commit c1853fb upstream.

When a pipe ring descriptor points to a notification message, the
refcount on the backing page is incremented by the generic get function,
but the release function, which marks the bitmap, doesn't drop the page
ref.

Fix this by calling generic_pipe_buf_release() at the end of
watch_queue_pipe_buf_release().

Fixes: c73be61 ("pipe: Add general notification queue support")
Reported-by: Jann Horn <jannh@google.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
David Howells authored and Greg Kroah-Hartman committed Mar 16, 2022
1 parent d729d4e commit 2039900
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions kernel/watch_queue.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ static void watch_queue_pipe_buf_release(struct pipe_inode_info *pipe,
bit += page->index;

set_bit(bit, wqueue->notes_bitmap);
generic_pipe_buf_release(pipe, buf);
}

// No try_steal function => no stealing
Expand Down

0 comments on commit 2039900

Please sign in to comment.