On Tue, Apr 25, 2023 at 12:49 PM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > The last time this came up I shared your view however Mark argued for > the READ_ONCE() thusly: > > https://lore.kernel.org/all/Y71LoCIl+IFdy9D8@FVFF77S0Q05N/T/#u Hmm. Yes, I think Mark is right. It's not that 'old' might be wrong - that doesn't matter because cmpxchg will work it out - it's just that 'new' might not be consistent with the old value we then use. Ok. I'll try to remember this, but maybe it might be worth documenting. Jens - I don't think this actually matters for the f_mode value issue, since the only thing that might change is that FMODE_NOWAIT bit, but I was clearly wrong on READ_ONCE(). So that loop should have it, just to have the right pattern after all. My bad. Linus