Commit e78042e5 authored by Mike Anderson's avatar Mike Anderson Committed by Jens Axboe

blk: move blk_delete_timer call in end_that_request_last

Move the calling  blk_delete_timer to later in end_that_request_last to
address an issue where blkdev_dequeue_request may have add a timer for the
request.
Signed-off-by: default avatarMike Anderson <andmike@linux.vnet.ibm.com>
Acked-by: default avatarTejun Heo <tj@kernel.org>
Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent 2920ebbd
...@@ -1770,8 +1770,6 @@ static void end_that_request_last(struct request *req, int error) ...@@ -1770,8 +1770,6 @@ static void end_that_request_last(struct request *req, int error)
{ {
struct gendisk *disk = req->rq_disk; struct gendisk *disk = req->rq_disk;
blk_delete_timer(req);
if (blk_rq_tagged(req)) if (blk_rq_tagged(req))
blk_queue_end_tag(req->q, req); blk_queue_end_tag(req->q, req);
...@@ -1781,6 +1779,8 @@ static void end_that_request_last(struct request *req, int error) ...@@ -1781,6 +1779,8 @@ static void end_that_request_last(struct request *req, int error)
if (unlikely(laptop_mode) && blk_fs_request(req)) if (unlikely(laptop_mode) && blk_fs_request(req))
laptop_io_completion(); laptop_io_completion();
blk_delete_timer(req);
/* /*
* Account IO completion. bar_rq isn't accounted as a normal * Account IO completion. bar_rq isn't accounted as a normal
* IO on queueing nor completion. Accounting the containing * IO on queueing nor completion. Accounting the containing
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment