From 210573202d7aa0610cace9589792a736ea11e4d1 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Tue, 23 May 2006 11:23:49 +0200 Subject: [PATCH] --- yaml --- r: 26932 b: refs/heads/master c: fd0ff8aa1d95a896b3627bc62d42d6d002ac0bc3 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/block/ll_rw_blk.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 5c4db4e738d7..c90acce609c4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0f0410823792ae0ecb45f2578598b115835ffdbb +refs/heads/master: fd0ff8aa1d95a896b3627bc62d42d6d002ac0bc3 diff --git a/trunk/block/ll_rw_blk.c b/trunk/block/ll_rw_blk.c index eac48bec1479..7eb36c53f4b7 100644 --- a/trunk/block/ll_rw_blk.c +++ b/trunk/block/ll_rw_blk.c @@ -3452,7 +3452,12 @@ void end_that_request_last(struct request *req, int uptodate) if (unlikely(laptop_mode) && blk_fs_request(req)) laptop_io_completion(); - if (disk && blk_fs_request(req)) { + /* + * Account IO completion. bar_rq isn't accounted as a normal + * IO on queueing nor completion. Accounting the containing + * request is enough. + */ + if (disk && blk_fs_request(req) && req != &req->q->bar_rq) { unsigned long duration = jiffies - req->start_time; const int rw = rq_data_dir(req);