On Sat, Oct 09, 2021 at 11:47:13AM +0800, Ming Lei wrote: > + spin_lock_irqsave(&q->queue_lock, flags); > + if (!q->quiesce_depth++) > + blk_queue_flag_set(QUEUE_FLAG_QUIESCED, q); We can get rid of the QUEUE_FLAG_QUIESCED flag now and just look at ->quiesce_depth directly. > + spin_lock_irqsave(&q->queue_lock, flags); > + WARN_ON_ONCE(q->quiesce_depth <= 0); > + if (q->quiesce_depth > 0 && !--q->quiesce_depth) { if (WARN_ON_ONCE(q->quiesce_depth <= 0)) ; /* oops */ else if (!--q->quiesce_depth) run_queue = true; Otherwise this looks sensible.