summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndrew Morton <akpm@digeo.com>2002-09-09 21:09:04 -0700
committerLinus Torvalds <torvalds@penguin.transmeta.com>2002-09-09 21:09:04 -0700
commit95b883004339d4b68acd2bc5643984bd6dbb7571 (patch)
tree29031738a49f349beeeb1eba9a5496f4f654ab69 /include/linux
parent0d8b3b444a5bd3cde29d0670597f54df4ba1affa (diff)
[PATCH] writer throttling fix
The patch fixes a few problems in the writer throttling code. Mainly in the situation where a single large file is being written out. That file could be parked on sb->locked_inodes due to pdflush writeback, and the writer throttling path coming out of balance_dirty_pages() forgot to look for inodes on ->locked_inodes. The net effect was that the amount of dirty memory was exceeding the limit set in /proc/sys/vm/dirty_async_ratio, possibly to the point where the system gets seriously choked. The patch removes sb->locked_inodes altogether and teaches the throttling code to look for inodes on sb->s_io as well as sb->s_dirty. Also, just leave unwritten dirty pages on mapping->io_pages, and unwritten dirty inodes on sb->s_io. Putting them back onto ->dirty_pages and ->dirty_inodes was fairly pointless, given that both lists need to be looked at.
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/fs.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index f67b149a06ee..1b4bf7d463a9 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -660,7 +660,6 @@ struct super_block {
struct list_head s_dirty; /* dirty inodes */
struct list_head s_io; /* parked for writeback */
- struct list_head s_locked_inodes;/* inodes being synced */
struct list_head s_anon; /* anonymous dentries for (nfs) exporting */
struct list_head s_files;