예제 #1
0
/*---------------------------------------------------------------------------*/
int xio_on_setup_rsp_send_comp(struct xio_connection *connection,
			       struct xio_task *task)
{
	TRACE_LOG("got session setup response comp. session:%p, " \
		  "connection:%p\n",
		  connection->session, connection);

	kfree(task->omsg);

	/* recycle the task */
	xio_tasks_pool_put(task);

	/* time to set new callback */
	DEBUG_LOG("task recycled\n");

	switch (connection->session->state) {
	case XIO_SESSION_STATE_ACCEPTED:
	case XIO_SESSION_STATE_REJECTED:
	case XIO_SESSION_STATE_REDIRECTED:
		xio_disconnect_initial_connection(connection);
		break;
	default:
		/* try to transmit now */
		xio_connection_xmit_msgs(connection);
		break;
	}

	return 0;
}
/*---------------------------------------------------------------------------*/
int xio_on_connection_hello_rsp_send_comp(struct xio_connection *connection,
					  struct xio_task *task)
{
	xio_connection_release_hello(connection, task->omsg);
	xio_tasks_pool_put(task);

	return 0;
}