aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenry Burns <[email protected]>2019-07-16 16:26:18 -0700
committerLinus Torvalds <[email protected]>2019-07-16 19:23:21 -0700
commitbe03074c9af25d06cf8e9ebddfcd284c0bf7f947 (patch)
treecf728058af2776e978daffd645cdc09c18e0722f
parent1732d2b0117c26a6bf6027c919e49603156ea93d (diff)
mm/z3fold.c: remove z3fold_migration trylock
z3fold_page_migrate() will never succeed because it attempts to acquire a lock that has already been taken by migrate.c in __unmap_and_move(). __unmap_and_move() migrate.c trylock_page(oldpage) move_to_new_page(oldpage_newpage) a_ops->migrate_page(oldpage, newpage) z3fold_page_migrate(oldpage, newpage) trylock_page(oldpage) Link: http://lkml.kernel.org/r/[email protected] Fixes: 1f862989b04a ("mm/z3fold.c: support page migration") Signed-off-by: Henry Burns <[email protected]> Reviewed-by: Shakeel Butt <[email protected]> Cc: Vitaly Wool <[email protected]> Cc: Vitaly Vul <[email protected]> Cc: Jonathan Adams <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Snild Dolkow <[email protected]> Cc: Thomas Gleixner <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r--mm/z3fold.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/mm/z3fold.c b/mm/z3fold.c
index e13c6228cd70..70008a8fed95 100644
--- a/mm/z3fold.c
+++ b/mm/z3fold.c
@@ -1350,16 +1350,11 @@ static int z3fold_page_migrate(struct address_space *mapping, struct page *newpa
zhdr = page_address(page);
pool = zhdr_to_pool(zhdr);
- if (!trylock_page(page))
- return -EAGAIN;
-
if (!z3fold_page_trylock(zhdr)) {
- unlock_page(page);
return -EAGAIN;
}
if (zhdr->mapped_count != 0) {
z3fold_page_unlock(zhdr);
- unlock_page(page);
return -EBUSY;
}
new_zhdr = page_address(newpage);
@@ -1391,7 +1386,6 @@ static int z3fold_page_migrate(struct address_space *mapping, struct page *newpa
queue_work_on(new_zhdr->cpu, pool->compact_wq, &new_zhdr->work);
page_mapcount_reset(page);
- unlock_page(page);
put_page(page);
return 0;
}