aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2006-08-31 06:56:06 -0400
committerJens Axboe <axboe@nelson.home.kernel.dk>2006-09-30 14:52:33 -0400
commitbcfd8d36151e531e1c6c731f1fbf792509a1c494 (patch)
tree6c8dec2cffc8310ecc09207aef9c2027a1c89003
parent5e6d12b2c8be2cac099df6dcb8b26884f24d2621 (diff)
[PATCH] CONFIG_BLOCK: blk_congestion_wait() fix
Don't just do nothing: it'll cause busywaits all over writeback and page reclaim. For now, take a fixed-length nap. Will improve when NFS starts waking up throttled processes. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--include/linux/blkdev.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 3e36107d342a..1d79b8d4ca6d 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -1,6 +1,7 @@
1#ifndef _LINUX_BLKDEV_H 1#ifndef _LINUX_BLKDEV_H
2#define _LINUX_BLKDEV_H 2#define _LINUX_BLKDEV_H
3 3
4#include <linux/sched.h>
4#include <linux/major.h> 5#include <linux/major.h>
5#include <linux/genhd.h> 6#include <linux/genhd.h>
6#include <linux/list.h> 7#include <linux/list.h>
@@ -848,7 +849,7 @@ void kblockd_flush(void);
848 849
849static inline long blk_congestion_wait(int rw, long timeout) 850static inline long blk_congestion_wait(int rw, long timeout)
850{ 851{
851 return timeout; 852 return io_schedule_timeout(timeout);
852} 853}
853 854
854static inline long nr_blockdev_pages(void) 855static inline long nr_blockdev_pages(void)
@@ -856,7 +857,9 @@ static inline long nr_blockdev_pages(void)
856 return 0; 857 return 0;
857} 858}
858 859
859static inline void exit_io_context(void) {} 860static inline void exit_io_context(void)
861{
862}
860 863
861#endif /* CONFIG_BLOCK */ 864#endif /* CONFIG_BLOCK */
862 865