This prepares for upcoming checks in page freeing path. Signed-off-by: Zi Yan Cc: Christian Brauner Cc: K Prateek Nayak Cc: Davidlohr Bueso Cc: Eric Sandeen --- kernel/watch_queue.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/watch_queue.c b/kernel/watch_queue.c index 52f89f1137da..8f887eafd438 100644 --- a/kernel/watch_queue.c +++ b/kernel/watch_queue.c @@ -301,8 +301,10 @@ long watch_queue_set_size(struct pipe_inode_info *pipe, unsigned int nr_notes) return 0; error_p: - while (--i >= 0) + while (--i >= 0) { + set_page_private(pages[i], 0); __free_page(pages[i]); + } kfree(pages); error: (void) account_pipe_buffers(pipe->user, nr_pages, pipe->nr_accounted); @@ -398,8 +400,10 @@ static void __put_watch_queue(struct kref *kref) struct watch_filter *wfilter; int i; - for (i = 0; i < wqueue->nr_pages; i++) + for (i = 0; i < wqueue->nr_pages; i++) { + set_page_private(wqueue->notes[i], 0); __free_page(wqueue->notes[i]); + } kfree(wqueue->notes); bitmap_free(wqueue->notes_bitmap); -- 2.51.0