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:
Dominique Martinet 2015-06-04 17:04:17 +02:00 коммит произвёл Trond Myklebust
Родитель d67fa4d85a
Коммит c86c90c656
1 изменённых файлов: 2 добавлений и 0 удалений

Просмотреть файл

@ -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;