From: Mike Anderson Date: Thu, 30 Oct 2008 02:16:20 -0700 Subject: blk: move blk_delete_timer call in end_that_request_last References: bnc#440076 bnc#440173 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 Signed-off-by: Tejun Heo --- block/blk-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/block/blk-core.c +++ b/block/blk-core.c @@ -1665,8 +1665,6 @@ static void end_that_request_last(struct { struct gendisk *disk = req->rq_disk; - blk_delete_timer(req); - if (blk_rq_tagged(req)) blk_queue_end_tag(req->q, req); @@ -1676,6 +1674,8 @@ static void end_that_request_last(struct if (unlikely(laptop_mode) && blk_fs_request(req)) laptop_io_completion(); + blk_delete_timer(req); + /* * Account IO completion. bar_rq isn't accounted as a normal * IO on queueing nor completion. Accounting the containing