> +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.