aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--block/ll_rw_blk.c24
-rw-r--r--drivers/ide/ide-cd.c10
-rw-r--r--include/linux/blkdev.h1
3 files changed, 0 insertions, 35 deletions
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
index c182c9f4b2c4..c44d6fe9f6ce 100644
--- a/block/ll_rw_blk.c
+++ b/block/ll_rw_blk.c
@@ -2734,30 +2734,6 @@ static inline int attempt_front_merge(request_queue_t *q, struct request *rq)
2734 return 0; 2734 return 0;
2735} 2735}
2736 2736
2737/**
2738 * blk_attempt_remerge - attempt to remerge active head with next request
2739 * @q: The &request_queue_t belonging to the device
2740 * @rq: The head request (usually)
2741 *
2742 * Description:
2743 * For head-active devices, the queue can easily be unplugged so quickly
2744 * that proper merging is not done on the front request. This may hurt
2745 * performance greatly for some devices. The block layer cannot safely
2746 * do merging on that first request for these queues, but the driver can
2747 * call this function and make it happen any way. Only the driver knows
2748 * when it is safe to do so.
2749 **/
2750void blk_attempt_remerge(request_queue_t *q, struct request *rq)
2751{
2752 unsigned long flags;
2753
2754 spin_lock_irqsave(q->queue_lock, flags);
2755 attempt_back_merge(q, rq);
2756 spin_unlock_irqrestore(q->queue_lock, flags);
2757}
2758
2759EXPORT_SYMBOL(blk_attempt_remerge);
2760
2761static void init_request_from_bio(struct request *req, struct bio *bio) 2737static void init_request_from_bio(struct request *req, struct bio *bio)
2762{ 2738{
2763 req->flags |= REQ_CMD; 2739 req->flags |= REQ_CMD;
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index d31117eb95aa..e4d55ad32d2f 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -1332,8 +1332,6 @@ static ide_startstop_t cdrom_start_read (ide_drive_t *drive, unsigned int block)
1332 if (cdrom_read_from_buffer(drive)) 1332 if (cdrom_read_from_buffer(drive))
1333 return ide_stopped; 1333 return ide_stopped;
1334 1334
1335 blk_attempt_remerge(drive->queue, rq);
1336
1337 /* Clear the local sector buffer. */ 1335 /* Clear the local sector buffer. */
1338 info->nsectors_buffered = 0; 1336 info->nsectors_buffered = 0;
1339 1337
@@ -1874,14 +1872,6 @@ static ide_startstop_t cdrom_start_write(ide_drive_t *drive, struct request *rq)
1874 return ide_stopped; 1872 return ide_stopped;
1875 } 1873 }
1876 1874
1877 /*
1878 * for dvd-ram and such media, it's a really big deal to get
1879 * big writes all the time. so scour the queue and attempt to
1880 * remerge requests, often the plugging will not have had time
1881 * to do this properly
1882 */
1883 blk_attempt_remerge(drive->queue, rq);
1884
1885 info->nsectors_buffered = 0; 1875 info->nsectors_buffered = 0;
1886 1876
1887 /* use dma, if possible. we don't need to check more, since we 1877 /* use dma, if possible. we don't need to check more, since we
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index fb0985377421..96b233991685 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -592,7 +592,6 @@ extern void generic_make_request(struct bio *bio);
592extern void blk_put_request(struct request *); 592extern void blk_put_request(struct request *);
593extern void __blk_put_request(request_queue_t *, struct request *); 593extern void __blk_put_request(request_queue_t *, struct request *);
594extern void blk_end_sync_rq(struct request *rq, int error); 594extern void blk_end_sync_rq(struct request *rq, int error);
595extern void blk_attempt_remerge(request_queue_t *, struct request *);
596extern struct request *blk_get_request(request_queue_t *, int, gfp_t); 595extern struct request *blk_get_request(request_queue_t *, int, gfp_t);
597extern void blk_insert_request(request_queue_t *, struct request *, int, void *); 596extern void blk_insert_request(request_queue_t *, struct request *, int, void *);
598extern void blk_requeue_request(request_queue_t *, struct request *); 597extern void blk_requeue_request(request_queue_t *, struct request *);