> +void blk_set_preempt_only(struct request_queue *q, bool preempt_only) > +{ > + unsigned long flags; > + > + spin_lock_irqsave(q->queue_lock, flags); > + if (preempt_only) > + queue_flag_set(QUEUE_FLAG_PREEMPT_ONLY, q); > + else > + queue_flag_clear(QUEUE_FLAG_PREEMPT_ONLY, q); > + spin_unlock_irqrestore(q->queue_lock, flags); > +} > +EXPORT_SYMBOL(blk_set_preempt_only); Why do we even need this helper? The lock doesn't make sense to me, and it would just much easier to set/clear the flag from the driver.