Skip to content

Commit 0ef0246

Browse files
Baolin Wangtorvalds
authored andcommitted
mm: migrate: simplify the file-backed pages validation when migrating its mapping
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: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 252220d commit 0ef0246

1 file changed

Lines changed: 0 additions & 6 deletions

File tree

mm/migrate.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -404,12 +404,6 @@ int folio_migrate_mapping(struct address_space *mapping,
404404
newzone = folio_zone(newfolio);
405405

406406
xas_lock_irq(&xas);
407-
if (folio_ref_count(folio) != expected_count ||
408-
xas_load(&xas) != folio) {
409-
xas_unlock_irq(&xas);
410-
return -EAGAIN;
411-
}
412-
413407
if (!folio_ref_freeze(folio, expected_count)) {
414408
xas_unlock_irq(&xas);
415409
return -EAGAIN;

0 commit comments

Comments
 (0)