On Tue, May 14, 2013 at 03:51:01PM +0200, Oleg Nesterov wrote: > On 05/13, Kent Overstreet wrote: > > > > +int percpu_ref_kill(struct percpu_ref *ref) > > +{ > > + unsigned __percpu *pcpu_count; > > + unsigned __percpu *old; > > + unsigned count = 0; > > + int cpu; > > + > > + pcpu_count = ACCESS_ONCE(ref->pcpu_count); > > + > > + do { > > + if (!pcpu_count) > > + return 0; > > + > > + old = pcpu_count; > > + pcpu_count = cmpxchg(&ref->pcpu_count, old, NULL); > > + } while (pcpu_count != old); > > This is purely cosmetic, feel free to ignore. But afaics all we > need is > > pcpu_count = ACCESS_ONCE(ref->pcpu_count); > if (!cmpxchg(&ref->pcpu_count, pcpu_count, NULL)) > return 0; Whoops, yep. I was ripping out the dynamic stuff from my dynamic percpu refcount code and missed that bit. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html