]> Git Repo - linux.git/commit
Do dirty page accounting when removing a page from the page cache
authorLinus Torvalds <[email protected]>
Wed, 19 Dec 2007 22:05:13 +0000 (14:05 -0800)
committerLinus Torvalds <[email protected]>
Wed, 19 Dec 2007 22:05:13 +0000 (14:05 -0800)
commit3a6927906f1b2adf5a31b789322d32eb8559ada0
treeef5b9dce5fd1b27be027fcff0a749547e9319ff0
parent3e3b3916a9c5c28a16528585478de19fea59816b
Do dirty page accounting when removing a page from the page cache

Krzysztof Oledzki noticed a dirty page accounting leak on some of his
machines, causing the machine to eventually lock up when the kernel
decided that there was too much dirty data, but nobody could actually
write anything out to fix it.

The culprit turns out to be filesystems (cough ext3 with data=journal
cough) that re-dirty the page when the "->invalidatepage()" callback is
called.

Fix it up by doing a final dirty page accounting check when we actually
remove the page from the page cache.

This fixes bugzilla entry 9182:

http://bugzilla.kernel.org/show_bug.cgi?id=9182

Tested-by: Ingo Molnar <[email protected]>
Tested-by: Krzysztof Oledzki <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Nick Piggin <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/filemap.c
This page took 0.045095 seconds and 4 git commands to generate.