Patch from Nick Piggin Hmm... I found something: This new version puts us into the next antic_status mode (ANTIC_WAIT_NEXT) if there is no as_io_context. This gives us a timer. Previously there would be no way out from ad->as_io_context == NULL && antic_status == 1 AFAIKS. drivers/block/as-iosched.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/block/as-iosched.c~as-state-tracking-fix drivers/block/as-iosched.c --- 25/drivers/block/as-iosched.c~as-state-tracking-fix 2003-03-07 10:12:50.000000000 -0800 +++ 25-akpm/drivers/block/as-iosched.c 2003-03-07 10:12:50.000000000 -0800 @@ -837,7 +837,7 @@ static void as_antic_waitreq(struct as_d if (ad->antic_status == ANTIC_OFF) { ant_stats.anticipate_starts++; - if (ad->as_io_context && test_bit(AS_REQ_FINISHED, + if (!ad->as_io_context || test_bit(AS_REQ_FINISHED, &ad->as_io_context->state)) as_antic_waitnext(ad); else _