summaryrefslogtreecommitdiff
path: root/fs/buffer.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 20:19:13 -0800
committerLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 20:19:13 -0800
commita27c6530ff12bab100e64c5b43e84f759fa353ae (patch)
treeb8a7b6abedf07872d2e5f8f6175390f362fbf47b /fs/buffer.c
parentdfc52b82fee5bc6713ecce3f81767a8565c4f874 (diff)
v2.4.9.12 -> v2.4.9.13
- Manfred Spraul: /proc/pid/maps cleanup (and bugfix for non-x86) - Al Viro: "block device fs" - cleanup of page cache handling - Hugh Dickins: VM/shmem cleanups and swap search speedup - David Miller: sparc updates, soc driver typo fix, net updates - Jeff Garzik: network driver updates (dl2k, yellowfin and tulip) - Neil Brown: knfsd cleanups and fixues - Ben LaHaise: zap_page_range merge from -ac
Diffstat (limited to 'fs/buffer.c')
-rw-r--r--fs/buffer.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/fs/buffer.c b/fs/buffer.c
index 7bf62e0a60d7..96a500c8bc2b 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -845,18 +845,6 @@ static void free_more_memory(void)
schedule();
}
-/*
- * We used to try various strange things. Let's not.
- * We'll just try to balance dirty buffers, and possibly
- * launder some pages and do our best to make more memory
- * available.
- */
-static void refill_freelist(int size)
-{
- if (!grow_buffers(size))
- free_more_memory();
-}
-
void init_buffer(struct buffer_head *bh, bh_end_io_t *handler, void *private)
{
bh->b_list = BUF_CLEAN;
@@ -1194,7 +1182,10 @@ repeat:
*/
write_unlock(&hash_table_lock);
spin_unlock(&lru_list_lock);
- refill_freelist(size);
+
+ if (!grow_buffers(size))
+ free_more_memory();
+
/* FIXME: getblk should fail if there's no enough memory */
goto repeat;
}