History

block, sx8: kill blk_insert_request()

The only user left for blk_insert_request() is sx8 and it can be trivially switched to use blk_execute_rq_nowait() - special requests aren't included in io stat and sx8 doesn't use block layer tagging. Switch sx8 and kill blk_insert_requeset(). This patch doesn't introduce any functional difference. Only compile tested.

Tejun Heo committed 14 years ago

Commit 1ba64ed1 parent dc47ce93 files · +8 −53Browse files

Unified · Split

3 files
  1. block/blk-core.c +0 −48
  2. drivers/block/sx8.c +8 −4
  3. include/linux/blkdev.h +0 −1
block/blk-core.c+0−48
@@ -1010,54 +1010,6 @@ static void add_acct_request(struct request_queue *q, struct request *rq, · 1009 unmodified lines
10101010 __elv_add_request(q, rq, where);
10111011 }
10121012
1013−/**
1014− * blk_insert_request - insert a special request into a request queue
1015− * @q: request queue where request should be inserted
1016− * @rq: request to be inserted
1017− * @at_head: insert request at head or tail of queue
1018− * @data: private data
1019− *
1020− * Description:
1021− * Many block devices need to execute commands asynchronously, so they don't
1022− * block the whole kernel from preemption during request execution. This is
1023− * accomplished normally by inserting aritficial requests tagged as
1024− * REQ_TYPE_SPECIAL in to the corresponding request queue, and letting them
1025− * be scheduled for actual execution by the request queue.
1026− *
1027− * We have the option of inserting the head or the tail of the queue.
1028− * Typically we use the tail for new ioctls and so forth. We use the head
1029− * of the queue for things like a QUEUE_FULL message from a device, or a
1030− * host that is unable to accept a particular command.
1031− */
1032−void blk_insert_request(struct request_queue *q, struct request *rq,
1033− int at_head, void *data)
1034−{
1035− int where = at_head ? ELEVATOR_INSERT_FRONT : ELEVATOR_INSERT_BACK;
1036− unsigned long flags;
1037−
1038− /*
1039− * tell I/O scheduler that this isn't a regular read/write (ie it
1040− * must not attempt merges on this) and that it acts as a soft
1041− * barrier
1042− */
1043− rq->cmd_type = REQ_TYPE_SPECIAL;
1044−
1045− rq->special = data;
1046−
1047− spin_lock_irqsave(q->queue_lock, flags);
1048−
1049− /*
1050− * If command is tagged, release the tag
1051− */
1052− if (blk_rq_tagged(rq))
1053− blk_queue_end_tag(q, rq);
1054−
1055− add_acct_request(q, rq, where);
1056− __blk_run_queue(q);
1057− spin_unlock_irqrestore(q->queue_lock, flags);
1058−}
1059−EXPORT_SYMBOL(blk_insert_request);
1060−
10611013 static void part_round_stats_single(int cpu, struct hd_struct *part,
10621014 unsigned long now)
10631015 {
drivers/block/sx8.c+8−4
@@ -619,8 +619,10 @@ static int carm_array_info (struct carm_host *host, unsigned int array_idx) · 618 unmodified lines
619619 host->state == HST_DEV_SCAN);
620620 spin_unlock_irq(&host->lock);
621621
622− DPRINTK("blk_insert_request, tag == %u\n", idx);
623− blk_insert_request(host->oob_q, crq->rq, 1, crq);
622+ DPRINTK("blk_execute_rq_nowait, tag == %u\n", idx);
623+ crq->rq->cmd_type = REQ_TYPE_SPECIAL;
624+ crq->rq->special = crq;
625+ blk_execute_rq_nowait(host->oob_q, NULL, crq->rq, true, NULL);
624626
625627 return 0;
626628
@@ -658,8 +660,10 @@ static int carm_send_special (struct carm_host *host, carm_sspc_t func) · 31 unmodified lines
658660 BUG_ON(rc < 0);
659661 crq->msg_bucket = (u32) rc;
660662
661− DPRINTK("blk_insert_request, tag == %u\n", idx);
662− blk_insert_request(host->oob_q, crq->rq, 1, crq);
663+ DPRINTK("blk_execute_rq_nowait, tag == %u\n", idx);
664+ crq->rq->cmd_type = REQ_TYPE_SPECIAL;
665+ crq->rq->special = crq;
666+ blk_execute_rq_nowait(host->oob_q, NULL, crq->rq, true, NULL);
663667
664668 return 0;
665669 }
include/linux/blkdev.h+0−1
@@ -660,7 +660,6 @@ extern void __blk_put_request(struct request_queue *, struct request *); · 659 unmodified lines
660660 extern struct request *blk_get_request(struct request_queue *, int, gfp_t);
661661 extern struct request *blk_make_request(struct request_queue *, struct bio *,
662662 gfp_t);
663−extern void blk_insert_request(struct request_queue *, struct request *, int, void *);
664663 extern void blk_requeue_request(struct request_queue *, struct request *);
665664 extern void blk_add_request_payload(struct request *rq, struct page *page,
666665 unsigned int len);