diff options
author | Dominique Martinet <dominique.martinet@cea.fr> | 2015-06-04 17:04:17 +0200 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2015-06-10 18:28:02 -0400 |
commit | c86c90c656fa2c94c2491dd86cf09501193f0dad (patch) | |
tree | f66299d0b5ad321346b2c9f07b2fc74827160b84 /fs | |
parent | d67fa4d85a2143b46052b2e9ccc6749a4c97b2de (diff) | |
download | linux-c86c90c656fa2c94c2491dd86cf09501193f0dad.tar.gz linux-c86c90c656fa2c94c2491dd86cf09501193f0dad.tar.bz2 linux-c86c90c656fa2c94c2491dd86cf09501193f0dad.zip |
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>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/nfs/nfs4proc.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 55e1e3af23a3..d689ea37be84 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -3355,6 +3355,8 @@ static int nfs4_proc_lookup_common(struct rpc_clnt **clnt, struct inode *dir, goto out; case -NFS4ERR_MOVED: err = nfs4_get_referral(client, dir, name, fattr, fhandle); + if (err == -NFS4ERR_MOVED) + err = nfs4_handle_exception(NFS_SERVER(dir), err, &exception); goto out; case -NFS4ERR_WRONGSEC: err = -EPERM; |