Commit ea33e6c3 authored by Trond Myklebust's avatar Trond Myklebust

NFSv4: Fix issues in nfs4_discover_server_trunking

- Ensure that we exit with ENOENT if the call to ops->get_clid_cred()
  fails.
- Handle the case where ops->detect_trunking() exits with an
  unexpected error, and return EIO.
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 23631227
...@@ -1876,8 +1876,8 @@ int nfs4_discover_server_trunking(struct nfs_client *clp, ...@@ -1876,8 +1876,8 @@ int nfs4_discover_server_trunking(struct nfs_client *clp,
i = 0; i = 0;
mutex_lock(&nfs_clid_init_mutex); mutex_lock(&nfs_clid_init_mutex);
status = -ENOENT;
again: again:
status = -ENOENT;
cred = ops->get_clid_cred(clp); cred = ops->get_clid_cred(clp);
if (cred == NULL) if (cred == NULL)
goto out_unlock; goto out_unlock;
...@@ -1916,6 +1916,11 @@ int nfs4_discover_server_trunking(struct nfs_client *clp, ...@@ -1916,6 +1916,11 @@ int nfs4_discover_server_trunking(struct nfs_client *clp,
case -NFS4ERR_NOT_SAME: /* FixMe: implement recovery case -NFS4ERR_NOT_SAME: /* FixMe: implement recovery
* in nfs4_exchange_id */ * in nfs4_exchange_id */
status = -EKEYEXPIRED; status = -EKEYEXPIRED;
break;
default:
pr_warn("NFS: %s unhandled error %d. Exiting with error EIO\n",
__func__, status);
status = -EIO;
} }
out_unlock: out_unlock:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment