On Thu, 2018-03-01 at 09:51 +0100, Johannes Thumshirn wrote:
> On Wed, Feb 28, 2018 at 11:28:16AM -0800, Bart Van Assche wrote:
> > static bool blk_poll_stats_enable(struct request_queue *q)
> > {
> > - if (test_bit(QUEUE_FLAG_POLL_STATS, &q->queue_flags) ||
> > - test_and_set_bit(QUEUE_FLAG_POLL_STATS, &q->queue_flags))
> > + if (blk_queue_flag_test_and_set(QUEUE_FLAG_POLL_STATS, q))
>
> Is this one really needed or just for symmetry? Even if something
> would change the queue_flags after the first test_bit() call, the
> test_and_set_bit() would still do the right thing, wouldn't it?
Hello Johannes,
Since blk_poll_stats_enable() is called from the hot path (polling code) I
think we need the optimization of calling test_bit() before calling
test_and_set_bit(). I will restore the test_bit() call.
Bart.