Re: [PATCH] Fix race with shared tag queue maps

Jens Axboe
2007-09-14T07:48:01Z

On Thu, Sep 13 2007, Linus Torvalds wrote:
>
>
> On Thu, 13 Sep 2007, Jens Axboe wrote:
> >
> > My bad, I think I added the smp_mb__before_clear_bit() when it was
> > __test_and_set_bit() like in the first hunk.
>
> Ahh, that wouldn't work at all. The "__test_and_set_bit()" thing isn't
> atomic at all, and no amount of memory barriers around it would help
> (you'd need to use real locking, but at that point the memory barriers are
> pointless anyway).

Hence the change, it looks like an oversight from when we didn't allow
sharing of tag maps (then the queue lock provided adequate protection).

> > + /*
> > + * Ensure ordering between ->tag_index[tag] clear and tag clear
> > + */
> > + smp_mb__after_clear_bit();
>
> You still left this one. But never mind - I already edited your original
> patch and it's in my tree with both of those things removed.

I took at look at the committed patch and it looks fine, thanks Linus.

--
Jens Axboe