nfs: propagate readlink errors in nfs_symlink_filler
[ Upstream commit 134d0b3f2440cdddd12fc3444c9c0f62331ce6fc ] 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 <dan.aloni@vastdata.com> Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
899604a7c9
commit
f1e52990b0
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user