]> git.karo-electronics.de Git - karo-tx-linux.git/commit
pdflush: handle resume wakeups
authorPavel Machek <pavel@suse.cz>
Tue, 8 Aug 2006 09:58:01 +0000 (11:58 +0200)
committerAdrian Bunk <bunk@stusta.de>
Tue, 8 Aug 2006 09:58:01 +0000 (11:58 +0200)
commitd92165febdccd522e2a8b55008ffdb0ed121141a
treeafa5d789c3ac2e1fecaf90a231edab43b03f0672
parent3d6cf29b3f117605c66583b9145f53d39c695a6e
pdflush: handle resume wakeups

2.6.16 needs this. It was merged into 2.6.18-rc1.

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>
Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
mm/pdflush.c