|
@@ -2038,7 +2038,6 @@ EXPORT_SYMBOL(blk_requeue_request);
|
|
|
* @rq: request to be inserted
|
|
|
* @at_head: insert request at head or tail of queue
|
|
|
* @data: private data
|
|
|
- * @reinsert: true if request it a reinsertion of previously processed one
|
|
|
*
|
|
|
* Description:
|
|
|
* Many block devices need to execute commands asynchronously, so they don't
|
|
@@ -2053,8 +2052,9 @@ EXPORT_SYMBOL(blk_requeue_request);
|
|
|
* host that is unable to accept a particular command.
|
|
|
*/
|
|
|
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;
|
|
|
|
|
|
/*
|
|
@@ -2071,20 +2071,12 @@ void blk_insert_request(request_queue_t *q, struct request *rq,
|
|
|
/*
|
|
|
* If command is tagged, release the tag
|
|
|
*/
|
|
|
- if (reinsert)
|
|
|
- blk_requeue_request(q, rq);
|
|
|
- else {
|
|
|
- int where = ELEVATOR_INSERT_BACK;
|
|
|
-
|
|
|
- if (at_head)
|
|
|
- where = ELEVATOR_INSERT_FRONT;
|
|
|
+ if (blk_rq_tagged(rq))
|
|
|
+ blk_queue_end_tag(q, rq);
|
|
|
|
|
|
- if (blk_rq_tagged(rq))
|
|
|
- blk_queue_end_tag(q, rq);
|
|
|
+ drive_stat_acct(rq, rq->nr_sectors, 1);
|
|
|
+ __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))
|
|
|
__generic_unplug_device(q);
|
|
|
else
|