From: Sagi Grimberg Date: Tue, 21 May 2024 12:58:40 +0000 (+0300) Subject: nfs: propagate readlink errors in nfs_symlink_filler X-Git-Tag: v6.10-rc4~27^2~6 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=134d0b3f2440cdddd12fc3444c9c0f62331ce6fc;p=linux-block.git nfs: propagate readlink errors in nfs_symlink_filler There is an inherent race where a symlink file may have been overriden (by a different client) between lookup and readlink, resulting in a spurious EIO error returned to userspace. Fix this by propagating back ESTALE errors such that the vfs will retry the lookup/get_link (similar to nfs4_file_open) at least once. Cc: Dan Aloni Signed-off-by: Sagi Grimberg Reviewed-by: Jeff Layton Signed-off-by: Trond Myklebust --- diff --git a/fs/nfs/symlink.c b/fs/nfs/symlink.c index 0e27a2e4e68b..13818129d268 100644 --- a/fs/nfs/symlink.c +++ b/fs/nfs/symlink.c @@ -41,7 +41,7 @@ static int nfs_symlink_filler(struct file *file, struct folio *folio) error: folio_set_error(folio); folio_unlock(folio); - return -EIO; + return error; } static const char *nfs_get_link(struct dentry *dentry,