Commit 134d0b3f authored by Sagi Grimberg's avatar Sagi Grimberg Committed by Trond Myklebust
Browse files

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 <dan.aloni@vastdata.com>
Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 6cbe14f4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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,