summaryrefslogtreecommitdiff
path: root/fs/buffer.c
diff options
context:
space:
mode:
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;
}