vhost-user-scsi: simplify unix path cleanup
Always remove the unix path when leaving the program (instead of when freeing scsi_dev). Note that unix_sock_new() also unlink() exisiting path before creating the socket. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
4309251a8c
commit
245792ddb7
|
@ -636,24 +636,9 @@ fail:
|
||||||
|
|
||||||
static void vdev_scsi_free(vhost_scsi_dev_t *vdev_scsi)
|
static void vdev_scsi_free(vhost_scsi_dev_t *vdev_scsi)
|
||||||
{
|
{
|
||||||
if (!vdev_scsi) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vdev_scsi->server_sock >= 0) {
|
if (vdev_scsi->server_sock >= 0) {
|
||||||
struct sockaddr_storage ss;
|
close(vdev_scsi->server_sock);
|
||||||
socklen_t sslen = sizeof(ss);
|
|
||||||
|
|
||||||
if (getsockname(vdev_scsi->server_sock, (struct sockaddr *)&ss,
|
|
||||||
&sslen) == 0) {
|
|
||||||
struct sockaddr_un *su = (struct sockaddr_un *)&ss;
|
|
||||||
(void)unlink(su->sun_path);
|
|
||||||
}
|
|
||||||
|
|
||||||
(void)close(vdev_scsi->server_sock);
|
|
||||||
vdev_scsi->server_sock = -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_main_loop_unref(vdev_scsi->loop);
|
g_main_loop_unref(vdev_scsi->loop);
|
||||||
g_tree_destroy(vdev_scsi->fdmap);
|
g_tree_destroy(vdev_scsi->fdmap);
|
||||||
g_free(vdev_scsi);
|
g_free(vdev_scsi);
|
||||||
|
@ -762,7 +747,10 @@ int main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
vdev_scsi_free(vdev_scsi);
|
if (vdev_scsi) {
|
||||||
|
vdev_scsi_free(vdev_scsi);
|
||||||
|
unlink(unix_fn);
|
||||||
|
}
|
||||||
g_free(unix_fn);
|
g_free(unix_fn);
|
||||||
g_free(iscsi_uri);
|
g_free(iscsi_uri);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue