From: Vishal Moola (Oracle) Date: Mon, 30 Jan 2023 21:43:50 +0000 (-0800) Subject: mm/migrate: add folio_movable_ops() X-Git-Tag: v6.6.7~3441^2~50 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=da707a6d184a8a6ef0b756c3ba49888fec223793;p=platform%2Fkernel%2Flinux-starfive.git mm/migrate: add folio_movable_ops() folio_movable_ops() does the same as page_movable_ops() except uses folios instead of pages. This function will help make folio conversions in migrate.c more readable. Link: https://lkml.kernel.org/r/20230130214352.40538-3-vishal.moola@gmail.com Signed-off-by: Vishal Moola (Oracle) Cc: Matthew Wilcox Signed-off-by: Andrew Morton --- diff --git a/include/linux/migrate.h b/include/linux/migrate.h index 3ef77f5..bdff950a8 100644 --- a/include/linux/migrate.h +++ b/include/linux/migrate.h @@ -123,6 +123,15 @@ static inline bool folio_test_movable(struct folio *folio) } static inline +const struct movable_operations *folio_movable_ops(struct folio *folio) +{ + VM_BUG_ON(!__folio_test_movable(folio)); + + return (const struct movable_operations *) + ((unsigned long)folio->mapping - PAGE_MAPPING_MOVABLE); +} + +static inline const struct movable_operations *page_movable_ops(struct page *page) { VM_BUG_ON(!__PageMovable(page)); diff --git a/mm/migrate.c b/mm/migrate.c index c09872c..d2b1167 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -990,7 +990,7 @@ static int move_to_new_folio(struct folio *dst, struct folio *src, goto out; } - mops = page_movable_ops(&src->page); + mops = folio_movable_ops(src); rc = mops->migrate_page(&dst->page, &src->page, mode); WARN_ON_ONCE(rc == MIGRATEPAGE_SUCCESS && !folio_test_isolated(src));