@@ -80,8 +80,9 @@ static inline void balloon_devinfo_init(struct balloon_dev_info *balloon)
#ifdef CONFIG_BALLOON_COMPACTION
extern const struct address_space_operations balloon_aops;
-extern bool balloon_page_isolate(struct page *page,
- isolate_mode_t mode);
+extern bool balloon_page_isolate(struct address_space *__mapping,
+ struct page *page,
+ isolate_mode_t mode);
extern void balloon_page_putback(struct address_space *__mapping,
struct page *page);
extern int balloon_page_migrate(struct address_space *mapping,
@@ -408,7 +408,8 @@ struct address_space_operations {
*/
int (*migratepage) (struct address_space *,
struct page *, struct page *, enum migrate_mode);
- bool (*isolate_page)(struct page *, isolate_mode_t);
+ bool (*isolate_page)(struct address_space *, struct page *,
+ isolate_mode_t);
void (*putback_page)(struct address_space *, struct page *);
int (*launder_page) (struct address_space *, struct page *);
int (*is_partially_uptodate) (struct address_space *, struct page *,
@@ -203,7 +203,8 @@ EXPORT_SYMBOL_GPL(balloon_page_dequeue);
#ifdef CONFIG_BALLOON_COMPACTION
-bool balloon_page_isolate(struct page *page, isolate_mode_t mode)
+bool balloon_page_isolate(struct address_space *__mapping, struct page *page,
+ isolate_mode_t mode)
{
struct balloon_dev_info *b_dev_info = balloon_page_device(page);
@@ -126,7 +126,7 @@ int isolate_movable_page(struct page *page, isolate_mode_t mode)
mapping = page_mapping(page);
VM_BUG_ON_PAGE(!mapping, page);
- if (!mapping->a_ops->isolate_page(page, mode))
+ if (!mapping->a_ops->isolate_page(MAPPING_NULL, page, mode))
goto out_no_isolated;
/* Driver shouldn't use PG_isolated bit of page->flags */
@@ -1566,7 +1566,8 @@ static u64 z3fold_get_pool_size(struct z3fold_pool *pool)
return atomic64_read(&pool->pages_nr);
}
-static bool z3fold_page_isolate(struct page *page, isolate_mode_t mode)
+static bool z3fold_page_isolate(struct address_space *__mapping,
+ struct page *page, isolate_mode_t mode)
{
struct z3fold_header *zhdr;
struct z3fold_pool *pool;
@@ -1914,7 +1914,8 @@ static void replace_sub_page(struct size_class *class, struct zspage *zspage,
__SetPageMovable(newpage, page_mapping(oldpage));
}
-static bool zs_page_isolate(struct page *page, isolate_mode_t mode)
+static bool zs_page_isolate(struct address_space *__mapping,
+ struct page *page, isolate_mode_t mode)
{
struct zs_pool *pool;
struct size_class *class;