|
@@ -1509,11 +1509,13 @@ static int shmem_replace_page(struct page **pagep, gfp_t gfp,
|
|
|
{
|
|
|
struct page *oldpage, *newpage;
|
|
|
struct address_space *swap_mapping;
|
|
|
+ swp_entry_t entry;
|
|
|
pgoff_t swap_index;
|
|
|
int error;
|
|
|
|
|
|
oldpage = *pagep;
|
|
|
- swap_index = page_private(oldpage);
|
|
|
+ entry.val = page_private(oldpage);
|
|
|
+ swap_index = swp_offset(entry);
|
|
|
swap_mapping = page_mapping(oldpage);
|
|
|
|
|
|
/*
|
|
@@ -1532,7 +1534,7 @@ static int shmem_replace_page(struct page **pagep, gfp_t gfp,
|
|
|
__SetPageLocked(newpage);
|
|
|
__SetPageSwapBacked(newpage);
|
|
|
SetPageUptodate(newpage);
|
|
|
- set_page_private(newpage, swap_index);
|
|
|
+ set_page_private(newpage, entry.val);
|
|
|
SetPageSwapCache(newpage);
|
|
|
|
|
|
/*
|