]> git.proxmox.com Git - mirror_qemu.git/commitdiff
vhost-user-scsi: connect unix socket before allocating
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Wed, 16 Aug 2017 18:30:31 +0000 (20:30 +0200)
committerMarc-André Lureau <marcandre.lureau@redhat.com>
Tue, 10 Oct 2017 21:31:08 +0000 (23:31 +0200)
This simplify a little bit memory management in the following patches.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
contrib/vhost-user-scsi/vhost-user-scsi.c

index 1fb57da2dae85315949bc765b362d4294d3b0934..e01bf3129623927473b0c524838716fc62152a5e 100644 (file)
@@ -715,23 +715,17 @@ static void vdev_scsi_deinit(vhost_scsi_dev_t *vdev_scsi)
     }
 }
 
-static vhost_scsi_dev_t *vdev_scsi_new(char *unix_fn)
+static vhost_scsi_dev_t *vdev_scsi_new(int server_sock)
 {
     vhost_scsi_dev_t *vdev_scsi = NULL;
 
-    assert(unix_fn);
-
     vdev_scsi = calloc(1, sizeof(vhost_scsi_dev_t));
     if (!vdev_scsi) {
         PERR("calloc: %s", strerror(errno));
         return NULL;
     }
 
-    vdev_scsi->server_sock = unix_sock_new(unix_fn);
-    if (vdev_scsi->server_sock < 0) {
-        goto err;
-    }
-
+    vdev_scsi->server_sock = server_sock;
     vdev_scsi->loop = g_main_loop_new(NULL, FALSE);
     if (!vdev_scsi->loop) {
         PERR("Error creating glib event loop");
@@ -815,7 +809,7 @@ int main(int argc, char **argv)
     vhost_scsi_dev_t *vdev_scsi = NULL;
     char *unix_fn = NULL;
     char *iscsi_uri = NULL;
-    int opt, err = EXIT_SUCCESS;
+    int sock, opt, err = EXIT_SUCCESS;
 
     while ((opt = getopt(argc, argv, "u:i:")) != -1) {
         switch (opt) {
@@ -835,7 +829,11 @@ int main(int argc, char **argv)
         goto help;
     }
 
-    vdev_scsi = vdev_scsi_new(unix_fn);
+    sock = unix_sock_new(unix_fn);
+    if (sock < 0) {
+        goto err;
+    }
+    vdev_scsi = vdev_scsi_new(sock);
     if (!vdev_scsi) {
         goto err;
     }