|
@@ -1151,6 +1151,11 @@ struct page *follow_page(struct vm_area_struct *vma, unsigned long address,
|
|
if ((flags & FOLL_WRITE) &&
|
|
if ((flags & FOLL_WRITE) &&
|
|
!pte_dirty(pte) && !PageDirty(page))
|
|
!pte_dirty(pte) && !PageDirty(page))
|
|
set_page_dirty(page);
|
|
set_page_dirty(page);
|
|
|
|
+ /*
|
|
|
|
+ * pte_mkyoung() would be more correct here, but atomic care
|
|
|
|
+ * is needed to avoid losing the dirty bit: it is easier to use
|
|
|
|
+ * mark_page_accessed().
|
|
|
|
+ */
|
|
mark_page_accessed(page);
|
|
mark_page_accessed(page);
|
|
}
|
|
}
|
|
unlock:
|
|
unlock:
|