Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3b632cf0 authored by Keith Busch's avatar Keith Busch Committed by Jens Axboe
Browse files

blk-mq: don't allow queue entering for a dying queue



If the queue is going away, don't let new allocs or queueing
happen on it. Go through the normal wait process, and exit with
ENODEV in that case.

Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent a4391c64
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -82,8 +82,10 @@ static int blk_mq_queue_enter(struct request_queue *q)

	__percpu_counter_add(&q->mq_usage_counter, 1, 1000000);
	smp_wmb();
	/* we have problems to freeze the queue if it's initializing */
	if (!blk_queue_bypass(q) || !blk_queue_init_done(q))

	/* we have problems freezing the queue if it's initializing */
	if (!blk_queue_dying(q) &&
	    (!blk_queue_bypass(q) || !blk_queue_init_done(q)))
		return 0;

	__percpu_counter_add(&q->mq_usage_counter, -1, 1000000);