Commit 85acb3ba authored by Shaohua Li's avatar Shaohua Li Committed by Jens Axboe
Browse files

block: set request_list for request



Legacy queue sets request's request_list, mq doesn't. This makes mq does
the same thing, so we can find cgroup of a request. Note, we really
only use blkg field of request_list, it's pointless to allocate mempool
for request_list in mq case.

Signed-off-by: default avatarShaohua Li <shli@fb.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent eca8b53a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -718,7 +718,7 @@ static void free_request_size(void *element, void *data)
int blk_init_rl(struct request_list *rl, struct request_queue *q,
		gfp_t gfp_mask)
{
	if (unlikely(rl->rq_pool))
	if (unlikely(rl->rq_pool) || q->mq_ops)
		return 0;

	rl->q = q;
+5 −0
Original line number Diff line number Diff line
@@ -481,6 +481,9 @@ void blk_mq_free_request(struct request *rq)

	wbt_done(q->rq_wb, &rq->issue_stat);

	if (blk_rq_rl(rq))
		blk_put_rl(blk_rq_rl(rq));

	clear_bit(REQ_ATOM_STARTED, &rq->atomic_flags);
	clear_bit(REQ_ATOM_POLL_SLEPT, &rq->atomic_flags);
	if (rq->tag != -1)
@@ -1532,6 +1535,8 @@ static void blk_mq_bio_to_request(struct request *rq, struct bio *bio)
{
	blk_init_request_from_bio(rq, bio);

	blk_rq_set_rl(rq, blk_get_rl(rq->q, bio));

	blk_account_io_start(rq, true);
}