Teach blk_congestion_wait() to return the number of jiffies remaining. This is for debug, but it is also nicely consistent. --- 25-akpm/drivers/block/ll_rw_blk.c | 6 ++++-- 25-akpm/include/linux/blkdev.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff -puN drivers/block/ll_rw_blk.c~blk_congestion_wait-return-remaining drivers/block/ll_rw_blk.c --- 25/drivers/block/ll_rw_blk.c~blk_congestion_wait-return-remaining Wed Mar 10 15:38:13 2004 +++ 25-akpm/drivers/block/ll_rw_blk.c Wed Mar 10 15:38:46 2004 @@ -2040,15 +2040,17 @@ EXPORT_SYMBOL(blk_put_request); * If no queues are congested then just wait for the next request to be * returned. */ -void blk_congestion_wait(int rw, long timeout) +long blk_congestion_wait(int rw, long timeout) { + long ret; DEFINE_WAIT(wait); wait_queue_head_t *wqh = &congestion_wqh[rw]; blk_run_queues(); prepare_to_wait(wqh, &wait, TASK_UNINTERRUPTIBLE); - io_schedule_timeout(timeout); + ret = io_schedule_timeout(timeout); finish_wait(wqh, &wait); + return ret; } EXPORT_SYMBOL(blk_congestion_wait); diff -puN include/linux/blkdev.h~blk_congestion_wait-return-remaining include/linux/blkdev.h --- 25/include/linux/blkdev.h~blk_congestion_wait-return-remaining Wed Mar 10 15:38:13 2004 +++ 25-akpm/include/linux/blkdev.h Wed Mar 10 15:38:13 2004 @@ -592,7 +592,7 @@ extern int blk_queue_init_tags(request_q extern void blk_queue_free_tags(request_queue_t *); extern int blk_queue_resize_tags(request_queue_t *, int); extern void blk_queue_invalidate_tags(request_queue_t *); -extern void blk_congestion_wait(int rw, long timeout); +extern long blk_congestion_wait(int rw, long timeout); extern void blk_rq_bio_prep(request_queue_t *, struct request *, struct bio *); extern void blk_rq_prep_restart(struct request *); _