On Wed, 21 Mar 2012 18:52:04 +0900
KAMEZAWA Hiroyuki [off-list ref] wrote:
static struct page *mc_handle_swap_pte(struct vm_area_struct *vma,
unsigned long addr, pte_t ptent, swp_entry_t *entry)
{
- int usage_count;
struct page *page = NULL;
swp_entry_t ent = pte_to_swp_entry(ptent);
if (!move_anon() || non_swap_entry(ent))
return NULL;
- usage_count = mem_cgroup_count_swap_user(ent, &page);
- if (usage_count > 1) { /* we don't move shared anon */
- if (page)
- put_page(page);
- return NULL;
- }
+#ifdef CONFIG_SWAP
+ /*
+ * Avoid lookup_swap_cache() not to update statistics.
+ */
I don't understand this comment - what is it trying to tell us?
+ page = find_get_page(&swapper_space, ent.val);
The code won't even compile if CONFIG_SWAP=n?
+#endif
if (do_swap_account)
entry->val = ent.val;