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: Mike Anderson <andmike@linux.vnet.ibm.com> Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
parent
2920ebbd65
commit
e78042e5b8
1 changed files with 2 additions and 2 deletions
|
@ -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)
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue