OSDN Git Service

mm/gup: Optimise compound_range_next()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Sun, 9 Jan 2022 21:21:23 +0000 (16:21 -0500)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 21 Mar 2022 16:56:35 +0000 (12:56 -0400)
By definition, a compound page has an order >= 1, so the second half
of the test was redundant.  Also, this cannot be a tail page since
it's the result of calling compound_head(), so use PageHead() instead
of PageCompound().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: John Hubbard <jhubbard@nvidia.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: William Kucharski <william.kucharski@oracle.com>
mm/gup.c

index 32143b6..30d1dae 100644 (file)
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -260,7 +260,7 @@ static inline struct page *compound_range_next(struct page *start,
 
        next = start + i;
        page = compound_head(next);
-       if (PageCompound(page) && compound_order(page) >= 1)
+       if (PageHead(page))
                nr = min_t(unsigned int,
                           page + compound_nr(page) - next, npages - i);