Skip to content

Commit cd77558

Browse files
Baolin Wangakpm00
authored andcommitted
mm: change to return bool for isolate_movable_page()
Now the isolate_movable_page() can only return 0 or -EBUSY, and no users will care about the negative return value, thus we can convert the isolate_movable_page() to return a boolean value to make the code more clear when checking the movable page isolation state. No functional changes intended. [[email protected]: remove unneeded comment, per Matthew] Link: https://lkml.kernel.org/r/cb877f73f4fff8d309611082ec740a7065b1ade0.1676424378.git.baolin.wang@linux.alibaba.com Signed-off-by: Baolin Wang <[email protected]> Acked-by: David Hildenbrand <[email protected]> Reviewed-by: Matthew Wilcox (Oracle) <[email protected]> Acked-by: Linus Torvalds <[email protected]> Reviewed-by: SeongJae Park <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
1 parent 9747b9e commit cd77558

File tree

5 files changed

+14
-14
lines changed

5 files changed

+14
-14
lines changed

include/linux/migrate.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free,
7171
unsigned long private, enum migrate_mode mode, int reason,
7272
unsigned int *ret_succeeded);
7373
extern struct page *alloc_migration_target(struct page *page, unsigned long private);
74-
extern int isolate_movable_page(struct page *page, isolate_mode_t mode);
74+
extern bool isolate_movable_page(struct page *page, isolate_mode_t mode);
7575

7676
int migrate_huge_page_move_mapping(struct address_space *mapping,
7777
struct folio *dst, struct folio *src);
@@ -92,8 +92,8 @@ static inline int migrate_pages(struct list_head *l, new_page_t new,
9292
static inline struct page *alloc_migration_target(struct page *page,
9393
unsigned long private)
9494
{ return NULL; }
95-
static inline int isolate_movable_page(struct page *page, isolate_mode_t mode)
96-
{ return -EBUSY; }
95+
static inline bool isolate_movable_page(struct page *page, isolate_mode_t mode)
96+
{ return false; }
9797

9898
static inline int migrate_huge_page_move_mapping(struct address_space *mapping,
9999
struct folio *dst, struct folio *src)

mm/compaction.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -976,7 +976,7 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
976976
locked = NULL;
977977
}
978978

979-
if (!isolate_movable_page(page, mode))
979+
if (isolate_movable_page(page, mode))
980980
goto isolate_success;
981981
}
982982

mm/memory-failure.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2515,8 +2515,8 @@ static bool isolate_page(struct page *page, struct list_head *pagelist)
25152515
if (lru)
25162516
isolated = isolate_lru_page(page);
25172517
else
2518-
isolated = !isolate_movable_page(page,
2519-
ISOLATE_UNEVICTABLE);
2518+
isolated = isolate_movable_page(page,
2519+
ISOLATE_UNEVICTABLE);
25202520

25212521
if (isolated) {
25222522
list_add(&page->lru, pagelist);

mm/memory_hotplug.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1668,18 +1668,18 @@ do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
16681668
* We can skip free pages. And we can deal with pages on
16691669
* LRU and non-lru movable pages.
16701670
*/
1671-
if (PageLRU(page)) {
1671+
if (PageLRU(page))
16721672
isolated = isolate_lru_page(page);
1673-
ret = isolated ? 0 : -EBUSY;
1674-
} else
1675-
ret = isolate_movable_page(page, ISOLATE_UNEVICTABLE);
1676-
if (!ret) { /* Success */
1673+
else
1674+
isolated = isolate_movable_page(page, ISOLATE_UNEVICTABLE);
1675+
if (isolated) {
16771676
list_add_tail(&page->lru, &source);
16781677
if (!__PageMovable(page))
16791678
inc_node_page_state(page, NR_ISOLATED_ANON +
16801679
page_is_file_lru(page));
16811680

16821681
} else {
1682+
ret = -EBUSY;
16831683
if (__ratelimit(&migrate_rs)) {
16841684
pr_warn("failed to isolate pfn %lx\n", pfn);
16851685
dump_page(page, "isolation failed");

mm/migrate.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858

5959
#include "internal.h"
6060

61-
int isolate_movable_page(struct page *page, isolate_mode_t mode)
61+
bool isolate_movable_page(struct page *page, isolate_mode_t mode)
6262
{
6363
struct folio *folio = folio_get_nontail_page(page);
6464
const struct movable_operations *mops;
@@ -119,14 +119,14 @@ int isolate_movable_page(struct page *page, isolate_mode_t mode)
119119
folio_set_isolated(folio);
120120
folio_unlock(folio);
121121

122-
return 0;
122+
return true;
123123

124124
out_no_isolated:
125125
folio_unlock(folio);
126126
out_putfolio:
127127
folio_put(folio);
128128
out:
129-
return -EBUSY;
129+
return false;
130130
}
131131

132132
static void putback_movable_folio(struct folio *folio)

0 commit comments

Comments
 (0)