|
@@ -941,6 +941,8 @@ static void pte_to_pagemap_entry(pagemap_entry_t *pme, struct pagemapread *pm,
|
|
|
frame = pte_pfn(pte);
|
|
|
flags = PM_PRESENT;
|
|
|
page = vm_normal_page(vma, addr, pte);
|
|
|
+ if (pte_soft_dirty(pte))
|
|
|
+ flags2 |= __PM_SOFT_DIRTY;
|
|
|
} else if (is_swap_pte(pte)) {
|
|
|
swp_entry_t entry;
|
|
|
if (pte_swp_soft_dirty(pte))
|
|
@@ -960,7 +962,7 @@ static void pte_to_pagemap_entry(pagemap_entry_t *pme, struct pagemapread *pm,
|
|
|
|
|
|
if (page && !PageAnon(page))
|
|
|
flags |= PM_FILE;
|
|
|
- if ((vma->vm_flags & VM_SOFTDIRTY) || pte_soft_dirty(pte))
|
|
|
+ if ((vma->vm_flags & VM_SOFTDIRTY))
|
|
|
flags2 |= __PM_SOFT_DIRTY;
|
|
|
|
|
|
*pme = make_pme(PM_PFRAME(frame) | PM_STATUS2(pm->v2, flags2) | flags);
|