The updated version of this has been merged into for-next: https://git.samba.org/?p=sfrench/cifs-2.6.git;a=commitdiff;h=0b3d0ef9840f7be202393ca9116b857f6f793715 -- Best regards, Pavel Shilovsky пн, 30 сент. 2019 г. в 10:06, Pavel Shilovsky <piastryyy@xxxxxxxxx>: > > Mark inode for force revalidation if LOOKUP_REVAL flag is set. > This tells the client to actually send a QueryInfo request to > the server to obtain the latest metadata in case a directory > or a file were changed remotely. > > Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Pavel Shilovsky <pshilov@xxxxxxxxxxxxx> > --- > fs/cifs/dir.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c > index be424e81e3ad..91a46b01d748 100644 > --- a/fs/cifs/dir.c > +++ b/fs/cifs/dir.c > @@ -738,10 +738,16 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry, > static int > cifs_d_revalidate(struct dentry *direntry, unsigned int flags) > { > + struct inode *inode; > + > if (flags & LOOKUP_RCU) > return -ECHILD; > > if (d_really_is_positive(direntry)) { > + inode = d_inode(direntry); > + if (flags & LOOKUP_REVAL) > + CIFS_I(inode)->time = 0; /* force reval */ > + > if (cifs_revalidate_dentry(direntry)) > return 0; > else { > @@ -752,7 +758,7 @@ cifs_d_revalidate(struct dentry *direntry, unsigned int flags) > * attributes will have been updated by > * cifs_revalidate_dentry(). > */ > - if (IS_AUTOMOUNT(d_inode(direntry)) && > + if (IS_AUTOMOUNT(inode) && > !(direntry->d_flags & DCACHE_NEED_AUTOMOUNT)) { > spin_lock(&direntry->d_lock); > direntry->d_flags |= DCACHE_NEED_AUTOMOUNT; > -- > 2.17.1 >