Re: [PATCH 2/3] mm/gup: small refactoring: simplify try_grab_page()
From: Christoph Hellwig <hch@infradead.org>
Date: 2021-08-09 06:40:33
Also in:
lkml
From: Christoph Hellwig <hch@infradead.org>
Date: 2021-08-09 06:40:33
Also in:
lkml
On Sun, Aug 08, 2021 at 04:50:17PM -0700, John Hubbard wrote:
try_grab_page() does the same thing as try_grab_compound_head(..., refs=1, ...), just with a different API. So there is a lot of code duplication there. Change try_grab_page() to call try_grab_compound_head(), while keeping the API contract identical for callers. Signed-off-by: John Hubbard <jhubbard@nvidia.com> --- mm/gup.c | 29 ++--------------------------- 1 file changed, 2 insertions(+), 27 deletions(-)diff --git a/mm/gup.c b/mm/gup.c index 5cb18b62921c..4be6f060fa0b 100644 --- a/mm/gup.c +++ b/mm/gup.c@@ -203,33 +203,8 @@ static void put_compound_head(struct page *page, int refs, unsigned int flags) */ bool __must_check try_grab_page(struct page *page, unsigned int flags) { + if (flags & (FOLL_GET | FOLL_PIN)) + return try_grab_compound_head(page, 1, flags) != NULL; return true;
Nit: something like: if (!(flags & (FOLL_GET | FOLL_PIN))) return true; return try_grab_compound_head(page, 1, flags) != NULL; would be a little easier to read.