diff options
author | Andrew Morton <akpm@osdl.org> | 2006-08-31 06:56:06 -0400 |
---|---|---|
committer | Jens Axboe <axboe@nelson.home.kernel.dk> | 2006-09-30 14:52:33 -0400 |
commit | bcfd8d36151e531e1c6c731f1fbf792509a1c494 (patch) | |
tree | 6c8dec2cffc8310ecc09207aef9c2027a1c89003 /include | |
parent | 5e6d12b2c8be2cac099df6dcb8b26884f24d2621 (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>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/blkdev.h | 7 |
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 | ||
849 | static inline long blk_congestion_wait(int rw, long timeout) | 850 | static inline long blk_congestion_wait(int rw, long timeout) |
850 | { | 851 | { |
851 | return timeout; | 852 | return io_schedule_timeout(timeout); |
852 | } | 853 | } |
853 | 854 | ||
854 | static inline long nr_blockdev_pages(void) | 855 | static 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 | ||
859 | static inline void exit_io_context(void) {} | 860 | static inline void exit_io_context(void) |
861 | { | ||
862 | } | ||
860 | 863 | ||
861 | #endif /* CONFIG_BLOCK */ | 864 | #endif /* CONFIG_BLOCK */ |
862 | 865 | ||