OK, here is v2 with changes as recommended by Christoph Hellwig and Matthew Wilcox (thanks!): * Changed refs to @refs, and added some more documentation as well. * Completely removed try_get_page(). (I'm adding more people and lists to Cc, because of those call site changes.) * Reversed the logic in try_grab_page() to make it a touch more readable. Also, this has been rebased to today's linux-next (next-20210810), and re-tested on that. Here is the v1 cover letter, edited slightly to keep up with the latest story. While reviewing some of the other things going on around gup.c, I noticed that the documentation was wrong for a few of the routines that I wrote. And then I noticed that there was some significant code duplication too. So this fixes those issues. This is not entirely risk-free, but after looking closely at this, I think it's actually a useful improvement, getting rid of the code duplication here. However, it is possible I've overlooked something. I did some local LTP and other testing on an x86 test machine but failed to find any problems yet. And the original v1 is here: https://lore.kernel.org/r/20210808235018.1924918-1-jhubbard@xxxxxxxxxx John Hubbard (3): mm/gup: documentation corrections for gup/pup mm/gup: small refactoring: simplify try_grab_page() mm/gup: Remove try_get_page(), call try_get_compound_head() directly arch/s390/mm/fault.c | 2 +- fs/pipe.c | 2 +- include/linux/mm.h | 10 +----- mm/gup.c | 79 ++++++++++++++++++++++---------------------- 4 files changed, 43 insertions(+), 50 deletions(-) -- 2.32.0