]> git.ipfire.org Git - ipfire-2.x.git/blob - src/patches/suse-2.6.27.39/patches.drivers/block-del-timer-after-dequeue
Imported linux-2.6.27.39 suse/xen patches.
[ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.drivers / block-del-timer-after-dequeue
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