]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/2.6.15.2/kill-blk_attempt_remerge.patch
Fixes for 4.19
[thirdparty/kernel/stable-queue.git] / releases / 2.6.15.2 / kill-blk_attempt_remerge.patch
CommitLineData
e3badfd3
CW
1From stable-bounces@linux.kernel.org Thu Jan 12 19:27:22 2006
2Date: Mon, 9 Jan 2006 11:15:33 -0800
3From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
4Subject: [BLOCK] Kill blk_attempt_remerge()
5
6From: Jens Axboe <axboe@suse.de>
7
8[BLOCK] Kill blk_attempt_remerge()
9
10It's a broken interface, it's done way too late. And apparently it triggers
11slab problems in recent kernels as well (most likely after the generic dispatch
12code was merged). So kill it, ide-cd is the only user of it.
13
14Signed-off-by: Jens Axboe <axboe@suse.de>
15chrisw: backport to 2.6.15 tree
16Signed-off-by: Chris Wright <chrisw@sous-sol.org>
3640b354 17Signed-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 *);