Commit 867d1191 authored by Tejun Heo's avatar Tejun Heo Committed by James Bottomley

[SCSI] remove requeue feature from blk_insert_request()

blk_insert_request() has a unobivous feature of requeuing a
request setting REQ_SPECIAL|REQ_SOFTBARRIER.  SCSI midlayer
was the only user and as previous patches removed the usage,
remove the feature from blk_insert_request().  Only special
requests should be queued with blk_insert_request().  All
requeueing should go through blk_requeue_request().
Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent beb6617d
...@@ -2038,7 +2038,6 @@ EXPORT_SYMBOL(blk_requeue_request); ...@@ -2038,7 +2038,6 @@ EXPORT_SYMBOL(blk_requeue_request);
* @rq: request to be inserted * @rq: request to be inserted
* @at_head: insert request at head or tail of queue * @at_head: insert request at head or tail of queue
* @data: private data * @data: private data
* @reinsert: true if request it a reinsertion of previously processed one
* *
* Description: * Description:
* Many block devices need to execute commands asynchronously, so they don't * Many block devices need to execute commands asynchronously, so they don't
...@@ -2053,8 +2052,9 @@ EXPORT_SYMBOL(blk_requeue_request); ...@@ -2053,8 +2052,9 @@ EXPORT_SYMBOL(blk_requeue_request);
* host that is unable to accept a particular command. * host that is unable to accept a particular command.
*/ */
void blk_insert_request(request_queue_t *q, struct request *rq, void blk_insert_request(request_queue_t *q, struct request *rq,
int at_head, void *data, int reinsert) int at_head, void *data)
{ {
int where = at_head ? ELEVATOR_INSERT_FRONT : ELEVATOR_INSERT_BACK;
unsigned long flags; unsigned long flags;
/* /*
...@@ -2071,20 +2071,12 @@ void blk_insert_request(request_queue_t *q, struct request *rq, ...@@ -2071,20 +2071,12 @@ void blk_insert_request(request_queue_t *q, struct request *rq,
/* /*
* If command is tagged, release the tag * If command is tagged, release the tag
*/ */
if (reinsert) if (blk_rq_tagged(rq))
blk_requeue_request(q, rq); blk_queue_end_tag(q, rq);
else {
int where = ELEVATOR_INSERT_BACK;
if (at_head)
where = ELEVATOR_INSERT_FRONT;
if (blk_rq_tagged(rq)) drive_stat_acct(rq, rq->nr_sectors, 1);
blk_queue_end_tag(q, rq); __elv_add_request(q, rq, where, 0);
drive_stat_acct(rq, rq->nr_sectors, 1);
__elv_add_request(q, rq, where, 0);
}
if (blk_queue_plugged(q)) if (blk_queue_plugged(q))
__generic_unplug_device(q); __generic_unplug_device(q);
else else
......
...@@ -723,7 +723,7 @@ static int pd_special_command(struct pd_unit *disk, ...@@ -723,7 +723,7 @@ static int pd_special_command(struct pd_unit *disk,
rq.ref_count = 1; rq.ref_count = 1;
rq.waiting = &wait; rq.waiting = &wait;
rq.end_io = blk_end_sync_rq; rq.end_io = blk_end_sync_rq;
blk_insert_request(disk->gd->queue, &rq, 0, func, 0); blk_insert_request(disk->gd->queue, &rq, 0, func);
wait_for_completion(&wait); wait_for_completion(&wait);
rq.waiting = NULL; rq.waiting = NULL;
if (rq.errors) if (rq.errors)
......
...@@ -614,7 +614,7 @@ static int carm_array_info (struct carm_host *host, unsigned int array_idx) ...@@ -614,7 +614,7 @@ static int carm_array_info (struct carm_host *host, unsigned int array_idx)
spin_unlock_irq(&host->lock); spin_unlock_irq(&host->lock);
DPRINTK("blk_insert_request, tag == %u\n", idx); DPRINTK("blk_insert_request, tag == %u\n", idx);
blk_insert_request(host->oob_q, crq->rq, 1, crq, 0); blk_insert_request(host->oob_q, crq->rq, 1, crq);
return 0; return 0;
...@@ -653,7 +653,7 @@ static int carm_send_special (struct carm_host *host, carm_sspc_t func) ...@@ -653,7 +653,7 @@ static int carm_send_special (struct carm_host *host, carm_sspc_t func)
crq->msg_bucket = (u32) rc; crq->msg_bucket = (u32) rc;
DPRINTK("blk_insert_request, tag == %u\n", idx); DPRINTK("blk_insert_request, tag == %u\n", idx);
blk_insert_request(host->oob_q, crq->rq, 1, crq, 0); blk_insert_request(host->oob_q, crq->rq, 1, crq);
return 0; return 0;
} }
......
...@@ -92,7 +92,7 @@ int scsi_insert_special_req(struct scsi_request *sreq, int at_head) ...@@ -92,7 +92,7 @@ int scsi_insert_special_req(struct scsi_request *sreq, int at_head)
*/ */
sreq->sr_request->flags &= ~REQ_DONTPREP; sreq->sr_request->flags &= ~REQ_DONTPREP;
blk_insert_request(sreq->sr_device->request_queue, sreq->sr_request, blk_insert_request(sreq->sr_device->request_queue, sreq->sr_request,
at_head, sreq, 0); at_head, sreq);
return 0; return 0;
} }
......
...@@ -544,7 +544,7 @@ extern void blk_end_sync_rq(struct request *rq); ...@@ -544,7 +544,7 @@ extern void blk_end_sync_rq(struct request *rq);
extern void blk_attempt_remerge(request_queue_t *, struct request *); extern void blk_attempt_remerge(request_queue_t *, struct request *);
extern void __blk_attempt_remerge(request_queue_t *, struct request *); extern void __blk_attempt_remerge(request_queue_t *, struct request *);
extern struct request *blk_get_request(request_queue_t *, int, int); extern struct request *blk_get_request(request_queue_t *, int, int);
extern void blk_insert_request(request_queue_t *, struct request *, int, void *, int); extern void blk_insert_request(request_queue_t *, struct request *, int, void *);
extern void blk_requeue_request(request_queue_t *, struct request *); extern void blk_requeue_request(request_queue_t *, struct request *);
extern void blk_plug_device(request_queue_t *); extern void blk_plug_device(request_queue_t *);
extern int blk_remove_plug(request_queue_t *); extern int blk_remove_plug(request_queue_t *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment