]>
Commit | Line | Data |
---|---|---|
2cb7cef9 BS |
1 | From: Mike Anderson <andmike@linux.vnet.ibm.com> |
2 | Date: Thu, 30 Oct 2008 02:16:20 -0700 | |
3 | Subject: blk: move blk_delete_timer call in end_that_request_last | |
4 | References: bnc#440076 bnc#440173 | |
5 | ||
6 | Move the calling blk_delete_timer to later in end_that_request_last to | |
7 | address an issue where blkdev_dequeue_request may have add a timer for the | |
8 | request. | |
9 | ||
10 | Signed-off-by: Mike Anderson <andmike@linux.vnet.ibm.com> | |
11 | Signed-off-by: Tejun Heo <teheo@suse.de> | |
12 | --- | |
13 | block/blk-core.c | 4 ++-- | |
14 | 1 file changed, 2 insertions(+), 2 deletions(-) | |
15 | ||
16 | --- a/block/blk-core.c | |
17 | +++ b/block/blk-core.c | |
18 | @@ -1665,8 +1665,6 @@ static void end_that_request_last(struct | |
19 | { | |
20 | struct gendisk *disk = req->rq_disk; | |
21 | ||
22 | - blk_delete_timer(req); | |
23 | - | |
24 | if (blk_rq_tagged(req)) | |
25 | blk_queue_end_tag(req->q, req); | |
26 | ||
27 | @@ -1676,6 +1674,8 @@ static void end_that_request_last(struct | |
28 | if (unlikely(laptop_mode) && blk_fs_request(req)) | |
29 | laptop_io_completion(); | |
30 | ||
31 | + blk_delete_timer(req); | |
32 | + | |
33 | /* | |
34 | * Account IO completion. bar_rq isn't accounted as a normal | |
35 | * IO on queueing nor completion. Accounting the containing |