• Home
  • Raw
  • Download

Lines Matching refs:conn

57 	if (!smc_tx_prepared_sends(&smc->conn))  in smc_close_stream_wait()
66 !smc_tx_prepared_sends(&smc->conn) || in smc_close_stream_wait()
69 smc->conn.killed, in smc_close_stream_wait()
85 static int smc_close_wr(struct smc_connection *conn) in smc_close_wr() argument
87 conn->local_tx_ctrl.conn_state_flags.peer_done_writing = 1; in smc_close_wr()
89 return smc_cdc_get_slot_and_msg_send(conn); in smc_close_wr()
92 static int smc_close_final(struct smc_connection *conn) in smc_close_final() argument
94 if (atomic_read(&conn->bytes_to_rcv)) in smc_close_final()
95 conn->local_tx_ctrl.conn_state_flags.peer_conn_abort = 1; in smc_close_final()
97 conn->local_tx_ctrl.conn_state_flags.peer_conn_closed = 1; in smc_close_final()
98 if (conn->killed) in smc_close_final()
101 return smc_cdc_get_slot_and_msg_send(conn); in smc_close_final()
104 int smc_close_abort(struct smc_connection *conn) in smc_close_abort() argument
106 conn->local_tx_ctrl.conn_state_flags.peer_conn_abort = 1; in smc_close_abort()
108 return smc_cdc_get_slot_and_msg_send(conn); in smc_close_abort()
116 cancel_work_sync(&smc->conn.close_work); in smc_close_cancel_work()
117 cancel_delayed_work_sync(&smc->conn.tx_work); in smc_close_cancel_work()
153 smc_conn_free(&smc->conn); in smc_close_active_abort()
164 smc_conn_free(&smc->conn); in smc_close_active_abort()
183 static inline bool smc_close_sent_any_close(struct smc_connection *conn) in smc_close_sent_any_close() argument
185 return conn->local_tx_ctrl.conn_state_flags.peer_conn_abort || in smc_close_sent_any_close()
186 conn->local_tx_ctrl.conn_state_flags.peer_conn_closed; in smc_close_sent_any_close()
192 &smc->conn.local_tx_ctrl.conn_state_flags; in smc_close_active()
193 struct smc_connection *conn = &smc->conn; in smc_close_active() local
226 cancel_delayed_work_sync(&conn->tx_work); in smc_close_active()
230 rc = smc_close_final(conn); in smc_close_active()
249 !smc_close_sent_any_close(conn)) { in smc_close_active()
251 rc = smc_close_final(conn); in smc_close_active()
257 if (!smc_cdc_rxed_any_close(conn)) in smc_close_active()
260 cancel_delayed_work_sync(&conn->tx_work); in smc_close_active()
266 rc = smc_close_final(conn); in smc_close_active()
267 if (smc_cdc_rxed_any_close(conn)) { in smc_close_active()
279 !smc_close_sent_any_close(conn)) { in smc_close_active()
281 rc = smc_close_final(conn); in smc_close_active()
289 rc = smc_close_abort(conn); in smc_close_active()
308 &smc->conn.local_tx_ctrl.conn_state_flags; in smc_close_passive_abort_received()
324 !smc_close_sent_any_close(&smc->conn)) in smc_close_passive_abort_received()
351 struct smc_connection *conn = container_of(work, in smc_close_passive_work() local
354 struct smc_sock *smc = container_of(conn, struct smc_sock, conn); in smc_close_passive_work()
363 rxflags = &conn->local_rx_ctrl.conn_state_flags; in smc_close_passive_work()
368 cancel_delayed_work_sync(&conn->tx_work); in smc_close_passive_work()
389 if (!smc_cdc_rxed_any_close(conn)) in smc_close_passive_work()
392 smc_close_sent_any_close(conn)) { in smc_close_passive_work()
402 if (smc_cdc_rxed_any_close(conn)) { in smc_close_passive_work()
429 smc_conn_free(conn); in smc_close_passive_work()
442 struct smc_connection *conn = &smc->conn; in smc_close_shutdown_write() local
458 cancel_delayed_work_sync(&conn->tx_work); in smc_close_shutdown_write()
463 rc = smc_close_wr(conn); in smc_close_shutdown_write()
468 if (!smc_cdc_rxed_any_close(conn)) in smc_close_shutdown_write()
471 cancel_delayed_work_sync(&conn->tx_work); in smc_close_shutdown_write()
476 rc = smc_close_wr(conn); in smc_close_shutdown_write()
498 INIT_WORK(&smc->conn.close_work, smc_close_passive_work); in smc_close_init()