• Neil Brown's avatar
    VFS: fix recent breakage of FS_REVAL_DOT · 176306f5
    Neil Brown authored
    Commit 1f36f774 broke FS_REVAL_DOT semantics.
    
    In particular, before this patch, the command
       ls -l
    in an NFS mounted directory would always check if the directory on the server
    had changed and if so would flush and refill the pagecache for the dir.
    After this patch, the same "ls -l" will repeatedly return stale date until
    the cached attributes for the directory time out.
    
    The following patch fixes this by ensuring the d_revalidate is called by
    do_last when "." is being looked-up.
    link_path_walk has already called d_revalidate, but in that case LOOKUP_OPEN
    is not set so nfs_lookup_verify_inode chooses not to do any validation.
    
    The following patch restores the original behaviour.
    
    Cc: stable@kernel.org
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    176306f5
namei.c 70.6 KB