|
@@ -5046,7 +5046,7 @@ int nfs4_proc_setclientid(struct nfs_client *clp, u32 program,
|
|
|
struct nfs4_setclientid setclientid = {
|
|
|
.sc_verifier = &sc_verifier,
|
|
|
.sc_prog = program,
|
|
|
- .sc_cb_ident = clp->cl_cb_ident,
|
|
|
+ .sc_clnt = clp,
|
|
|
};
|
|
|
struct rpc_message msg = {
|
|
|
.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_SETCLIENTID],
|
|
@@ -5076,6 +5076,12 @@ int nfs4_proc_setclientid(struct nfs_client *clp, u32 program,
|
|
|
nfs4_init_nonuniform_client_string(clp,
|
|
|
setclientid.sc_name,
|
|
|
sizeof(setclientid.sc_name));
|
|
|
+
|
|
|
+ if (!clp->cl_owner_id) {
|
|
|
+ status = -ENOMEM;
|
|
|
+ goto out;
|
|
|
+ }
|
|
|
+
|
|
|
/* cb_client4 */
|
|
|
setclientid.sc_netid_len =
|
|
|
nfs4_init_callback_netid(clp,
|
|
@@ -5085,9 +5091,9 @@ int nfs4_proc_setclientid(struct nfs_client *clp, u32 program,
|
|
|
sizeof(setclientid.sc_uaddr), "%s.%u.%u",
|
|
|
clp->cl_ipaddr, port >> 8, port & 255);
|
|
|
|
|
|
- dprintk("NFS call setclientid auth=%s, '%.*s'\n",
|
|
|
+ dprintk("NFS call setclientid auth=%s, '%s'\n",
|
|
|
clp->cl_rpcclient->cl_auth->au_ops->au_name,
|
|
|
- setclientid.sc_name_len, setclientid.sc_name);
|
|
|
+ clp->cl_owner_id);
|
|
|
task = rpc_run_task(&task_setup_data);
|
|
|
if (IS_ERR(task)) {
|
|
|
status = PTR_ERR(task);
|
|
@@ -6850,9 +6856,14 @@ static int _nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred,
|
|
|
nfs4_init_boot_verifier(clp, &verifier);
|
|
|
args.id_len = nfs4_init_uniform_client_string(clp, args.id,
|
|
|
sizeof(args.id));
|
|
|
- dprintk("NFS call exchange_id auth=%s, '%.*s'\n",
|
|
|
+ if (!clp->cl_owner_id) {
|
|
|
+ status = -ENOMEM;
|
|
|
+ goto out;
|
|
|
+ }
|
|
|
+
|
|
|
+ dprintk("NFS call exchange_id auth=%s, '%s'\n",
|
|
|
clp->cl_rpcclient->cl_auth->au_ops->au_name,
|
|
|
- args.id_len, args.id);
|
|
|
+ clp->cl_owner_id);
|
|
|
|
|
|
res.server_owner = kzalloc(sizeof(struct nfs41_server_owner),
|
|
|
GFP_NOFS);
|