diff --git a/mm/memory-failure.c b/mm/memory-failure.c index c8cc57ed7dcd..ec9ad5270d32 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1204,6 +1204,9 @@ int memory_failure(unsigned long pfn, int trapno, int flags) for (ps = error_states;; ps++) if ((p->flags & ps->mask) == ps->res) break; + + page_flags |= (p->flags & (1UL << PG_dirty)); + if (!ps->mask) for (ps = error_states;; ps++) if ((page_flags & ps->mask) == ps->res)