From patchwork Tue Oct 10 21:35:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= X-Patchwork-Id: 824089 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=208.118.235.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yBW7k0dhTz9t42 for ; Wed, 11 Oct 2017 08:53:06 +1100 (AEDT) Received: from localhost ([::1]:37330 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e22SW-0007XJ-4l for incoming@patchwork.ozlabs.org; Tue, 10 Oct 2017 17:53:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39609) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e22En-0004QX-GT for qemu-devel@nongnu.org; Tue, 10 Oct 2017 17:38:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e22Em-0002wU-KM for qemu-devel@nongnu.org; Tue, 10 Oct 2017 17:38:53 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53890) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e22Em-0002wE-Bd for qemu-devel@nongnu.org; Tue, 10 Oct 2017 17:38:52 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 63D4081DF9; Tue, 10 Oct 2017 21:38:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 63D4081DF9 Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=marcandre.lureau@redhat.com Received: from localhost (unknown [10.36.112.15]) by smtp.corp.redhat.com (Postfix) with ESMTP id 95C416C412; Tue, 10 Oct 2017 21:38:47 +0000 (UTC) From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= To: qemu-devel@nongnu.org Date: Tue, 10 Oct 2017 23:35:06 +0200 Message-Id: <20171010213506.22989-28-marcandre.lureau@redhat.com> In-Reply-To: <20171010213506.22989-1-marcandre.lureau@redhat.com> References: <20171010213506.22989-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Tue, 10 Oct 2017 21:38:51 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL v2 27/27] vhost-user-scsi: remove server_sock from VusDev X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, felipe@nutanix.com, changpeng.liu@intel.com, =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , f4bug@amsat.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" It is unneeded in the VusDev device structure, and also simplify a bit the code. Signed-off-by: Marc-André Lureau Reviewed-by: Philippe Mathieu-Daudé --- contrib/vhost-user-scsi/vhost-user-scsi.c | 77 ++++++++++--------------------- 1 file changed, 24 insertions(+), 53 deletions(-) diff --git a/contrib/vhost-user-scsi/vhost-user-scsi.c b/contrib/vhost-user-scsi/vhost-user-scsi.c index 615e2a76bb..54c1191db0 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; GMainLoop *loop; } VusDev; @@ -357,57 +356,12 @@ fail: /** vhost-user-scsi **/ -static void vdev_scsi_free(VusDev *vdev_scsi) -{ - if (vdev_scsi->server_sock >= 0) { - close(vdev_scsi->server_sock); - } - g_main_loop_unref(vdev_scsi->loop); - g_free(vdev_scsi); -} - -static VusDev *vdev_scsi_new(int server_sock) -{ - VusDev *vdev_scsi; - - vdev_scsi = g_new0(VusDev, 1); - vdev_scsi->server_sock = server_sock; - vdev_scsi->loop = g_main_loop_new(NULL, FALSE); - - return vdev_scsi; -} - -static int vdev_scsi_run(VusDev *vdev_scsi) -{ - int cli_sock; - - 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; - } - - vug_init(&vdev_scsi->parent, - cli_sock, - vus_panic_cb, - &vus_iface); - - g_main_loop_run(vdev_scsi->loop); - - vug_deinit(&vdev_scsi->parent); - - return 0; -} - 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) { @@ -427,25 +381,42 @@ 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; } - vdev_scsi = vdev_scsi_new(sock); - if (vus_iscsi_add_lun(&vdev_scsi->lun, iscsi_uri) != 0) { + csock = accept(lsock, NULL, NULL); + if (csock < 0) { + perror("accept"); goto err; } - if (vdev_scsi_run(vdev_scsi) != 0) { + vdev_scsi = g_new0(VusDev, 1); + vdev_scsi->loop = g_main_loop_new(NULL, FALSE); + + if (vus_iscsi_add_lun(&vdev_scsi->lun, iscsi_uri) != 0) { goto err; } + vug_init(&vdev_scsi->parent, csock, vus_panic_cb, &vus_iface); + + g_main_loop_run(vdev_scsi->loop); + + vug_deinit(&vdev_scsi->parent); + out: if (vdev_scsi) { - vdev_scsi_free(vdev_scsi); + g_main_loop_unref(vdev_scsi->loop); + g_free(vdev_scsi); unlink(unix_fn); } + if (csock >= 0) { + close(csock); + } + if (lsock >= 0) { + close(lsock); + } g_free(unix_fn); g_free(iscsi_uri);