watch_queue: Fix to release page in ->release()
authorDavid Howells <dhowells@redhat.com>
Fri, 11 Mar 2022 13:23:46 +0000 (13:23 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 16 Mar 2022 13:23:44 +0000 (14:23 +0100)
commitccd03c30f1035e97c2b1d1bf5a0b80a34b4db840
tree8db5e41dd58ea4799152d720a9facf32c7d42eaa
parent8275b6699c6dda4d4cec748bc2e879cac532d193
watch_queue: Fix to release page in ->release()

commit c1853fbadcba1497f4907971e7107888e0714c81 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: 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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/watch_queue.c