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
					
				| @ -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; | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user