diff options
Diffstat (limited to 'block')
-rw-r--r-- | block/ll_rw_blk.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c index eac48bec1479..7eb36c53f4b7 100644 --- a/block/ll_rw_blk.c +++ b/block/ll_rw_blk.c | |||
@@ -3452,7 +3452,12 @@ void end_that_request_last(struct request *req, int uptodate) | |||
3452 | if (unlikely(laptop_mode) && blk_fs_request(req)) | 3452 | if (unlikely(laptop_mode) && blk_fs_request(req)) |
3453 | laptop_io_completion(); | 3453 | laptop_io_completion(); |
3454 | 3454 | ||
3455 | if (disk && blk_fs_request(req)) { | 3455 | /* |
3456 | * Account IO completion. bar_rq isn't accounted as a normal | ||
3457 | * IO on queueing nor completion. Accounting the containing | ||
3458 | * request is enough. | ||
3459 | */ | ||
3460 | if (disk && blk_fs_request(req) && req != &req->q->bar_rq) { | ||
3456 | unsigned long duration = jiffies - req->start_time; | 3461 | unsigned long duration = jiffies - req->start_time; |
3457 | const int rw = rq_data_dir(req); | 3462 | const int rw = rq_data_dir(req); |
3458 | 3463 | ||