mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 06:10:56 +00:00
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:
parent
ac0107edba
commit
f6bdc42f02
1 changed files with 2 additions and 1 deletions
|
@ -250,6 +250,7 @@ int smc_clc_prfx_match(struct socket *clcsock,
|
||||||
int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen,
|
int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen,
|
||||||
u8 expected_type)
|
u8 expected_type)
|
||||||
{
|
{
|
||||||
|
long rcvtimeo = smc->clcsock->sk->sk_rcvtimeo;
|
||||||
struct sock *clc_sk = smc->clcsock->sk;
|
struct sock *clc_sk = smc->clcsock->sk;
|
||||||
struct smc_clc_msg_hdr *clcm = buf;
|
struct smc_clc_msg_hdr *clcm = buf;
|
||||||
struct msghdr msg = {NULL, 0};
|
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));
|
memset(&msg, 0, sizeof(struct msghdr));
|
||||||
iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, &vec, 1, datlen);
|
iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, &vec, 1, datlen);
|
||||||
krflags = MSG_WAITALL;
|
krflags = MSG_WAITALL;
|
||||||
smc->clcsock->sk->sk_rcvtimeo = CLC_WAIT_TIME;
|
|
||||||
len = sock_recvmsg(smc->clcsock, &msg, krflags);
|
len = sock_recvmsg(smc->clcsock, &msg, krflags);
|
||||||
if (len < datlen || !smc_clc_msg_hdr_valid(clcm)) {
|
if (len < datlen || !smc_clc_msg_hdr_valid(clcm)) {
|
||||||
smc->sk.sk_err = EPROTO;
|
smc->sk.sk_err = EPROTO;
|
||||||
|
@ -322,6 +322,7 @@ int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen,
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
smc->clcsock->sk->sk_rcvtimeo = rcvtimeo;
|
||||||
return reason_code;
|
return reason_code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue