]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm: migrate: simplify the file-backed pages validation when migrating its mapping
authorBaolin Wang <baolin.wang@linux.alibaba.com>
Tue, 24 Aug 2021 00:00:15 +0000 (10:00 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 2 Sep 2021 05:32:29 +0000 (15:32 +1000)
Patch series "Some cleanup for page migration", v3.

This patchset does some cleanups and improvements for page migration.

This patch (of 4):

There is no need to validate the file-backed page's refcount before trying
to freeze the page's expected refcount, instead we can rely on the
folio_ref_freeze() to validate if the page has the expected refcount
before migrating its mapping.

Moreover we are always under the page lock when migrating the page
mapping, which means nowhere else can remove it from the page cache, so we
can remove the xas_load() validation under the i_pages lock.

Link: https://lkml.kernel.org/r/cover.1629447552.git.baolin.wang@linux.alibaba.com
Link: https://lkml.kernel.org/r/df4c129fd8e86a95dbc55f4663d77441cc0d3bd1.1629447552.git.baolin.wang@linux.alibaba.com
Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Suggested-by: Matthew Wilcox <willy@infradead.org>
Cc: Yang Shi <shy828301@gmail.com>
Cc: Alistair Popple <apopple@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
mm/migrate.c

index de46dc375ff9be74ea83eaf8a9f47c3f6808b348..f686e5de1f9b39f2b85855ab6f0dd81c68d89a95 100644 (file)
@@ -404,12 +404,6 @@ int folio_migrate_mapping(struct address_space *mapping,
        newzone = folio_zone(newfolio);
 
        xas_lock_irq(&xas);
-       if (folio_ref_count(folio) != expected_count ||
-           xas_load(&xas) != folio) {
-               xas_unlock_irq(&xas);
-               return -EAGAIN;
-       }
-
        if (!folio_ref_freeze(folio, expected_count)) {
                xas_unlock_irq(&xas);
                return -EAGAIN;