Only reads count as reads. drivers/block/as-iosched.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN drivers/block/as-iosched.c~as-nr_reads-fix drivers/block/as-iosched.c --- 25/drivers/block/as-iosched.c~as-nr_reads-fix 2003-02-27 02:05:01.000000000 -0800 +++ 25-akpm/drivers/block/as-iosched.c 2003-02-27 02:05:14.000000000 -0800 @@ -469,7 +469,8 @@ static void as_remove_request(request_qu } as_del_arq_rb(ad, arq); if (ON_RB(&arq->rb_node)) { - arq->as_io_context->nr_reads--; + if (data_dir == READ) + arq->as_io_context->nr_reads--; put_as_io_context(&arq->as_io_context); } } _