diff options
author | NeilBrown <neilb@suse.de> | 2006-06-23 11:05:48 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-23 16:43:07 +0200 |
commit | e0f23603fb2607315ce52432cc4225df410828cf (patch) | |
tree | 7a32b42a64a64488aee0e91ab016d53c353f9482 /Documentation/SubmitChecklist | |
parent | [PATCH] CONFIG_NET=n build fix (diff) | |
download | linux-e0f23603fb2607315ce52432cc4225df410828cf.tar.xz linux-e0f23603fb2607315ce52432cc4225df410828cf.zip |
[PATCH] Remove semi-softlockup from invalidate_mapping_pages
If invalidate_mapping_pages is called to invalidate a very large mapping
(e.g. a very large block device) and if the only active page in that
device is near the end (or at least, at a very large index), such as, say,
the superblock of an md array, and if that page happens to be locked when
invalidate_mapping_pages is called, then
pagevec_lookup will return this page and
as it is locked, 'next' will be incremented and pagevec_lookup
will be called again. and again. and again.
while we count from 0 upto a very large number.
We should really always set 'next' to 'page->index+1' before going around
the loop again, not just if the page isn't locked.
Cc: "Steinar H. Gunderson" <sgunderson@bigfoot.com>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'Documentation/SubmitChecklist')
0 files changed, 0 insertions, 0 deletions