NFSv4: handle nfs4_get_referral failure
nfs4_proc_lookup_common is supposed to return a posix error, we have to handle any error returned that isn't errno Reported-by: Olga Kornievskaia <kolga@netapp.com> Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com> Signed-off-by: Dominique Martinet <dominique.martinet@cea.fr> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
Родитель
d67fa4d85a
Коммит
c86c90c656
|
@ -3355,6 +3355,8 @@ static int nfs4_proc_lookup_common(struct rpc_clnt **clnt, struct inode *dir,
|
||||||
goto out;
|
goto out;
|
||||||
case -NFS4ERR_MOVED:
|
case -NFS4ERR_MOVED:
|
||||||
err = nfs4_get_referral(client, dir, name, fattr, fhandle);
|
err = nfs4_get_referral(client, dir, name, fattr, fhandle);
|
||||||
|
if (err == -NFS4ERR_MOVED)
|
||||||
|
err = nfs4_handle_exception(NFS_SERVER(dir), err, &exception);
|
||||||
goto out;
|
goto out;
|
||||||
case -NFS4ERR_WRONGSEC:
|
case -NFS4ERR_WRONGSEC:
|
||||||
err = -EPERM;
|
err = -EPERM;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче