Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'nfs-for-5.17-3' of git://git.linux-nfs.org/projects/anna/linux-nfs

Pull NFS client bugfixes from Anna Schumaker:

- Fix unnecessary changeattr revalidations

- Fix resolving symlinks during directory lookups

- Don't report writeback errors in nfs_getattr()

* tag 'nfs-for-5.17-3' of git://git.linux-nfs.org/projects/anna/linux-nfs:
NFS: Do not report writeback errors in nfs_getattr()
NFS: LOOKUP_DIRECTORY is also ok with symlinks
NFS: Remove an incorrect revalidation in nfs4_update_changeattr_locked()

+6 -10
+2 -2
fs/nfs/dir.c
··· 2010 2010 if (!res) { 2011 2011 inode = d_inode(dentry); 2012 2012 if ((lookup_flags & LOOKUP_DIRECTORY) && inode && 2013 - !S_ISDIR(inode->i_mode)) 2013 + !(S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode))) 2014 2014 res = ERR_PTR(-ENOTDIR); 2015 2015 else if (inode && S_ISREG(inode->i_mode)) 2016 2016 res = ERR_PTR(-EOPENSTALE); 2017 2017 } else if (!IS_ERR(res)) { 2018 2018 inode = d_inode(res); 2019 2019 if ((lookup_flags & LOOKUP_DIRECTORY) && inode && 2020 - !S_ISDIR(inode->i_mode)) { 2020 + !(S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode))) { 2021 2021 dput(res); 2022 2022 res = ERR_PTR(-ENOTDIR); 2023 2023 } else if (inode && S_ISREG(inode->i_mode)) {
+3 -6
fs/nfs/inode.c
··· 853 853 } 854 854 855 855 /* Flush out writes to the server in order to update c/mtime. */ 856 - if ((request_mask & (STATX_CTIME|STATX_MTIME)) && 857 - S_ISREG(inode->i_mode)) { 858 - err = filemap_write_and_wait(inode->i_mapping); 859 - if (err) 860 - goto out; 861 - } 856 + if ((request_mask & (STATX_CTIME | STATX_MTIME)) && 857 + S_ISREG(inode->i_mode)) 858 + filemap_write_and_wait(inode->i_mapping); 862 859 863 860 /* 864 861 * We may force a getattr if the user cares about atime.
+1 -2
fs/nfs/nfs4proc.c
··· 1229 1229 NFS_INO_INVALID_ACCESS | NFS_INO_INVALID_ACL | 1230 1230 NFS_INO_INVALID_SIZE | NFS_INO_INVALID_OTHER | 1231 1231 NFS_INO_INVALID_BLOCKS | NFS_INO_INVALID_NLINK | 1232 - NFS_INO_INVALID_MODE | NFS_INO_INVALID_XATTR | 1233 - NFS_INO_REVAL_PAGECACHE; 1232 + NFS_INO_INVALID_MODE | NFS_INO_INVALID_XATTR; 1234 1233 nfsi->attrtimeo = NFS_MINATTRTIMEO(inode); 1235 1234 } 1236 1235 nfsi->attrtimeo_timestamp = jiffies;