History

[PATCH] Remove queue merging hooks

We have full flexibility of merging parameters now, so we can remove the hooks that define back/front/request merge strategies. Nobody is using them anymore.

Jens Axboe committed 19 years ago

Commit 1aa4f241 parent 29852593 files · +12 −17Browse files

Unified · Split

3 files
  1. block/ll_rw_blk.c +6 −9
  2. drivers/scsi/scsi_lib.c +1 −1
  3. include/linux/blkdev.h +5 −7
block/ll_rw_blk.c+6−9
@@ -1405,8 +1405,7 @@ static inline int ll_new_hw_segment(request_queue_t *q, · 1404 unmodified lines
14051405 return 1;
14061406 }
14071407
1408−static int ll_back_merge_fn(request_queue_t *q, struct request *req,
1409− struct bio *bio)
1408+int ll_back_merge_fn(request_queue_t *q, struct request *req, struct bio *bio)
14101409 {
14111410 unsigned short max_sectors;
14121411 int len;
@@ -1442,6 +1441,7 @@ static int ll_back_merge_fn(request_queue_t *q, struct request *req, · 29 unmodified lines
14421441
14431442 return ll_new_hw_segment(q, req, bio);
14441443 }
1444+EXPORT_SYMBOL(ll_back_merge_fn);
14451445
14461446 static int ll_front_merge_fn(request_queue_t *q, struct request *req,
14471447 struct bio *bio)
@@ -1912,9 +1912,6 @@ blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id) · 464 unmodified lines
19121912 }
19131913
19141914 q->request_fn = rfn;
1915− q->back_merge_fn = ll_back_merge_fn;
1916− q->front_merge_fn = ll_front_merge_fn;
1917− q->merge_requests_fn = ll_merge_requests_fn;
19181915 q->prep_rq_fn = NULL;
19191916 q->unplug_fn = generic_unplug_device;
19201917 q->queue_flags = (1 << QUEUE_FLAG_CLUSTER);
@@ -2371,7 +2368,7 @@ static int __blk_rq_map_user(request_queue_t *q, struct request *rq, · 450 unmodified lines
23712368 spin_lock_irq(q->queue_lock);
23722369 if (!rq->bio)
23732370 blk_rq_bio_prep(q, rq, bio);
2374− else if (!q->back_merge_fn(q, rq, bio)) {
2371+ else if (!ll_back_merge_fn(q, rq, bio)) {
23752372 ret = -EINVAL;
23762373 spin_unlock_irq(q->queue_lock);
23772374 goto unmap_bio;
@@ -2820,7 +2817,7 @@ static int attempt_merge(request_queue_t *q, struct request *req, · 442 unmodified lines
28202817 * will have updated segment counts, update sector
28212818 * counts here.
28222819 */
2823− if (!q->merge_requests_fn(q, req, next))
2820+ if (!ll_merge_requests_fn(q, req, next))
28242821 return 0;
28252822
28262823 /*
@@ -2937,7 +2934,7 @@ static int __make_request(request_queue_t *q, struct bio *bio) · 110 unmodified lines
29372934 case ELEVATOR_BACK_MERGE:
29382935 BUG_ON(!rq_mergeable(req));
29392936
2940− if (!q->back_merge_fn(q, req, bio))
2937+ if (!ll_back_merge_fn(q, req, bio))
29412938 break;
29422939
29432940 blk_add_trace_bio(q, bio, BLK_TA_BACKMERGE);
@@ -2954,7 +2951,7 @@ static int __make_request(request_queue_t *q, struct bio *bio) · 10 unmodified lines
29542951 case ELEVATOR_FRONT_MERGE:
29552952 BUG_ON(!rq_mergeable(req));
29562953
2957− if (!q->front_merge_fn(q, req, bio))
2954+ if (!ll_front_merge_fn(q, req, bio))
29582955 break;
29592956
29602957 blk_add_trace_bio(q, bio, BLK_TA_FRONTMERGE);
drivers/scsi/scsi_lib.c+1−1
@@ -265,7 +265,7 @@ static int scsi_merge_bio(struct request *rq, struct bio *bio) · 264 unmodified lines
265265
266266 if (!rq->bio)
267267 blk_rq_bio_prep(q, rq, bio);
268− else if (!q->back_merge_fn(q, rq, bio))
268+ else if (!ll_back_merge_fn(q, rq, bio))
269269 return -EINVAL;
270270 else {
271271 rq->biotail->bi_next = bio;
include/linux/blkdev.h+5−7
@@ -331,10 +331,6 @@ struct request_pm_state · 330 unmodified lines
331331
332332 #include <linux/elevator.h>
333333
334−typedef int (merge_request_fn) (request_queue_t *, struct request *,
335− struct bio *);
336−typedef int (merge_requests_fn) (request_queue_t *, struct request *,
337− struct request *);
338334 typedef void (request_fn_proc) (request_queue_t *q);
339335 typedef int (make_request_fn) (request_queue_t *q, struct bio *bio);
340336 typedef int (prep_rq_fn) (request_queue_t *, struct request *);
@@ -376,9 +372,6 @@ struct request_queue · 35 unmodified lines
376372 struct request_list rq;
377373
378374 request_fn_proc *request_fn;
379− merge_request_fn *back_merge_fn;
380− merge_request_fn *front_merge_fn;
381− merge_requests_fn *merge_requests_fn;
382375 make_request_fn *make_request_fn;
383376 prep_rq_fn *prep_rq_fn;
384377 unplug_fn *unplug_fn;
@@ -648,6 +641,11 @@ extern int scsi_cmd_ioctl(struct file *, struct gendisk *, unsigned int, void __ · 263 unmodified lines
648641 extern int sg_scsi_ioctl(struct file *, struct request_queue *,
649642 struct gendisk *, struct scsi_ioctl_command __user *);
650643
644+/*
645+ * Temporary export, until SCSI gets fixed up.
646+ */
647+extern int ll_back_merge_fn(request_queue_t *, struct request *, struct bio *);
648+
651649 /*
652650 * A queue has just exitted congestion. Note this in the global counter of
653651 * congested queues, and wake up anyone who was waiting for requests to be