watch_queue: Fix to release page in ->release()
authorDavid Howells <dhowells@redhat.com>
Fri, 11 Mar 2022 13:23:46 +0000 (13:23 +0000)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 11 Mar 2022 18:17:12 +0000 (10:17 -0800)
commitc1853fbadcba1497f4907971e7107888e0714c81
tree5c264ab6f12882ea260bfe11bc87fc1c3e2ab8fe
parentdb8facfc9fafacefe8a835416a6b77c838088f8b
watch_queue: Fix to release page in ->release()

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: c73be61cede5 ("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>
kernel/watch_queue.c