On Thu, Jul 21, 2016 at 05:18:57AM +0100, Al Viro wrote: > Hash insertion does smp_store_release(). Hash chain traversal - > smp_read_barrier_depends(). On ppc the former is lwsync, while the latter > is no-op, so it boils down to > store dentry->d_name.name > lwsync > store mangled address of dentry into hash chain > vs. > fetch mangled address of dentry > demangle it > fetch dentry->d_name.name > which should be enough - lwsync paired with address dependency gives the > ordering. IOW, it's not about the barriers in __d_alloc(), it's those in > hlist_bl_add_head_rcu() and hlist_bl_for_each_entry_rcu(). > > And it couldn't be a missing barrier anyway - crash dump shows that > sucker with NULL ->d_name.name. FWIW, originally I thought it might be a missing barrier; Paul McKenney had pointed to barriers in RCU lists primitives. And crashdump is pretty much conclusive - broken barriers or not, having a store in some thread *not* seen by crashdump writer is hard to believe... -- 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