From: Stefan Raspl Date: Thu, 3 May 2018 16:12:36 +0000 (+0200) Subject: smc: simplify abort logic X-Git-Tag: v4.18-rc1~114^2~311^2~3 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c8b8ec8e0d605872c62909e7af54fb0bcb174d0c;p=users%2Fjedix%2Flinux-maple.git smc: simplify abort logic Some of the conditions to exit recv() are common in two pathes - cleaning up code by moving the check up so we have it only once. Signed-off-by: Stefan Raspl Signed-off-by: Ursula Braun < Signed-off-by: David S. Miller --- diff --git a/net/smc/smc_rx.c b/net/smc/smc_rx.c index af851d8df1f8..def33fb29ac9 100644 --- a/net/smc/smc_rx.c +++ b/net/smc/smc_rx.c @@ -112,26 +112,22 @@ int smc_rx_recvmsg(struct smc_sock *smc, struct msghdr *msg, size_t len, if (atomic_read(&conn->bytes_to_rcv)) goto copy; + if (sk->sk_shutdown & RCV_SHUTDOWN || + smc_cdc_rxed_any_close_or_senddone(conn) || + conn->local_tx_ctrl.conn_state_flags.peer_conn_abort) + break; + if (read_done) { if (sk->sk_err || sk->sk_state == SMC_CLOSED || - sk->sk_shutdown & RCV_SHUTDOWN || !timeo || - signal_pending(current) || - smc_cdc_rxed_any_close_or_senddone(conn) || - conn->local_tx_ctrl.conn_state_flags. - peer_conn_abort) + signal_pending(current)) break; } else { if (sk->sk_err) { read_done = sock_error(sk); break; } - if (sk->sk_shutdown & RCV_SHUTDOWN || - smc_cdc_rxed_any_close_or_senddone(conn) || - conn->local_tx_ctrl.conn_state_flags. - peer_conn_abort) - break; if (sk->sk_state == SMC_CLOSED) { if (!sock_flag(sk, SOCK_DONE)) { /* This occurs when user tries to read