blk-mq: don't overwrite rq->mq_ctx
authorJens Axboe <axboe@fb.com>
Wed, 24 Aug 2016 21:34:35 +0000 (15:34 -0600)
committerJens Axboe <axboe@fb.com>
Wed, 24 Aug 2016 21:34:35 +0000 (15:34 -0600)
commite57690fe009b2ab0cee8a57f53be634540e49c9d
tree58bbfa1e382f1445e277e9d1833ac131fc0a9ae2
parent4d70dca4eadf2f95abe389116ac02b8439c2d16c
blk-mq: don't overwrite rq->mq_ctx

We do this in a few places, if the CPU is offline. This isn't allowed,
though, since on multi queue hardware, we can't just move a request
from one software queue to another, if they map to different hardware
queues. The request and tag isn't valid on another hardware queue.

This can happen if plugging races with CPU offlining. But it does
no harm, since it can only happen in the window where we are
currently busy freezing the queue and flushing IO, in preparation
for redoing the software <-> hardware queue mappings.

Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-mq.c