Commit 245792dd authored by Marc-André Lureau's avatar Marc-André Lureau
Browse files

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: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 4309251a
Loading
Loading
Loading
Loading
+5 −17
Original line number Diff line number Diff line
@@ -636,24 +636,9 @@ fail:

static void vdev_scsi_free(vhost_scsi_dev_t *vdev_scsi)
{
    if (!vdev_scsi) {
        return;
    }

    if (vdev_scsi->server_sock >= 0) {
        struct sockaddr_storage ss;
        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);
        close(vdev_scsi->server_sock);
    }

        (void)close(vdev_scsi->server_sock);
        vdev_scsi->server_sock = -1;
    }

    g_main_loop_unref(vdev_scsi->loop);
    g_tree_destroy(vdev_scsi->fdmap);
    g_free(vdev_scsi);
@@ -762,7 +747,10 @@ int main(int argc, char **argv)
    }

out:
    if (vdev_scsi) {
        vdev_scsi_free(vdev_scsi);
        unlink(unix_fn);
    }
    g_free(unix_fn);
    g_free(iscsi_uri);