[PATCH] pdflush: handle resume wakeups
authorAndrew Morton <akpm@osdl.org>
Sun, 25 Jun 2006 12:47:46 +0000 (05:47 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sun, 25 Jun 2006 17:01:06 +0000 (10:01 -0700)
commitd616e09ab33aa4d013a93c9b393efd5cebf78521
tree13837ef8dc9e955c621d798235c064218b56361d
parentbc64863814b14a4f75884746e68d3bf9f96b3559
[PATCH] pdflush: handle resume wakeups

pdflush is carefully designed to ensure that all wakeups have some
corresponding work to do - if a woken-up pdflush thread discovers that it
hasn't been given any work to do then this is considered an error.

That all broke when swsusp came along - because a timer-delivered wakeup to a
frozen pdflush thread will just get lost.  This causes the pdflush thread to
get lost as well: the writeback timer is supposed to be re-armed by pdflush in
process context, but pdflush doesn't execute the callout which does this.

Fix that up by ignoring the return value from try_to_freeze(): jsut proceed,
see if we have any work pending and only go back to sleep if that is not the
case.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
mm/pdflush.c