> +int blk_mq_freeze_queue_wait_timeout(struct request_queue *q, > + unsigned long timeout) > +{ > + return wait_event_timeout(q->mq_freeze_wq, > + percpu_ref_is_zero(&q->q_usage_counter), > + timeout); > +} > +EXPORT_SYMBOL_GPL(blk_mq_freeze_queue_wait_timeout); Can you just add the timeout argument to blk_mq_freeze_queue_wait? Existing callers can pass 0, which is interpreted as no timeout by the low-level wait code.