On Friday, October 28, 2016 1:56 PM Huang, Ying wrote:
quoted hunk ↗ jump to hunk
@@ -109,9 +118,16 @@ int __add_to_swap_cache(struct page *page, swp_entry_t entry)
* So add_to_swap_cache() doesn't returns -EEXIST.
*/
VM_BUG_ON(error == -EEXIST);
- set_page_private(page, 0UL);
ClearPageSwapCache(page);
- put_page(page);
+ set_page_private(cur_page, 0UL);
+ while (i--) {
+ cur_page--;
+ cur_entry.val--;
+ set_page_private(cur_page, 0UL);
+ radix_tree_delete(&address_space->page_tree,
+ swp_offset(cur_entry));
+ }
Pull pages out of radix tree with tree lock held?
+ page_ref_sub(page, nr);
}
return error;
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>