|
@@ -4029,42 +4029,28 @@ int nfs4_proc_setclientid(struct nfs_client *clp, u32 program,
|
|
|
.rpc_resp = res,
|
|
|
.rpc_cred = cred,
|
|
|
};
|
|
|
- int loop = 0;
|
|
|
- int status;
|
|
|
|
|
|
+ /* nfs_client_id4 */
|
|
|
nfs4_init_boot_verifier(clp, &sc_verifier);
|
|
|
-
|
|
|
- for(;;) {
|
|
|
- rcu_read_lock();
|
|
|
- setclientid.sc_name_len = scnprintf(setclientid.sc_name,
|
|
|
- sizeof(setclientid.sc_name), "%s/%s %s %s %u",
|
|
|
- clp->cl_ipaddr,
|
|
|
- rpc_peeraddr2str(clp->cl_rpcclient,
|
|
|
- RPC_DISPLAY_ADDR),
|
|
|
- rpc_peeraddr2str(clp->cl_rpcclient,
|
|
|
- RPC_DISPLAY_PROTO),
|
|
|
- clp->cl_rpcclient->cl_auth->au_ops->au_name,
|
|
|
- clp->cl_id_uniquifier);
|
|
|
- setclientid.sc_netid_len = scnprintf(setclientid.sc_netid,
|
|
|
+ rcu_read_lock();
|
|
|
+ setclientid.sc_name_len = scnprintf(setclientid.sc_name,
|
|
|
+ sizeof(setclientid.sc_name), "%s/%s %s",
|
|
|
+ clp->cl_ipaddr,
|
|
|
+ rpc_peeraddr2str(clp->cl_rpcclient,
|
|
|
+ RPC_DISPLAY_ADDR),
|
|
|
+ rpc_peeraddr2str(clp->cl_rpcclient,
|
|
|
+ RPC_DISPLAY_PROTO));
|
|
|
+ /* cb_client4 */
|
|
|
+ setclientid.sc_netid_len = scnprintf(setclientid.sc_netid,
|
|
|
sizeof(setclientid.sc_netid),
|
|
|
rpc_peeraddr2str(clp->cl_rpcclient,
|
|
|
RPC_DISPLAY_NETID));
|
|
|
- setclientid.sc_uaddr_len = scnprintf(setclientid.sc_uaddr,
|
|
|
+ rcu_read_unlock();
|
|
|
+ setclientid.sc_uaddr_len = scnprintf(setclientid.sc_uaddr,
|
|
|
sizeof(setclientid.sc_uaddr), "%s.%u.%u",
|
|
|
clp->cl_ipaddr, port >> 8, port & 255);
|
|
|
- rcu_read_unlock();
|
|
|
|
|
|
- status = rpc_call_sync(clp->cl_rpcclient, &msg, RPC_TASK_TIMEOUT);
|
|
|
- if (status != -NFS4ERR_CLID_INUSE)
|
|
|
- break;
|
|
|
- if (loop != 0) {
|
|
|
- ++clp->cl_id_uniquifier;
|
|
|
- break;
|
|
|
- }
|
|
|
- ++loop;
|
|
|
- ssleep(clp->cl_lease_time / HZ + 1);
|
|
|
- }
|
|
|
- return status;
|
|
|
+ return rpc_call_sync(clp->cl_rpcclient, &msg, RPC_TASK_TIMEOUT);
|
|
|
}
|
|
|
|
|
|
int nfs4_proc_setclientid_confirm(struct nfs_client *clp,
|
|
@@ -5262,10 +5248,9 @@ int nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred)
|
|
|
nfs4_init_boot_verifier(clp, &verifier);
|
|
|
|
|
|
args.id_len = scnprintf(args.id, sizeof(args.id),
|
|
|
- "%s/%s/%u",
|
|
|
+ "%s/%s",
|
|
|
clp->cl_ipaddr,
|
|
|
- clp->cl_rpcclient->cl_nodename,
|
|
|
- clp->cl_rpcclient->cl_auth->au_flavor);
|
|
|
+ clp->cl_rpcclient->cl_nodename);
|
|
|
|
|
|
res.server_owner = kzalloc(sizeof(struct nfs41_server_owner),
|
|
|
GFP_NOFS);
|