Re: NFS stuck in nfs_lookup_revalidate

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux