[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 27/27] vhost-user-scsi: remove server_sock from VusD
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH 27/27] vhost-user-scsi: remove server_sock from VusDev |
Date: |
Wed, 23 Aug 2017 18:20:04 +0200 |
It is unneeded in the VusDev device structure, and also simplify a bit
the code.
Signed-off-by: Marc-André Lureau <address@hidden>
---
contrib/vhost-user-scsi/vhost-user-scsi.c | 52 ++++++++++++++-----------------
1 file changed, 23 insertions(+), 29 deletions(-)
diff --git a/contrib/vhost-user-scsi/vhost-user-scsi.c
b/contrib/vhost-user-scsi/vhost-user-scsi.c
index cfd62b46ce..3166331856 100644
--- a/contrib/vhost-user-scsi/vhost-user-scsi.c
+++ b/contrib/vhost-user-scsi/vhost-user-scsi.c
@@ -28,7 +28,6 @@ typedef struct VusIscsiLun {
typedef struct VusDev {
VugDev parent;
- int server_sock;
VusIscsiLun lun;
} VusDev;
@@ -371,48 +370,30 @@ fail:
static void vdev_scsi_free(VusDev *vdev_scsi)
{
- if (vdev_scsi->server_sock >= 0) {
- close(vdev_scsi->server_sock);
- }
g_free(vdev_scsi);
}
-static VusDev *vdev_scsi_new(int server_sock)
+static VusDev *vdev_scsi_new(void)
{
- VusDev *vdev_scsi;
-
- assert(server_sock >= 0);
-
- vdev_scsi = g_new0(VusDev, 1);
- vdev_scsi->server_sock = server_sock;
-
- return vdev_scsi;
+ return g_new0(VusDev, 1);
}
-static int vdev_scsi_run(VusDev *vdev_scsi)
+static int vdev_scsi_run(VusDev *vdev_scsi, int sock)
{
GMainLoop *loop;
GIOChannel *chan;
- int cli_sock;
int ret = 0;
assert(vdev_scsi);
- assert(vdev_scsi->server_sock >= 0);
-
- cli_sock = accept(vdev_scsi->server_sock, NULL, NULL);
- if (cli_sock < 0) {
- perror("accept");
- return -1;
- }
loop = g_main_loop_new(NULL, FALSE);
vug_init(&vdev_scsi->parent,
- cli_sock,
+ sock,
loop,
vus_panic_cb,
&vus_iface);
- chan = g_io_channel_unix_new(cli_sock);
+ chan = g_io_channel_unix_new(sock);
g_io_add_watch(chan, G_IO_IN, vus_vhost_cb, vdev_scsi);
g_main_loop_run(loop);
g_io_channel_unref(chan);
@@ -428,7 +409,7 @@ int main(int argc, char **argv)
VusDev *vdev_scsi = NULL;
char *unix_fn = NULL;
char *iscsi_uri = NULL;
- int sock, opt, err = EXIT_SUCCESS;
+ int lsock = -1, csock = -1, opt, err = EXIT_SUCCESS;
while ((opt = getopt(argc, argv, "u:i:")) != -1) {
switch (opt) {
@@ -448,17 +429,24 @@ int main(int argc, char **argv)
goto help;
}
- sock = unix_sock_new(unix_fn);
- if (sock < 0) {
+ lsock = unix_sock_new(unix_fn);
+ if (lsock < 0) {
+ goto err;
+ }
+
+ csock = accept(lsock, NULL, NULL);
+ if (csock < 0) {
+ perror("accept");
goto err;
}
- vdev_scsi = vdev_scsi_new(sock);
+
+ vdev_scsi = vdev_scsi_new();
if (vus_iscsi_add_lun(&vdev_scsi->lun, iscsi_uri) != 0) {
goto err;
}
- if (vdev_scsi_run(vdev_scsi) != 0) {
+ if (vdev_scsi_run(vdev_scsi, csock) != 0) {
goto err;
}
@@ -467,6 +455,12 @@ out:
vdev_scsi_free(vdev_scsi);
unlink(unix_fn);
}
+ if (csock >= 0) {
+ close(csock);
+ }
+ if (lsock >= 0) {
+ close(lsock);
+ }
g_free(unix_fn);
g_free(iscsi_uri);
--
2.14.1.146.gd35faa819
- [Qemu-devel] [PATCH 19/27] vhost-user-scsi: avoid use of iscsi_ namespace, (continued)
- [Qemu-devel] [PATCH 19/27] vhost-user-scsi: avoid use of iscsi_ namespace, Marc-André Lureau, 2017/08/23
- [Qemu-devel] [PATCH 20/27] vhost-user-scsi: don't copy iscsi/scsi-lowlevel.h, Marc-André Lureau, 2017/08/23
- [Qemu-devel] [PATCH 21/27] vhost-user-scsi: drop extra callback pointer, Marc-André Lureau, 2017/08/23
- [Qemu-devel] [PATCH 22/27] vhost-user-scsi: simplify source handling, Marc-André Lureau, 2017/08/23
- [Qemu-devel] [PATCH 24/27] libvhost-user: add glib source helper, Marc-André Lureau, 2017/08/23
- [Qemu-devel] [PATCH 23/27] vhost-user-scsi: use glib logging, Marc-André Lureau, 2017/08/23
- [Qemu-devel] [PATCH 25/27] build-sys: fix libvhost-user.a build, Marc-André Lureau, 2017/08/23
- [Qemu-devel] [PATCH 27/27] vhost-user-scsi: remove server_sock from VusDev,
Marc-André Lureau <=
- [Qemu-devel] [PATCH 26/27] vhost-user-scsi: use libvhost-user glib helper, Marc-André Lureau, 2017/08/23
- Re: [Qemu-devel] [PATCH 00/27] vhost-user-scsi: code clean-up, no-reply, 2017/08/23
- Re: [Qemu-devel] [PATCH 00/27] vhost-user-scsi: code clean-up, no-reply, 2017/08/23
- Re: [Qemu-devel] [PATCH 00/27] vhost-user-scsi: code clean-up, no-reply, 2017/08/23
- Re: [Qemu-devel] [PATCH 00/27] vhost-user-scsi: code clean-up, Liu, Changpeng, 2017/08/23