From: Naoya Horiguchi <n-horigu...@ah.jp.nec.com>

Introduce a separate check routine related to MPOL_MF_INVERT flag.
This patch just does cleanup, no behavioral change.

Signed-off-by: Naoya Horiguchi <n-horigu...@ah.jp.nec.com>
---
 mm/mempolicy.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index dc8a2672c407..fb18ce891586 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -477,6 +477,15 @@ struct queue_pages {
        struct vm_area_struct *prev;
 };
 
+static inline bool queue_pages_node_check(struct page *page,
+                                       struct queue_pages *qp)
+{
+       int nid = page_to_nid(page);
+       unsigned long flags = qp->flags;
+
+       return node_isset(nid, *qp->nmask) == !!(flags & MPOL_MF_INVERT);
+}
+
 /*
  * Scan through pages checking if pages follow certain conditions,
  * and move them to the pagelist if they do.
@@ -530,8 +539,7 @@ static int queue_pages_pte_range(pmd_t *pmd, unsigned long 
addr,
                 */
                if (PageReserved(page))
                        continue;
-               nid = page_to_nid(page);
-               if (node_isset(nid, *qp->nmask) == !!(flags & MPOL_MF_INVERT))
+               if (queue_pages_node_check(page, qp))
                        continue;
                if (PageTransCompound(page)) {
                        get_page(page);
@@ -563,7 +571,6 @@ static int queue_pages_hugetlb(pte_t *pte, unsigned long 
hmask,
 #ifdef CONFIG_HUGETLB_PAGE
        struct queue_pages *qp = walk->private;
        unsigned long flags = qp->flags;
-       int nid;
        struct page *page;
        spinlock_t *ptl;
        pte_t entry;
@@ -573,8 +580,7 @@ static int queue_pages_hugetlb(pte_t *pte, unsigned long 
hmask,
        if (!pte_present(entry))
                goto unlock;
        page = pte_page(entry);
-       nid = page_to_nid(page);
-       if (node_isset(nid, *qp->nmask) == !!(flags & MPOL_MF_INVERT))
+       if (queue_pages_node_check(page, qp))
                goto unlock;
        /* With MPOL_MF_MOVE, we migrate only unshared hugepage. */
        if (flags & (MPOL_MF_MOVE_ALL) ||
-- 
2.11.0

Reply via email to