diff options
author | Cyrill Gorcunov <[email protected]> | 2013-08-27 12:37:18 +0400 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2013-08-27 09:36:17 -0700 |
commit | 6dec97dc92946eb479e6ebb54a61f8226cceefec (patch) | |
tree | 7065d6d5f27b19ce4773460d50c1502610848f64 /lib/memory-notifier-error-inject.c | |
parent | 9b506833210fdaea2cd00e39368805e28f49492d (diff) |
mm: move_ptes -- Set soft dirty bit depending on pte type
Dave reported corrupted swap entries
| [ 4588.541886] swap_free: Unused swap offset entry 00002d15
| [ 4588.541952] BUG: Bad page map in process trinity-kid12 pte:005a2a80 pmd:22c01f067
and Hugh pointed that in move_ptes _PAGE_SOFT_DIRTY bit set regardless
the type of entry pte consists of. The trick here is that when we carry
soft dirty status in swap entries we are to use _PAGE_SWP_SOFT_DIRTY
instead, because this is the only place in pte which can be used for own
needs without intersecting with bits owned by swap entry type/offset.
Reported-and-tested-by: Dave Jones <[email protected]>
Signed-off-by: Cyrill Gorcunov <[email protected]>
Cc: Pavel Emelyanov <[email protected]>
Analyzed-by: Hugh Dickins <[email protected]>
Cc: Hillf Danton <[email protected]>
Cc: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'lib/memory-notifier-error-inject.c')
0 files changed, 0 insertions, 0 deletions