On Thu, Jun 05, 2025 at 12:00:44AM +0530, Santosh Pradhan wrote: > I am not sure but I vaguely remember that there was some similar issue and > Neil introduced store_release_wake_up() which puts a full barrier smp_mb() > before calling wake_up_var(). > > index d0e0b435a843..e754e3e478a5 100644 > --- a/fs/nfs/dir.c > +++ b/fs/nfs/dir.c > @@ -1830,6 +1830,7 @@ static void unblock_revalidate(struct dentry *dentry) > { > /* store_release ensures wait_var_event() sees the update */ > smp_store_release(&dentry->d_fsdata, NULL); > + smp_mb(); > wake_up_var(&dentry->d_fsdata); > } Hello, yes, upon rereading exact definition of smp_store_release(), I am reasonably sure the comment is wrong and smp_mb() should be used, it ensures the right ordering between store to d_fsdata and wait queue data, not the smp_store_release(&dentry->d_fsdata,...). Best regards, Zdenek Salvet salvet@xxxxxxxxxxx Institute of Computer Science of Masaryk University, Brno, Czech Republic and CESNET, z.s.p.o., Prague, Czech Republic Phone: ++420-549 49 6534 Fax: ++420-541 212 747 ---------------------------------------------------------------------------- Teamwork is essential -- it allows you to blame someone else.