void
kdmsg_iocom_uninit(kdmsg_iocom_t *iocom)
{
+ kdmsg_state_t *state;
+
/*
* Ask the cluster controller to go away
*/
}
/*
+ * Cleanup caches
+ */
+ if ((state = iocom->freerd_state) != NULL) {
+ iocom->freerd_state = NULL;
+ kdmsg_state_free(state);
+ }
+
+ if ((state = iocom->freewr_state) != NULL) {
+ iocom->freewr_state = NULL;
+ kdmsg_state_free(state);
+ }
+
+ /*
* Drop communications descriptor
*/
if (iocom->msg_fp) {
kdmsg_iocom_t *iocom = arg;
dmsg_hdr_t hdr;
kdmsg_msg_t *msg = NULL;
- kdmsg_state_t *state;
size_t hbytes;
size_t abytes;
int error = 0;
if (msg)
kdmsg_msg_free(msg);
- if ((state = iocom->freerd_state) != NULL) {
- iocom->freerd_state = NULL;
- kdmsg_state_free(state);
- }
-
/*
* Shutdown the socket before waiting for the transmit side.
*
}
iocom->flags |= KDMSG_IOCOMF_EXITNOACC;
- if ((state = iocom->freewr_state) != NULL) {
- iocom->freewr_state = NULL;
- kdmsg_state_free(state);
- }
-
lockmgr(&iocom->msglk, LK_RELEASE);
/*