From: Nick Piggin as_completed_request() can be called for requests which were not generated by the generic block layer. Handle these, to avoid a subsequent WARN_ON (at least). drivers/block/as-iosched.c | 3 +++ 1 files changed, 3 insertions(+) diff -puN drivers/block/as-iosched.c~as-badness-warning-fix drivers/block/as-iosched.c --- 25/drivers/block/as-iosched.c~as-badness-warning-fix 2003-11-04 21:04:59.000000000 -0800 +++ 25-akpm/drivers/block/as-iosched.c 2003-11-04 21:04:59.000000000 -0800 @@ -915,6 +915,9 @@ static void as_completed_request(request if (unlikely(arq->state != AS_RQ_DISPATCHED)) return; + if (!blk_fs_request(rq)) + return; + if (ad->changed_batch && ad->nr_dispatched == 1) { WARN_ON(ad->batch_data_dir == arq->is_sync); _