Avoid potential freelist/conn vector corruption due to
double-frees. Upgrade the WARN_ON() to a panic(), the present drain
loop doesn't want to be asked after disconnect.
Signed-off-by: Daniel Stodden <daniel.stodden@citrix.com>
if (conn->fd >= 0) {
close(conn->fd);
conn->fd = -1;
- }
- td_control.conn[--td_control.n_conn] = conn;
- tapdisk_server_mask_event(td_control.event_id, 0);
+ td_control.conn[--td_control.n_conn] = conn;
+ tapdisk_server_mask_event(td_control.event_id, 0);
+ }
}
static void
int n, mode;
ASSERT(conn->out.done);
- WARN_ON(conn->fd < 0);
+ ASSERT(conn->fd >= 0);
while (tapdisk_ctl_conn_connected(conn)) {
FD_ZERO(&wfds);