summaryrefslogtreecommitdiff
path: root/include/linux/cache.h
diff options
context:
space:
mode:
authorAndrew Morton <akpm@digeo.com>2002-10-31 04:09:37 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2002-10-31 04:09:37 -0800
commitf9a316fa9099053a299851762aedbf12881cff42 (patch)
tree13c602e1b34dfdd5af79dc473ab4c5f814016835 /include/linux/cache.h
parent1bbb1949d7e25c69ecda368cc0b8b2e4e893e5ce (diff)
[PATCH] strip pagecache from to-be-reaped inodes
With large highmem machines and many small cached files it is possible to encounter ZONE_NORMAL allocation failures. This can be demonstrated with a large number of one-byte files on a 7G machine. All lowmem is filled with icache and all those inodes have a small amount of highmem pagecache which makes them unfreeable. The patch strips the pagecache from inodes as they come off the tail of the inode_unused list. I play tricks in there peeking at the head of the inode_unused list to pick up the inode again after running iput(). The alternatives seemed to involve more widespread changes. Or running invalidate_inode_pages() under inode_lock which would be a bad thing from a scheduling latency and lock contention point of view.
Diffstat (limited to 'include/linux/cache.h')
0 files changed, 0 insertions, 0 deletions