[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>
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 3e36107..1d79b8d 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -1,6 +1,7 @@
#ifndef _LINUX_BLKDEV_H
#define _LINUX_BLKDEV_H
+#include <linux/sched.h>
#include <linux/major.h>
#include <linux/genhd.h>
#include <linux/list.h>
@@ -848,7 +849,7 @@
static inline long blk_congestion_wait(int rw, long timeout)
{
- return timeout;
+ return io_schedule_timeout(timeout);
}
static inline long nr_blockdev_pages(void)
@@ -856,7 +857,9 @@
return 0;
}
-static inline void exit_io_context(void) {}
+static inline void exit_io_context(void)
+{
+}
#endif /* CONFIG_BLOCK */