]>
Commit | Line | Data |
---|---|---|
e3badfd3 CW |
1 | From stable-bounces@linux.kernel.org Thu Jan 12 19:27:22 2006 |
2 | Date: Mon, 9 Jan 2006 11:15:33 -0800 | |
3 | From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org> | |
4 | Subject: [BLOCK] Kill blk_attempt_remerge() | |
5 | ||
6 | From: Jens Axboe <axboe@suse.de> | |
7 | ||
8 | [BLOCK] Kill blk_attempt_remerge() | |
9 | ||
10 | It's a broken interface, it's done way too late. And apparently it triggers | |
11 | slab problems in recent kernels as well (most likely after the generic dispatch | |
12 | code was merged). So kill it, ide-cd is the only user of it. | |
13 | ||
14 | Signed-off-by: Jens Axboe <axboe@suse.de> | |
15 | chrisw: backport to 2.6.15 tree | |
16 | Signed-off-by: Chris Wright <chrisw@sous-sol.org> | |
3640b354 | 17 | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
e3badfd3 | 18 | --- |
e3badfd3 CW |
19 | block/ll_rw_blk.c | 24 ------------------------ |
20 | drivers/ide/ide-cd.c | 10 ---------- | |
21 | include/linux/blkdev.h | 1 - | |
22 | 3 files changed, 35 deletions(-) | |
23 | ||
a595cb2a GKH |
24 | --- linux-2.6.15.1.orig/block/ll_rw_blk.c |
25 | +++ linux-2.6.15.1/block/ll_rw_blk.c | |
e3badfd3 CW |
26 | @@ -2609,30 +2609,6 @@ static inline int attempt_front_merge(re |
27 | return 0; | |
28 | } | |
29 | ||
30 | -/** | |
31 | - * blk_attempt_remerge - attempt to remerge active head with next request | |
32 | - * @q: The &request_queue_t belonging to the device | |
33 | - * @rq: The head request (usually) | |
34 | - * | |
35 | - * Description: | |
36 | - * For head-active devices, the queue can easily be unplugged so quickly | |
37 | - * that proper merging is not done on the front request. This may hurt | |
38 | - * performance greatly for some devices. The block layer cannot safely | |
39 | - * do merging on that first request for these queues, but the driver can | |
40 | - * call this function and make it happen any way. Only the driver knows | |
41 | - * when it is safe to do so. | |
42 | - **/ | |
43 | -void blk_attempt_remerge(request_queue_t *q, struct request *rq) | |
44 | -{ | |
45 | - unsigned long flags; | |
46 | - | |
47 | - spin_lock_irqsave(q->queue_lock, flags); | |
48 | - attempt_back_merge(q, rq); | |
49 | - spin_unlock_irqrestore(q->queue_lock, flags); | |
50 | -} | |
51 | - | |
52 | -EXPORT_SYMBOL(blk_attempt_remerge); | |
53 | - | |
54 | static int __make_request(request_queue_t *q, struct bio *bio) | |
55 | { | |
56 | struct request *req; | |
a595cb2a GKH |
57 | --- linux-2.6.15.1.orig/drivers/ide/ide-cd.c |
58 | +++ linux-2.6.15.1/drivers/ide/ide-cd.c | |
e3badfd3 CW |
59 | @@ -1332,8 +1332,6 @@ static ide_startstop_t cdrom_start_read |
60 | if (cdrom_read_from_buffer(drive)) | |
61 | return ide_stopped; | |
62 | ||
63 | - blk_attempt_remerge(drive->queue, rq); | |
64 | - | |
65 | /* Clear the local sector buffer. */ | |
66 | info->nsectors_buffered = 0; | |
67 | ||
68 | @@ -1874,14 +1872,6 @@ static ide_startstop_t cdrom_start_write | |
69 | return ide_stopped; | |
70 | } | |
71 | ||
72 | - /* | |
73 | - * for dvd-ram and such media, it's a really big deal to get | |
74 | - * big writes all the time. so scour the queue and attempt to | |
75 | - * remerge requests, often the plugging will not have had time | |
76 | - * to do this properly | |
77 | - */ | |
78 | - blk_attempt_remerge(drive->queue, rq); | |
79 | - | |
80 | info->nsectors_buffered = 0; | |
81 | ||
82 | /* use dma, if possible. we don't need to check more, since we | |
a595cb2a GKH |
83 | --- linux-2.6.15.1.orig/include/linux/blkdev.h |
84 | +++ linux-2.6.15.1/include/linux/blkdev.h | |
e3badfd3 CW |
85 | @@ -559,7 +559,6 @@ extern void register_disk(struct gendisk |
86 | extern void generic_make_request(struct bio *bio); | |
87 | extern void blk_put_request(struct request *); | |
88 | extern void blk_end_sync_rq(struct request *rq); | |
89 | -extern void blk_attempt_remerge(request_queue_t *, struct request *); | |
90 | extern struct request *blk_get_request(request_queue_t *, int, gfp_t); | |
91 | extern void blk_insert_request(request_queue_t *, struct request *, int, void *); | |
92 | extern void blk_requeue_request(request_queue_t *, struct request *); |