summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorHenry Burns <henryburns@google.com>2019-07-16 16:26:18 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-09-19 09:11:06 +0200
commit1894d857ce860cb76bd866bb5d951217034f3f6f (patch)
tree4ed4f8e8d69a3e0929686c67a6c9c1dfff511c80 /mm
parentead8b4f3b2f952e8cb0896d433dd293103807b35 (diff)
downloadlinux-stable-1894d857ce860cb76bd866bb5d951217034f3f6f.tar.gz
linux-stable-1894d857ce860cb76bd866bb5d951217034f3f6f.tar.bz2
linux-stable-1894d857ce860cb76bd866bb5d951217034f3f6f.zip
mm/z3fold.c: remove z3fold_migration trylock
commit be03074c9af25d06cf8e9ebddfcd284c0bf7f947 upstream. 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/20190710213238.91835-1-henryburns@google.com Fixes: 1f862989b04a ("mm/z3fold.c: support page migration") Signed-off-by: Henry Burns <henryburns@google.com> Reviewed-by: Shakeel Butt <shakeelb@google.com> Cc: Vitaly Wool <vitalywool@gmail.com> Cc: Vitaly Vul <vitaly.vul@sony.com> Cc: Jonathan Adams <jwadams@google.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Snild Dolkow <snild@sony.com> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/z3fold.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/mm/z3fold.c b/mm/z3fold.c
index 46686d0e3df8..39d0a8a40e66 100644
--- a/mm/z3fold.c
+++ b/mm/z3fold.c
@@ -1439,16 +1439,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;
}
if (work_pending(&zhdr->work)) {
@@ -1494,7 +1489,6 @@ static int z3fold_page_migrate(struct address_space *mapping, struct page *newpa
spin_unlock(&pool->lock);
page_mapcount_reset(page);
- unlock_page(page);
put_page(page);
return 0;
}