net/smc: reset recv timeout after clc handshake
During clc handshake the receive timeout is set to CLC_WAIT_TIME. Remember and reset the original timeout value after the receive calls, and remove a duplicate assignment of CLC_WAIT_TIME. Signed-off-by: Karsten Graul <kgraul@linux.ibm.com> Signed-off-by: Ursula Braun <ubraun@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
ac0107edba
Коммит
f6bdc42f02
|
@ -250,6 +250,7 @@ out:
|
|||
int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen,
|
||||
u8 expected_type)
|
||||
{
|
||||
long rcvtimeo = smc->clcsock->sk->sk_rcvtimeo;
|
||||
struct sock *clc_sk = smc->clcsock->sk;
|
||||
struct smc_clc_msg_hdr *clcm = buf;
|
||||
struct msghdr msg = {NULL, 0};
|
||||
|
@ -306,7 +307,6 @@ int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen,
|
|||
memset(&msg, 0, sizeof(struct msghdr));
|
||||
iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, &vec, 1, datlen);
|
||||
krflags = MSG_WAITALL;
|
||||
smc->clcsock->sk->sk_rcvtimeo = CLC_WAIT_TIME;
|
||||
len = sock_recvmsg(smc->clcsock, &msg, krflags);
|
||||
if (len < datlen || !smc_clc_msg_hdr_valid(clcm)) {
|
||||
smc->sk.sk_err = EPROTO;
|
||||
|
@ -322,6 +322,7 @@ int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen,
|
|||
}
|
||||
|
||||
out:
|
||||
smc->clcsock->sk->sk_rcvtimeo = rcvtimeo;
|
||||
return reason_code;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче