提交 7f0f2496 编写于 作者: M Mel Gorman 提交者: Linus Torvalds

mm: migration: cleanup migrate_pages API by matching types for offlining and sync

With the introduction of the boolean sync parameter, the API looks a
little inconsistent as offlining is still an int.  Convert offlining to a
bool for the sake of being tidy.
Signed-off-by: NMel Gorman <mel@csn.ul.ie>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Rik van Riel <riel@redhat.com>
Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
Cc: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 77f1fe6b
...@@ -13,10 +13,10 @@ extern void putback_lru_pages(struct list_head *l); ...@@ -13,10 +13,10 @@ extern void putback_lru_pages(struct list_head *l);
extern int migrate_page(struct address_space *, extern int migrate_page(struct address_space *,
struct page *, struct page *); struct page *, struct page *);
extern int migrate_pages(struct list_head *l, new_page_t x, extern int migrate_pages(struct list_head *l, new_page_t x,
unsigned long private, int offlining, unsigned long private, bool offlining,
bool sync); bool sync);
extern int migrate_huge_pages(struct list_head *l, new_page_t x, extern int migrate_huge_pages(struct list_head *l, new_page_t x,
unsigned long private, int offlining, unsigned long private, bool offlining,
bool sync); bool sync);
extern int fail_migrate_page(struct address_space *, extern int fail_migrate_page(struct address_space *,
...@@ -35,10 +35,10 @@ extern int migrate_huge_page_move_mapping(struct address_space *mapping, ...@@ -35,10 +35,10 @@ extern int migrate_huge_page_move_mapping(struct address_space *mapping,
static inline void putback_lru_pages(struct list_head *l) {} static inline void putback_lru_pages(struct list_head *l) {}
static inline int migrate_pages(struct list_head *l, new_page_t x, static inline int migrate_pages(struct list_head *l, new_page_t x,
unsigned long private, int offlining, unsigned long private, bool offlining,
bool sync) { return -ENOSYS; } bool sync) { return -ENOSYS; }
static inline int migrate_huge_pages(struct list_head *l, new_page_t x, static inline int migrate_huge_pages(struct list_head *l, new_page_t x,
unsigned long private, int offlining, unsigned long private, bool offlining,
bool sync) { return -ENOSYS; } bool sync) { return -ENOSYS; }
static inline int migrate_prep(void) { return -ENOSYS; } static inline int migrate_prep(void) { return -ENOSYS; }
......
...@@ -456,7 +456,7 @@ static int compact_zone(struct zone *zone, struct compact_control *cc) ...@@ -456,7 +456,7 @@ static int compact_zone(struct zone *zone, struct compact_control *cc)
nr_migrate = cc->nr_migratepages; nr_migrate = cc->nr_migratepages;
migrate_pages(&cc->migratepages, compaction_alloc, migrate_pages(&cc->migratepages, compaction_alloc,
(unsigned long)cc, 0, (unsigned long)cc, false,
cc->sync); cc->sync);
update_nr_listpages(cc); update_nr_listpages(cc);
nr_remaining = cc->nr_migratepages; nr_remaining = cc->nr_migratepages;
......
...@@ -734,7 +734,7 @@ do_migrate_range(unsigned long start_pfn, unsigned long end_pfn) ...@@ -734,7 +734,7 @@ do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
} }
/* this function returns # of failed pages */ /* this function returns # of failed pages */
ret = migrate_pages(&source, hotremove_migrate_alloc, 0, ret = migrate_pages(&source, hotremove_migrate_alloc, 0,
1, true); true, true);
if (ret) if (ret)
putback_lru_pages(&source); putback_lru_pages(&source);
} }
......
...@@ -935,7 +935,8 @@ static int migrate_to_node(struct mm_struct *mm, int source, int dest, ...@@ -935,7 +935,8 @@ static int migrate_to_node(struct mm_struct *mm, int source, int dest,
return PTR_ERR(vma); return PTR_ERR(vma);
if (!list_empty(&pagelist)) { if (!list_empty(&pagelist)) {
err = migrate_pages(&pagelist, new_node_page, dest, 0, true); err = migrate_pages(&pagelist, new_node_page, dest,
false, true);
if (err) if (err)
putback_lru_pages(&pagelist); putback_lru_pages(&pagelist);
} }
...@@ -1155,7 +1156,8 @@ static long do_mbind(unsigned long start, unsigned long len, ...@@ -1155,7 +1156,8 @@ static long do_mbind(unsigned long start, unsigned long len,
if (!list_empty(&pagelist)) { if (!list_empty(&pagelist)) {
nr_failed = migrate_pages(&pagelist, new_vma_page, nr_failed = migrate_pages(&pagelist, new_vma_page,
(unsigned long)vma, 0, true); (unsigned long)vma,
false, true);
if (nr_failed) if (nr_failed)
putback_lru_pages(&pagelist); putback_lru_pages(&pagelist);
} }
......
...@@ -614,7 +614,7 @@ static int move_to_new_page(struct page *newpage, struct page *page, ...@@ -614,7 +614,7 @@ static int move_to_new_page(struct page *newpage, struct page *page,
* to the newly allocated page in newpage. * to the newly allocated page in newpage.
*/ */
static int unmap_and_move(new_page_t get_new_page, unsigned long private, static int unmap_and_move(new_page_t get_new_page, unsigned long private,
struct page *page, int force, int offlining, bool sync) struct page *page, int force, bool offlining, bool sync)
{ {
int rc = 0; int rc = 0;
int *result = NULL; int *result = NULL;
...@@ -827,7 +827,7 @@ static int unmap_and_move(new_page_t get_new_page, unsigned long private, ...@@ -827,7 +827,7 @@ static int unmap_and_move(new_page_t get_new_page, unsigned long private,
*/ */
static int unmap_and_move_huge_page(new_page_t get_new_page, static int unmap_and_move_huge_page(new_page_t get_new_page,
unsigned long private, struct page *hpage, unsigned long private, struct page *hpage,
int force, int offlining, bool sync) int force, bool offlining, bool sync)
{ {
int rc = 0; int rc = 0;
int *result = NULL; int *result = NULL;
...@@ -909,7 +909,7 @@ static int unmap_and_move_huge_page(new_page_t get_new_page, ...@@ -909,7 +909,7 @@ static int unmap_and_move_huge_page(new_page_t get_new_page,
* Return: Number of pages not migrated or error code. * Return: Number of pages not migrated or error code.
*/ */
int migrate_pages(struct list_head *from, int migrate_pages(struct list_head *from,
new_page_t get_new_page, unsigned long private, int offlining, new_page_t get_new_page, unsigned long private, bool offlining,
bool sync) bool sync)
{ {
int retry = 1; int retry = 1;
...@@ -960,7 +960,7 @@ int migrate_pages(struct list_head *from, ...@@ -960,7 +960,7 @@ int migrate_pages(struct list_head *from,
} }
int migrate_huge_pages(struct list_head *from, int migrate_huge_pages(struct list_head *from,
new_page_t get_new_page, unsigned long private, int offlining, new_page_t get_new_page, unsigned long private, bool offlining,
bool sync) bool sync)
{ {
int retry = 1; int retry = 1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册