diff options
-rw-r--r-- | block/ll_rw_blk.c | 24 | ||||
-rw-r--r-- | drivers/ide/ide-cd.c | 10 | ||||
-rw-r--r-- | include/linux/blkdev.h | 1 |
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 | **/ | ||
2750 | void 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 | |||
2759 | EXPORT_SYMBOL(blk_attempt_remerge); | ||
2760 | |||
2761 | static void init_request_from_bio(struct request *req, struct bio *bio) | 2737 | static 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); | |||
592 | extern void blk_put_request(struct request *); | 592 | extern void blk_put_request(struct request *); |
593 | extern void __blk_put_request(request_queue_t *, struct request *); | 593 | extern void __blk_put_request(request_queue_t *, struct request *); |
594 | extern void blk_end_sync_rq(struct request *rq, int error); | 594 | extern void blk_end_sync_rq(struct request *rq, int error); |
595 | extern void blk_attempt_remerge(request_queue_t *, struct request *); | ||
596 | extern struct request *blk_get_request(request_queue_t *, int, gfp_t); | 595 | extern struct request *blk_get_request(request_queue_t *, int, gfp_t); |
597 | extern void blk_insert_request(request_queue_t *, struct request *, int, void *); | 596 | extern void blk_insert_request(request_queue_t *, struct request *, int, void *); |
598 | extern void blk_requeue_request(request_queue_t *, struct request *); | 597 | extern void blk_requeue_request(request_queue_t *, struct request *); |