Re: [PATCH 1/1] block: Use RCU in blk_mq_[un]quiesce_tagset() instead of set->tag_list_lock

From: Bart Van Assche

Date: Thu Dec 04 2025 - 13:22:40 EST


On 12/4/25 8:11 AM, Mohamed Khalfella wrote:
@@ -4302,6 +4302,8 @@ static void blk_mq_del_queue_tag_set(struct request_queue *q)
blk_mq_update_tag_set_shared(set, false);
}
mutex_unlock(&set->tag_list_lock);
+
+ synchronize_rcu();
INIT_LIST_HEAD(&q->tag_set_list);
}
Yikes. This change slows down all blk_mq_del_queue_tag_set() callers.
Please fix the reported deadlock by modifying the NVMe code instead of
slowing down the block layer.

Thanks,

Bart.