> + /* > + * Ensure that the effect of blk_set_preempt_only() is globally > + * visible before unfreezing the queue. > + */ > + if (err == 0) > + synchronize_rcu(); I don't understand why we'd need this. The flag is set both under a spinlock and a mutex that are unlocked right after. That should gurantee all the visibility we'll need.