|
@@ -643,7 +643,7 @@ static inline void blk_free_request(struct request_queue *q, struct request *rq)
|
|
|
}
|
|
|
|
|
|
static struct request *
|
|
|
-blk_alloc_request(struct request_queue *q, int rw, int priv, gfp_t gfp_mask)
|
|
|
+blk_alloc_request(struct request_queue *q, int flags, int priv, gfp_t gfp_mask)
|
|
|
{
|
|
|
struct request *rq = mempool_alloc(q->rq.rq_pool, gfp_mask);
|
|
|
|
|
@@ -652,7 +652,7 @@ blk_alloc_request(struct request_queue *q, int rw, int priv, gfp_t gfp_mask)
|
|
|
|
|
|
blk_rq_init(q, rq);
|
|
|
|
|
|
- rq->cmd_flags = rw | REQ_ALLOCED;
|
|
|
+ rq->cmd_flags = flags | REQ_ALLOCED;
|
|
|
|
|
|
if (priv) {
|
|
|
if (unlikely(elv_set_request(q, rq, gfp_mask))) {
|
|
@@ -792,6 +792,8 @@ static struct request *get_request(struct request_queue *q, int rw_flags,
|
|
|
if (priv)
|
|
|
rl->elvpriv++;
|
|
|
|
|
|
+ if (blk_queue_io_stat(q))
|
|
|
+ rw_flags |= REQ_IO_STAT;
|
|
|
spin_unlock_irq(q->queue_lock);
|
|
|
|
|
|
rq = blk_alloc_request(q, rw_flags, priv, gfp_mask);
|