block: get rid of elv_insert() interface
Merge it with __elv_add_request(), it's pretty pointless to have a function with only two callers. The main interface is elv_add_request()/__elv_add_request(). Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
This commit is contained in:
parent
8182924bc5
commit
b710a48055
3 changed files with 17 additions and 23 deletions
|
@ -261,7 +261,7 @@ static bool blk_kick_flush(struct request_queue *q)
|
||||||
q->flush_rq.end_io = flush_end_io;
|
q->flush_rq.end_io = flush_end_io;
|
||||||
|
|
||||||
q->flush_pending_idx ^= 1;
|
q->flush_pending_idx ^= 1;
|
||||||
elv_insert(q, &q->flush_rq, ELEVATOR_INSERT_REQUEUE);
|
__elv_add_request(q, &q->flush_rq, ELEVATOR_INSERT_REQUEUE);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -281,7 +281,7 @@ static void flush_data_end_io(struct request *rq, int error)
|
||||||
* blk_insert_flush - insert a new FLUSH/FUA request
|
* blk_insert_flush - insert a new FLUSH/FUA request
|
||||||
* @rq: request to insert
|
* @rq: request to insert
|
||||||
*
|
*
|
||||||
* To be called from elv_insert() for %ELEVATOR_INSERT_FLUSH insertions.
|
* To be called from __elv_add_request() for %ELEVATOR_INSERT_FLUSH insertions.
|
||||||
* @rq is being submitted. Analyze what needs to be done and put it on the
|
* @rq is being submitted. Analyze what needs to be done and put it on the
|
||||||
* right queue.
|
* right queue.
|
||||||
*
|
*
|
||||||
|
|
|
@ -610,7 +610,7 @@ void elv_requeue_request(struct request_queue *q, struct request *rq)
|
||||||
|
|
||||||
rq->cmd_flags &= ~REQ_STARTED;
|
rq->cmd_flags &= ~REQ_STARTED;
|
||||||
|
|
||||||
elv_insert(q, rq, ELEVATOR_INSERT_REQUEUE);
|
__elv_add_request(q, rq, ELEVATOR_INSERT_REQUEUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void elv_drain_elevator(struct request_queue *q)
|
void elv_drain_elevator(struct request_queue *q)
|
||||||
|
@ -655,12 +655,25 @@ void elv_quiesce_end(struct request_queue *q)
|
||||||
queue_flag_clear(QUEUE_FLAG_ELVSWITCH, q);
|
queue_flag_clear(QUEUE_FLAG_ELVSWITCH, q);
|
||||||
}
|
}
|
||||||
|
|
||||||
void elv_insert(struct request_queue *q, struct request *rq, int where)
|
void __elv_add_request(struct request_queue *q, struct request *rq, int where)
|
||||||
{
|
{
|
||||||
trace_block_rq_insert(q, rq);
|
trace_block_rq_insert(q, rq);
|
||||||
|
|
||||||
rq->q = q;
|
rq->q = q;
|
||||||
|
|
||||||
|
BUG_ON(rq->cmd_flags & REQ_ON_PLUG);
|
||||||
|
|
||||||
|
if (rq->cmd_flags & REQ_SOFTBARRIER) {
|
||||||
|
/* barriers are scheduling boundary, update end_sector */
|
||||||
|
if (rq->cmd_type == REQ_TYPE_FS ||
|
||||||
|
(rq->cmd_flags & REQ_DISCARD)) {
|
||||||
|
q->end_sector = rq_end_sector(rq);
|
||||||
|
q->boundary_rq = rq;
|
||||||
|
}
|
||||||
|
} else if (!(rq->cmd_flags & REQ_ELVPRIV) &&
|
||||||
|
where == ELEVATOR_INSERT_SORT)
|
||||||
|
where = ELEVATOR_INSERT_BACK;
|
||||||
|
|
||||||
switch (where) {
|
switch (where) {
|
||||||
case ELEVATOR_INSERT_REQUEUE:
|
case ELEVATOR_INSERT_REQUEUE:
|
||||||
case ELEVATOR_INSERT_FRONT:
|
case ELEVATOR_INSERT_FRONT:
|
||||||
|
@ -722,24 +735,6 @@ void elv_insert(struct request_queue *q, struct request *rq, int where)
|
||||||
BUG();
|
BUG();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void __elv_add_request(struct request_queue *q, struct request *rq, int where)
|
|
||||||
{
|
|
||||||
BUG_ON(rq->cmd_flags & REQ_ON_PLUG);
|
|
||||||
|
|
||||||
if (rq->cmd_flags & REQ_SOFTBARRIER) {
|
|
||||||
/* barriers are scheduling boundary, update end_sector */
|
|
||||||
if (rq->cmd_type == REQ_TYPE_FS ||
|
|
||||||
(rq->cmd_flags & REQ_DISCARD)) {
|
|
||||||
q->end_sector = rq_end_sector(rq);
|
|
||||||
q->boundary_rq = rq;
|
|
||||||
}
|
|
||||||
} else if (!(rq->cmd_flags & REQ_ELVPRIV) &&
|
|
||||||
where == ELEVATOR_INSERT_SORT)
|
|
||||||
where = ELEVATOR_INSERT_BACK;
|
|
||||||
|
|
||||||
elv_insert(q, rq, where);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(__elv_add_request);
|
EXPORT_SYMBOL(__elv_add_request);
|
||||||
|
|
||||||
void elv_add_request(struct request_queue *q, struct request *rq, int where)
|
void elv_add_request(struct request_queue *q, struct request *rq, int where)
|
||||||
|
|
|
@ -101,7 +101,6 @@ extern void elv_dispatch_sort(struct request_queue *, struct request *);
|
||||||
extern void elv_dispatch_add_tail(struct request_queue *, struct request *);
|
extern void elv_dispatch_add_tail(struct request_queue *, struct request *);
|
||||||
extern void elv_add_request(struct request_queue *, struct request *, int);
|
extern void elv_add_request(struct request_queue *, struct request *, int);
|
||||||
extern void __elv_add_request(struct request_queue *, struct request *, int);
|
extern void __elv_add_request(struct request_queue *, struct request *, int);
|
||||||
extern void elv_insert(struct request_queue *, struct request *, int);
|
|
||||||
extern int elv_merge(struct request_queue *, struct request **, struct bio *);
|
extern int elv_merge(struct request_queue *, struct request **, struct bio *);
|
||||||
extern int elv_try_merge(struct request *, struct bio *);
|
extern int elv_try_merge(struct request *, struct bio *);
|
||||||
extern void elv_merge_requests(struct request_queue *, struct request *,
|
extern void elv_merge_requests(struct request_queue *, struct request *,
|
||||||
|
|
Loading…
Add table
Reference in a new issue