From nobody Tue May 7 07:46:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=quarantine dis=quarantine) header.from=suse.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1625606023091446.58174167505524; Tue, 6 Jul 2021 14:13:43 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-214-oJCJPce7PQyzAjh8yFXprQ-1; Tue, 06 Jul 2021 17:13:40 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2323B824F88; Tue, 6 Jul 2021 21:13:35 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 003EA2C6EE; Tue, 6 Jul 2021 21:13:34 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id BCA601809CB5; Tue, 6 Jul 2021 21:13:34 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 166LDEel014896 for ; Tue, 6 Jul 2021 17:13:15 -0400 Received: by smtp.corp.redhat.com (Postfix) id BED86200E4A7; Tue, 6 Jul 2021 21:13:14 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4735E200ACB2 for ; Tue, 6 Jul 2021 21:13:11 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0FBC4800B28 for ; Tue, 6 Jul 2021 21:13:11 +0000 (UTC) Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-312-eTyGh6fdMWu-Ly28z5ZVww-1; Tue, 06 Jul 2021 17:13:08 -0400 Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2053.outbound.protection.outlook.com [104.47.8.53]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-19-82rkeXW2PG2EKOUR2yemEA-2; Tue, 06 Jul 2021 23:13:06 +0200 Received: from AM8PR04MB7970.eurprd04.prod.outlook.com (2603:10a6:20b:24f::9) by AM4PR0401MB2354.eurprd04.prod.outlook.com (2603:10a6:200:54::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.31; Tue, 6 Jul 2021 21:13:02 +0000 Received: from AM8PR04MB7970.eurprd04.prod.outlook.com ([fe80::a835:c9e1:adaf:572c]) by AM8PR04MB7970.eurprd04.prod.outlook.com ([fe80::a835:c9e1:adaf:572c%7]) with mapi id 15.20.4287.033; Tue, 6 Jul 2021 21:13:02 +0000 Received: from localhost (192.225.177.165) by FR3P281CA0009.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.8 via Frontend Transport; Tue, 6 Jul 2021 21:13:01 +0000 X-MC-Unique: oJCJPce7PQyzAjh8yFXprQ-1 X-MC-Unique: eTyGh6fdMWu-Ly28z5ZVww-1 X-MC-Unique: 82rkeXW2PG2EKOUR2yemEA-2 From: Jim Fehlig To: libvir-list@redhat.com Subject: [PATCH 1/6] libxl: Drop unused 'cfg' parameter from libxlDomainSaveImageOpen Date: Tue, 6 Jul 2021 15:12:50 -0600 Message-ID: <20210706211255.8891-2-jfehlig@suse.com> In-Reply-To: <20210706211255.8891-1-jfehlig@suse.com> References: <20210706211255.8891-1-jfehlig@suse.com> X-ClientProxiedBy: FR3P281CA0009.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::8) To AM8PR04MB7970.eurprd04.prod.outlook.com (2603:10a6:20b:24f::9) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0e694113-436e-4062-f1c2-08d940c2d6ea X-MS-TrafficTypeDiagnostic: AM4PR0401MB2354: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:404 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: OR3r4P4Az5u+yuPbDnCREloIREhnlPe0d182p+dOgMxYP4zNzKKHd8if/ZBOvzj/4SR73V9sBijC2ghPaYumnmkodm3fFOHRn+T3mt/N2oObNAcPsg59sOwqIEe2g+FqNNqshvx8dibXq9Wk1auFujb5e5wMBC9xnqaJMmQDkJ9wnZxHo/AMCwVJGKPJ/zaRtj0VDoOrUiAC/jYh+EBBPBQdYiX5KM9p+IhsBGf4jpnTNEJz8U2HCnlbUKhrz4A6UFwtHIKia2XlsRE1mO6lSfy6urMSP+au1fCxpDUo4cNY521KtTsL5EIOecjxooQO1rsL66oFUNWCtxYiHvdSpSvb6mjAxnNcFJfH7+vVUEreqQJQSGHWDPTi3VQorQdLm3UKSAZmL/sGtEmBCO+Rivqh5V10c3AWCqParviNiEY6l4mD5de2tsQ7ZflG5sHfLw3nEtNaNA4lmGesHQqMu0LT7rMOiWgF10KGM8YDlKpaODiGsDEVA5I78Y0sXErAgCnZ2Eqjx0AJ+jjKbiQTcTheygFCOcOOhZNJC/BeDYW65gjNqV2NaPn6PGpiS2HLBpEpgKgzv/hkFwDttn3/CPuE/LLvu6Dr2y58IKUglukoWy//QBYlHJYtqp2ko2u3sjg+Lrm+w44wyIVQ+kDV5ssaZtf3QQLcj5vXeZYtVlg+x0YRt1LwFznNOBmWeXv3EuwGINMdcEO5mM1e1s8JcA3Ar6R5uIhWzpMzN2CjlvA= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR04MB7970.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(376002)(346002)(396003)(39840400004)(366004)(478600001)(6916009)(186003)(26005)(956004)(8936002)(2616005)(6496006)(2906002)(83380400001)(5660300002)(8676002)(316002)(6486002)(1076003)(66556008)(38100700002)(66476007)(66946007)(36756003)(6666004)(86362001)(145543001)(145603002); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xgKX1vNP66xsTlZaw2I+I6HR6wL2Qr4HfZ7brAt/ZL+NFSS4D+/9DICokCYv?= =?us-ascii?Q?U3Beu3tlJOVijQgAHieXJQ4o2/hYdqS3gCxjhXYlG5LJbx4ib4eFu/t5CvO2?= =?us-ascii?Q?tTD0LgFRyqTN8whRqDBZqvhCKum5zAuuc5DAitfuWUk4WeIFZ4Xl9sLyRJBZ?= =?us-ascii?Q?naGuDFOTriacAXLiZ3sIKBMjZ848CmMeSJG77k/aqbWdDuRDz+KtpaFpSEh7?= =?us-ascii?Q?nMqPCBA8yHeXZ3ofpUPmARNZWdTUQdX+5AWn003pW0Be1iOs4x97c7vFUC/4?= =?us-ascii?Q?9Bx5W7CBuBvvGo36s9XnBW3+hsRYqNDGMkXK9e4QbOFr3Ru+3fP/UIrNV9GM?= =?us-ascii?Q?pjgDUVLiepp9HHfn8kEY/8DrNgYsgfG/tVP43NlrV24EJEzeiW7hqUuUhVwm?= =?us-ascii?Q?+P4RsjNA7uZLhn1ENc7R+QuF2zMxipIGJWtIglhq/mlZMSq5vSCpIchKcX1k?= =?us-ascii?Q?X7VJjrhNCElsvWEU9Ts/JfYlbm7R1Ho14NFFZAFIzbDx6/x0JDlzoYWnXEgY?= =?us-ascii?Q?LaAnH2y4rfzekAZJopvyBniH9mAd43BgmauAXU4TetYCg2HUlDcdY3XdNY+y?= =?us-ascii?Q?VFTRBCp5EgJ+RxVSiLOsecAIX1bZfYjAeQJKd45fxe7Aj+FZkpqszbzZdt0f?= =?us-ascii?Q?FHpJ/ffd7Yp5n5ylbJzNrhInBbZghE3LFDht6lLJ7EoAjzvNjnhU6HY1+88Z?= =?us-ascii?Q?vguXpVqT/PZhaVa8njmqB5YEKGQvPAMFoNLBRFqX1RUlA3uSwErcWxXZ9Rlx?= =?us-ascii?Q?Grs7rKQU9fD0Tc4a1O+zda2Q7TUTLv3a3qyfdwXd07HQynG15AU5wF+y17DM?= =?us-ascii?Q?d0+QOWJG141zVoPw+c6ULBQTEzEdb0OrmLKYQ9vrW/lRwJatqqWXD0D7L+Q8?= =?us-ascii?Q?RkKzqRzqxvyAK0CRtf2+L5xSVDhhvLMgtYcdnKA/NY+gA7/PuFcqsXAUg8ZA?= =?us-ascii?Q?oO+mGLijBKiMxW7sCwlTm3P8O9hsEM7mOuvEhFvI4vVSrotHkYL5shFVonFC?= =?us-ascii?Q?QwLi0VTK27xfPXxTtyvLTtADAJiFrmOjKeLMIYs2rxP3aA09VRyojoIAehex?= =?us-ascii?Q?x6Hp5cDyro/vOiiPlj1t4o111OOi7WJK7TCRUIglu0y/OD6il/kKDQZPfiY9?= =?us-ascii?Q?57Z54JarQL/+w2gTNSnPGhOQgO7baqcHf+YpTTD4/oA38AgxiQmlX2xbURhu?= =?us-ascii?Q?ZXiCDaTs9JdM6PrpzuQWmvQjy3P9qiYyLNNIbVyM1ivrqDfzhSlv8fQXXfQP?= =?us-ascii?Q?fLab0mOKeWSJ4HoqD+cul5t6Gz3n9abVRXYdrEGJpn312STPRGVqY3CfmR8b?= =?us-ascii?Q?Hgm+BIxSYce5OTCHXK8D4Dg/?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0e694113-436e-4062-f1c2-08d940c2d6ea X-MS-Exchange-CrossTenant-AuthSource: AM8PR04MB7970.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2021 21:13:02.6396 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oqgoV8uLm+igAKwk0W/5NuIAeYLQXyXV8H11qhjpjW1NZ6NRrI+PrXaj1Lfzf3QMsN8KIc1t4qOv2gOtm0T1Wg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0401MB2354 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 166LDEel014896 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1625606024227100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Jim Fehlig Reviewed-by: J=C3=A1n Tomko --- src/libxl/libxl_domain.c | 4 +--- src/libxl/libxl_domain.h | 3 +-- src/libxl/libxl_driver.c | 4 +--- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index af20434843..336b67b129 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -764,7 +764,6 @@ libxlDomainManagedSavePath(libxlDriverPrivate *driver, = virDomainObj *vm) */ int libxlDomainSaveImageOpen(libxlDriverPrivate *driver, - libxlDriverConfig *cfg G_GNUC_UNUSED, const char *from, virDomainDef **ret_def, libxlSavefileHeader *ret_hdr) @@ -1260,8 +1259,7 @@ libxlDomainStart(libxlDriverPrivate *driver, =20 if (virFileExists(managed_save_path)) { =20 - managed_save_fd =3D libxlDomainSaveImageOpen(driver, cfg, - managed_save_path, + managed_save_fd =3D libxlDomainSaveImageOpen(driver, managed_s= ave_path, &def, &hdr); if (managed_save_fd < 0) goto cleanup; diff --git a/src/libxl/libxl_domain.h b/src/libxl/libxl_domain.h index 928ee8f5cd..526c8e7332 100644 --- a/src/libxl/libxl_domain.h +++ b/src/libxl/libxl_domain.h @@ -103,11 +103,10 @@ libxlDomainManagedSavePath(libxlDriverPrivate *driver, =20 int libxlDomainSaveImageOpen(libxlDriverPrivate *driver, - libxlDriverConfig *cfg, const char *from, virDomainDef **ret_def, libxlSavefileHeader *ret_hdr) - ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5); + ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4); =20 int libxlDomainDestroyInternal(libxlDriverPrivate *driver, diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index c97b2fb485..838747a1e3 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -1942,7 +1942,6 @@ libxlDomainRestoreFlags(virConnectPtr conn, const cha= r *from, const char *dxml, unsigned int flags) { libxlDriverPrivate *driver =3D conn->privateData; - libxlDriverConfig *cfg =3D libxlDriverConfigGet(driver); virDomainObj *vm =3D NULL; virDomainDef *def =3D NULL; libxlSavefileHeader hdr; @@ -1961,7 +1960,7 @@ libxlDomainRestoreFlags(virConnectPtr conn, const cha= r *from, return -1; } =20 - fd =3D libxlDomainSaveImageOpen(driver, cfg, from, &def, &hdr); + fd =3D libxlDomainSaveImageOpen(driver, from, &def, &hdr); if (fd < 0) goto cleanup; =20 @@ -1995,7 +1994,6 @@ libxlDomainRestoreFlags(virConnectPtr conn, const cha= r *from, virReportSystemError(errno, "%s", _("cannot close file")); virDomainDefFree(def); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 --=20 2.31.1 From nobody Tue May 7 07:46:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=quarantine dis=quarantine) header.from=suse.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1625606008587939.9477817643511; Tue, 6 Jul 2021 14:13:28 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-21-Y_BE0qKsO_KOoT8f--fz9g-1; Tue, 06 Jul 2021 17:13:25 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0F780824F96; Tue, 6 Jul 2021 21:13:20 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A5A3460843; Tue, 6 Jul 2021 21:13:19 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id F1E501809C99; Tue, 6 Jul 2021 21:13:15 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 166LDDSv014885 for ; Tue, 6 Jul 2021 17:13:14 -0400 Received: by smtp.corp.redhat.com (Postfix) id C2F11C77F4; Tue, 6 Jul 2021 21:13:13 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BC884C77FA for ; Tue, 6 Jul 2021 21:13:11 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 7912E1064FAD for ; Tue, 6 Jul 2021 21:13:11 +0000 (UTC) Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-525-edi9krc9OUeAdfKtr_gJUQ-1; Tue, 06 Jul 2021 17:13:09 -0400 Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2053.outbound.protection.outlook.com [104.47.8.53]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-19-1tITtvl8MvmjX3oigFyw7g-3; Tue, 06 Jul 2021 23:13:07 +0200 Received: from AM8PR04MB7970.eurprd04.prod.outlook.com (2603:10a6:20b:24f::9) by AM4PR0401MB2354.eurprd04.prod.outlook.com (2603:10a6:200:54::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.31; Tue, 6 Jul 2021 21:13:06 +0000 Received: from AM8PR04MB7970.eurprd04.prod.outlook.com ([fe80::a835:c9e1:adaf:572c]) by AM8PR04MB7970.eurprd04.prod.outlook.com ([fe80::a835:c9e1:adaf:572c%7]) with mapi id 15.20.4287.033; Tue, 6 Jul 2021 21:13:06 +0000 Received: from localhost (192.225.177.165) by FR3P281CA0007.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.8 via Frontend Transport; Tue, 6 Jul 2021 21:13:05 +0000 X-MC-Unique: Y_BE0qKsO_KOoT8f--fz9g-1 X-MC-Unique: edi9krc9OUeAdfKtr_gJUQ-1 X-MC-Unique: 1tITtvl8MvmjX3oigFyw7g-3 From: Jim Fehlig To: libvir-list@redhat.com Subject: [PATCH 2/6] libxl: Move managed save logic to libxlDomainStartNew Date: Tue, 6 Jul 2021 15:12:51 -0600 Message-ID: <20210706211255.8891-3-jfehlig@suse.com> In-Reply-To: <20210706211255.8891-1-jfehlig@suse.com> References: <20210706211255.8891-1-jfehlig@suse.com> X-ClientProxiedBy: FR3P281CA0007.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::6) To AM8PR04MB7970.eurprd04.prod.outlook.com (2603:10a6:20b:24f::9) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 929c3ad6-7897-459c-580a-08d940c2d93c X-MS-TrafficTypeDiagnostic: AM4PR0401MB2354: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2150 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: HasKhZAaTwUvtyBtl7YkiuM9H8ezJQRAf5GGnWLLiW4yhl/nSlkIazHFqK+Nx2MPPMou31s6DpeLKZLorZl9mV2Gk9ee6YCpIGei3eAjeI2lo7LJCOgzF69QF/YX6UxuHc22sVjJRbVhlcoQ0QAlJzErdmBecm0A2ST6IbRVHzJB++K3ws+8EYx+Gd9aYTcU70nRc4MeZmkDtkrx6PegzkEzIi4BVN6HFoilGAwlBBmyorAiozR3HAQcnocAwJHjhbpywJxXJ2QnL54K2/xI+l0F+kZ1h8xdiDnt8asqfbWBot7oGCVQpVq4jJF4UxBLbMIzID1AVowHRBy45xqXEQ6IwtD3EHrS4S7STvyqdD+PTiSCtZaW/0LY2JOCRAOIoBybJqiwTZ5jcGnRUCG+2ljPEtnHW+s8tj0S0VO1PKBs6235Y30EqcgJHFFcZUu/mVuohpNxpNfa9iSvolYE6Ogx5zmiDEaPnpZLVc4C+xCrJiL3oNeclQostbSq2pCa5ghN6xTu+X/QnqT1JsaTSRaIrKyRj6RBwr4NzZzULivIObci+3Pd5uIJfSCqVgslBcEmCEssOr12icmS4X91EN6n69jWJXkqn5RYNUzSRp68lPSJP9P+5A8RRMrDNzKSZGC6Pr1w4kC45tyl6iqP+z3PHNxEH4EeS+DAYGFN4CGh/JdzelJOGDPyXLDADlQi+kkkbqbuB36kYpndOWDe7WCP2cIAYMPp3Z3aTpqogJ0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR04MB7970.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(376002)(346002)(396003)(39840400004)(366004)(478600001)(6916009)(186003)(26005)(956004)(8936002)(2616005)(6496006)(2906002)(83380400001)(5660300002)(8676002)(316002)(6486002)(1076003)(66556008)(38100700002)(66476007)(66946007)(36756003)(6666004)(86362001)(145543001)(145603002); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5klU1pU1Up+CcvrGMrGNIML45QuMJYuR75+lRmlqi6fSIPAg4AhBigrX+WxJ?= =?us-ascii?Q?x/ZfbSRGHDfj1BXWZ9GVGz+j7/nSza03H0+VHTNc8Y1UiQQnMjTE6Oalhuyp?= =?us-ascii?Q?uKTXMAPTbaB2iq2zOWK7izu2haNdGr8e1Xl2LZciftd+FvMLwbbKk1vAISTX?= =?us-ascii?Q?15fqWVK1/r8sbsU+9wz9LldBB9ZH4Rgyw0sOtSIlvgJsyH5BNziT0O10Gt93?= =?us-ascii?Q?Ah2O1+z4QxWUCGSgYn0VbcbEPrjahzYZvnC3pANWtFf6NgF+7aBaj+0NmGH3?= =?us-ascii?Q?z1kXvgx7cBlWWhizK80yM40WwTgdz3PTLqGIlMtiwowE9Cjs3tqBgJhw0VfB?= =?us-ascii?Q?KM7Gtrfyu4BLrxswA/SYcmC9lP/UHSjJj0uDzdYtalif1F1jhrPCD9CLFEKU?= =?us-ascii?Q?QeT++BQ9GhNAkSfqLxTeS111GYt/oOanhxQD5cfefjzoGbSk+gvL41FowGhq?= =?us-ascii?Q?zrCnaPgFGb9WuuBeCvYMlghe5G+j7eCihK/ffvy8Ph1Y8EYaQ832MrMxcnzk?= =?us-ascii?Q?pVD6YHWtl4O/NTw0ddcFOwDQcBtL+9Yhf5gm2ZBqB9dh81HgWfan3p00vf6Z?= =?us-ascii?Q?ji1ea4gMguHLoMWmt5E7PYUNSUj6iB5B5GbbWxkpqhWQ3xQCwMuEOW8HtdTM?= =?us-ascii?Q?jOxIhXEtmJudO/cDU1ENc+pk/wRX8ilqnGcZp+cZZ3QQvo6F/LkKXwr1Ud9W?= =?us-ascii?Q?CStrHxvpMvR9P9f469gR7F5sz6wWxssE66gan/Ho5IhnD6d0r4g05gJNpd63?= =?us-ascii?Q?RdpXvb+AMd5N6IKMsgfgSrFj9q4aQlYwrZWHL/FhwdGfOl7V/gtjcsKcKLNe?= =?us-ascii?Q?Y3gSHGDgcHNCquT4JHrtFE90jiQrqI13IGPsCoUHVv8VwiJ6ApW2E4wewHDc?= =?us-ascii?Q?G7kyVqA2N6YlBqpIVQeGy4baNdVcqOyZJ7GiyyoseGweoNVzPzCqcMoPvw8S?= =?us-ascii?Q?lLsHogFdc5XAPeLEhH8cl+9HwH7mcNoErrytLRZp/2fBHSpv2/+feV6lVsGL?= =?us-ascii?Q?XSd1zUvEGhSVe3eJ96lCN0Q4Mm+gbVCBysJV79hXc7mW9l74F0G5ex8vLatQ?= =?us-ascii?Q?g6WDplnLMG8X5pO0DYDnBpCxjvOJ1cNlSitpoLcAph1gr/34gf4+8g9LVOTa?= =?us-ascii?Q?DnTHGmjLKchyHfFOVshunMUOADTZ1l6ki5VzAmY+5/cSaIPl1vTBfE31nocY?= =?us-ascii?Q?8HARCDfSl7Le+aYco54juX84vZUJnyjNTVEX/xm3FwfvAF8bIcLrmubgPA87?= =?us-ascii?Q?w6gz4nGCnl31mxV8TEUpoUQcLP0n9H7Vujh/SzQkkcEj+/+h+NpI3IOZjHEm?= =?us-ascii?Q?3lpkdu8qim3PCN96CSSRLwQl?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 929c3ad6-7897-459c-580a-08d940c2d93c X-MS-Exchange-CrossTenant-AuthSource: AM8PR04MB7970.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2021 21:13:06.6191 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ErMKq99agksjze1ZcJjzJsT9YnPJBy0qMHVnxGIC9DXjJO1DBvmv7GfkQy8piO6M1iOPasxH5qZQ2T1lkjZHcQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0401MB2354 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 166LDDSv014885 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1625606913321100001 Content-Type: text/plain; charset="utf-8" the logic to check for existence of a managed save image and use it to start the VM can be moved to libxlDomainStartNew. libxlDomainStart has become unwieldy and this is a small step to make it more manageable. Signed-off-by: Jim Fehlig Reviewed-by: J=C3=A1n Tomko --- src/libxl/libxl_domain.c | 97 ++++++++++++++++++++-------------------- 1 file changed, 49 insertions(+), 48 deletions(-) diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index 336b67b129..e906495b64 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -1230,14 +1230,10 @@ libxlDomainStart(libxlDriverPrivate *driver, uint32_t restore_ver) { libxl_domain_config d_config; - virDomainDef *def =3D NULL; virObjectEvent *event =3D NULL; - libxlSavefileHeader hdr; int ret =3D -1; uint32_t domid =3D 0; g_autofree char *dom_xml =3D NULL; - g_autofree char *managed_save_path =3D NULL; - int managed_save_fd =3D -1; libxlDomainObjPrivate *priv =3D vm->privateData; g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virHostdevManager *hostdev_mgr =3D driver->hostdevMgr; @@ -1250,47 +1246,6 @@ libxlDomainStart(libxlDriverPrivate *driver, =20 libxl_domain_config_init(&d_config); =20 - /* If there is a managed saved state restore it instead of starting - * from scratch. The old state is removed once the restoring succeeded= . */ - if (restore_fd < 0) { - managed_save_path =3D libxlDomainManagedSavePath(driver, vm); - if (managed_save_path =3D=3D NULL) - goto cleanup; - - if (virFileExists(managed_save_path)) { - - managed_save_fd =3D libxlDomainSaveImageOpen(driver, managed_s= ave_path, - &def, &hdr); - if (managed_save_fd < 0) - goto cleanup; - - restore_fd =3D managed_save_fd; - restore_ver =3D hdr.version; - - if (STRNEQ(vm->def->name, def->name) || - memcmp(vm->def->uuid, def->uuid, VIR_UUID_BUFLEN)) { - char vm_uuidstr[VIR_UUID_STRING_BUFLEN]; - char def_uuidstr[VIR_UUID_STRING_BUFLEN]; - virUUIDFormat(vm->def->uuid, vm_uuidstr); - virUUIDFormat(def->uuid, def_uuidstr); - virReportError(VIR_ERR_OPERATION_FAILED, - _("cannot restore domain '%s' uuid %s from = a file" - " which belongs to domain '%s' uuid %s"), - vm->def->name, vm_uuidstr, def->name, def_u= uidstr); - goto cleanup; - } - - virDomainObjAssignDef(vm, def, true, NULL); - def =3D NULL; - - if (unlink(managed_save_path) < 0) - VIR_WARN("Failed to remove the managed state %s", - managed_save_path); - - vm->hasManagedSave =3D false; - } - } - if (virDomainObjSetDefTransient(driver->xmlopt, vm, NULL) < 0) goto cleanup; =20 @@ -1476,8 +1431,6 @@ libxlDomainStart(libxlDriverPrivate *driver, =20 cleanup: libxl_domain_config_dispose(&d_config); - virDomainDefFree(def); - VIR_FORCE_CLOSE(managed_save_fd); return ret; } =20 @@ -1486,7 +1439,55 @@ libxlDomainStartNew(libxlDriverPrivate *driver, virDomainObj *vm, bool start_paused) { - return libxlDomainStart(driver, vm, start_paused, -1, LIBXL_SAVE_VERSI= ON); + g_autofree char *managed_save_path =3D NULL; + int restore_fd =3D -1; + virDomainDef *def =3D NULL; + libxlSavefileHeader hdr; + uint32_t restore_ver =3D LIBXL_SAVE_VERSION; + int ret =3D -1; + + /* If there is a managed saved state restore it instead of starting + * from scratch. The old state is removed once the restoring succeeded= . */ + managed_save_path =3D libxlDomainManagedSavePath(driver, vm); + if (managed_save_path =3D=3D NULL) + return -1; + + if (virFileExists(managed_save_path)) { + restore_fd =3D libxlDomainSaveImageOpen(driver, managed_save_path, + &def, &hdr); + if (restore_fd < 0) + goto cleanup; + + restore_ver =3D hdr.version; + + if (STRNEQ(vm->def->name, def->name) || + memcmp(vm->def->uuid, def->uuid, VIR_UUID_BUFLEN)) { + char vm_uuidstr[VIR_UUID_STRING_BUFLEN]; + char def_uuidstr[VIR_UUID_STRING_BUFLEN]; + virUUIDFormat(vm->def->uuid, vm_uuidstr); + virUUIDFormat(def->uuid, def_uuidstr); + virReportError(VIR_ERR_OPERATION_FAILED, + _("cannot restore domain '%s' uuid %s from a fi= le which belongs to domain '%s' uuid %s"), + vm->def->name, vm_uuidstr, def->name, def_uuids= tr); + goto cleanup; + } + + virDomainObjAssignDef(vm, def, true, NULL); + def =3D NULL; + + if (unlink(managed_save_path) < 0) + VIR_WARN("Failed to remove the managed state %s", + managed_save_path); + + vm->hasManagedSave =3D false; + } + + ret =3D libxlDomainStart(driver, vm, start_paused, restore_fd, restore= _ver); + + cleanup: + virDomainDefFree(def); + VIR_FORCE_CLOSE(restore_fd); + return ret; } =20 int --=20 2.31.1 From nobody Tue May 7 07:46:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=quarantine dis=quarantine) header.from=suse.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1625606008438254.29472622716435; Tue, 6 Jul 2021 14:13:28 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-222-pgKNNUg7O7ueGBfeQK2ucg-1; Tue, 06 Jul 2021 17:13:25 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id CEDCF800050; Tue, 6 Jul 2021 21:13:20 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A6A295D9F0; Tue, 6 Jul 2021 21:13:19 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 69C8D4EA2F; Tue, 6 Jul 2021 21:13:18 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 166LDFXY014911 for ; Tue, 6 Jul 2021 17:13:15 -0400 Received: by smtp.corp.redhat.com (Postfix) id B2F842167806; Tue, 6 Jul 2021 21:13:15 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id AD4182166BB3 for ; Tue, 6 Jul 2021 21:13:15 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9643781D9FD for ; Tue, 6 Jul 2021 21:13:15 +0000 (UTC) Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-212-czPnx0EUPh2CPcNY71Efkw-1; Tue, 06 Jul 2021 17:13:13 -0400 Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2050.outbound.protection.outlook.com [104.47.8.50]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-17-GHPjJblcPGu4Q9UZoTXbwA-1; Tue, 06 Jul 2021 23:13:11 +0200 Received: from AM8PR04MB7970.eurprd04.prod.outlook.com (2603:10a6:20b:24f::9) by AM4PR0401MB2354.eurprd04.prod.outlook.com (2603:10a6:200:54::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.31; Tue, 6 Jul 2021 21:13:10 +0000 Received: from AM8PR04MB7970.eurprd04.prod.outlook.com ([fe80::a835:c9e1:adaf:572c]) by AM8PR04MB7970.eurprd04.prod.outlook.com ([fe80::a835:c9e1:adaf:572c%7]) with mapi id 15.20.4287.033; Tue, 6 Jul 2021 21:13:10 +0000 Received: from localhost (192.225.177.165) by FR3P281CA0001.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.8 via Frontend Transport; Tue, 6 Jul 2021 21:13:09 +0000 X-MC-Unique: pgKNNUg7O7ueGBfeQK2ucg-1 X-MC-Unique: czPnx0EUPh2CPcNY71Efkw-1 X-MC-Unique: GHPjJblcPGu4Q9UZoTXbwA-1 From: Jim Fehlig To: libvir-list@redhat.com Subject: [PATCH 3/6] libxl: Add a helper function to unprepare network devices Date: Tue, 6 Jul 2021 15:12:52 -0600 Message-ID: <20210706211255.8891-4-jfehlig@suse.com> In-Reply-To: <20210706211255.8891-1-jfehlig@suse.com> References: <20210706211255.8891-1-jfehlig@suse.com> X-ClientProxiedBy: FR3P281CA0001.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::10) To AM8PR04MB7970.eurprd04.prod.outlook.com (2603:10a6:20b:24f::9) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 023340c3-4002-467f-4a82-08d940c2dba5 X-MS-TrafficTypeDiagnostic: AM4PR0401MB2354: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:109 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: TkhRBgMGSRPrsL9FA7QaUenhDEjfjpwnlHrWQe2gAmbUVnDKQsRSpx6qDuqLVofDUZcG6M39qlreSys0uyoadooM7NofekxuFy2SyZGp4jAhcoMUFLUxgtUbZZBKz0RPYiEu7qoFIjKQ9bK5w/0UKohthgTwn3dfzvtPdSHQckFa4XO7i/xJKFLIJEku0dD9pyRUXKp1iDCaCrbPlJWhzuzJDxKQqUZbBIXgup33AqcGKpzdK5R5XXJJ/yHIIU1MehZvM5u8XdnWK1p69LsYkTJ1dyZpknFA8slMQ8gQ2pU5yiqy4SlkZRYD35tULgcpK+WnoZ6smuNwuCBHEPw18lQugIDZjOPwOw/FtNjaXrpd2YLsBJosS1ljPdj617S3Wy63uqEIS9vmDaSQ3k3ygG3JGZHz0cOqBbREGKPbYQ1gX9A2XUs8J5VOpRgNI+WcVaJcDJ/NpITAPeIG2QYhvgkGW1Y5VY/mNIqm729SbbLPIOKyNRI9/0HVwm/Aok8MZAdVQESXDLQ7qZ1jPpMgJ3CLxUu53UiSuVBh/JZ5+ES/JECb6nWoS7jgy12mDtekDL/Ct5Lsxvngh29FiTrKHO0yjXcDELRQtSPt94XWtJoFdDuweZBYEQ2PMPSxj7A7JRuX8nAuZf1VHFr26EVerA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR04MB7970.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(376002)(346002)(396003)(39840400004)(366004)(478600001)(6916009)(186003)(26005)(956004)(8936002)(2616005)(6496006)(2906002)(83380400001)(5660300002)(8676002)(316002)(6486002)(1076003)(66556008)(38100700002)(66476007)(66946007)(36756003)(6666004)(86362001); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?m3qET5VMK1aIAZfNltFPB5DPuDEFlQ6SugV3LO/s26DdfHH73kcwPYjBjWUO?= =?us-ascii?Q?zI2BSLr9O17Ae97Hp+h4GgMwKSBDefw0JoAt5NEJCxGInu+CXBXbkZX8Mki5?= =?us-ascii?Q?P1qwVbqXphASpzbSmCjGnN68s8nuDwuSYtPpWnU3tXYbfYXtutTnXqA4kwX7?= =?us-ascii?Q?IY0pmw4yLx6Tg+M+uAJUn1yhXTHCQkV/ctHqTo/tP27YhmP5XA6qDWnpzh9M?= =?us-ascii?Q?79fAi2zWEsyn2YQVuXphH5JZhaJ/1jfz4L9S8khDORtWkoOdDLfLd9T1Uaur?= =?us-ascii?Q?1G+u1Oz0ErJ9Ef3IjNqdT6rMQmDOtz2UAbf9FwhflQ8s0FmFaj2eNhZPsE6/?= =?us-ascii?Q?Qs5aWCeauNTIwk6ndf4GC84wwi9pdb8NgOlntd/w41u1nXeEZhujtEqL/V4N?= =?us-ascii?Q?szBRoXYzA9h793UTjAFrCl5FxOPIJVEy26C0RthQiW4Mxyoq6vuz1mQaD5y6?= =?us-ascii?Q?KnxXZcU2duuSr7TMeTv3CzoDDR2q2HXiJfWRur8VACgm1iDqdzPCKSAw7wdG?= =?us-ascii?Q?SgBcer8ah3G0ibnShizPv1I2Fl2g/4/4qhgvrGVQVFrehdTM7Bycy1zRGkMv?= =?us-ascii?Q?DYZV6oaxxNX76j3SA8hKnHyNtXRRM1kBNkCuMyDmQ+86o8hscdnNJ2AWwFAT?= =?us-ascii?Q?8C6ykDoKoc3lu5CTrrmVP+kuWAtkFTGgNAYuTanRSNJ0raL52rB6KMn2JqOQ?= =?us-ascii?Q?EK1xIowOfdaNuvwwUUn9eqv9oHoD2EQoJsoa/zDjWG2lDqbBaU/CP53ARdaD?= =?us-ascii?Q?LkbyhH7JKshNuj/fXA9iF0g/1YVRQNvWGHq9ooSe+k47yGlYgS3bwVeimrmc?= =?us-ascii?Q?2btX72E36f1HBQanTpFMfgqlKV1XwlyYwLrhK3zw3IBiePLIgSCGFnhudAPv?= =?us-ascii?Q?HzNWOcIkoInP6lP6U80ZZ3b/3M1Q4Zkm/wna3UF8m/mkIfnugG6XU/Zm501n?= =?us-ascii?Q?PkA0hsfdfaChKhSEoBwNo2U/rUOhlr1HugSeP3Amo8YNJI9FooCYZABmwL2R?= =?us-ascii?Q?0muhtpujZDzANLZBoYbDfM4lfwRFtnb2xkrsMaVXycKUslpQm/VhQveZZ5Sr?= =?us-ascii?Q?dDrukRfRXOUiC74PgmRUZfR+3KJ1v4lVeDqXaOaj63Rj8NaS+LD+89AselO4?= =?us-ascii?Q?FTmRnl0mJOKKCDbnq2tPIReEREAoCxs1uJqBKbthwOuLRTMM9lgnsUEm7zaQ?= =?us-ascii?Q?Vemv6zLWZlSv9pke9xsLEbUP6oTv4kwBDcKUHRViz7j1cM5zpEwSYzb92VLv?= =?us-ascii?Q?uTXNwbLLYqvIiJwm2mhgOwGdR+Qmmqt4uXxad1MQ7cpWJ6ru7YtzOF7E3aTZ?= =?us-ascii?Q?CrMAVmnrB4DZHHQXXN1h8q3L?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 023340c3-4002-467f-4a82-08d940c2dba5 X-MS-Exchange-CrossTenant-AuthSource: AM8PR04MB7970.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2021 21:13:10.3736 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2wk3psTKGmLgBwZvNo3hMLnsVPt6xOaklJEdsbFRZe8C2EQC103PLUr2MdPzHqm/Bb7Mu86U+iNxkIBD1KbALg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0401MB2354 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 166LDFXY014911 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1625606010770100003 Content-Type: text/plain; charset="utf-8" Move network device cleanup code from libxlDomainCleanup to a helper function for use in a subsequent patch. Signed-off-by: Jim Fehlig Reviewed-by: J=C3=A1n Tomko --- src/libxl/libxl_domain.c | 49 +++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index e906495b64..f957c29d0d 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -826,6 +826,33 @@ libxlDomainSaveImageOpen(libxlDriverPrivate *driver, return -1; } =20 +static void +libxlNetworkUnwindDevices(virDomainDef *def) +{ + if (def->nnets) { + size_t i; + + for (i =3D 0; i < def->nnets; i++) { + virDomainNetDef *net =3D def->nets[i]; + + if (net->ifname && + STRPREFIX(net->ifname, LIBXL_GENERATED_PREFIX_XEN)) + VIR_FREE(net->ifname); + + /* cleanup actual device */ + virDomainNetRemoveHostdev(def, net); + if (net->type =3D=3D VIR_DOMAIN_NET_TYPE_NETWORK) { + g_autoptr(virConnect) conn =3D virGetConnectNetwork(); + + if (conn) + virDomainNetReleaseActualDevice(conn, def, net); + else + VIR_WARN("Unable to release network device '%s'", NULL= STR(net->ifname)); + } + } + } +} + /* * Internal domain destroy function. * @@ -923,29 +950,9 @@ libxlDomainCleanup(libxlDriverPrivate *driver, } } =20 - if ((vm->def->nnets)) { - size_t i; - - for (i =3D 0; i < vm->def->nnets; i++) { - virDomainNetDef *net =3D vm->def->nets[i]; - - if (net->ifname && - STRPREFIX(net->ifname, LIBXL_GENERATED_PREFIX_XEN)) - VIR_FREE(net->ifname); - - /* cleanup actual device */ - virDomainNetRemoveHostdev(vm->def, net); - if (net->type =3D=3D VIR_DOMAIN_NET_TYPE_NETWORK) { - if (conn || (conn =3D virGetConnectNetwork())) - virDomainNetReleaseActualDevice(conn, vm->def, net); - else - VIR_WARN("Unable to release network device '%s'", NULL= STR(net->ifname)); - } - } - } + libxlNetworkUnwindDevices(vm->def); =20 file =3D g_strdup_printf("%s/%s.xml", cfg->stateDir, vm->def->name); - if (unlink(file) < 0 && errno !=3D ENOENT && errno !=3D ENOTDIR) VIR_DEBUG("Failed to remove domain XML for %s", vm->def->name); VIR_FREE(file); --=20 2.31.1 From nobody Tue May 7 07:46:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=quarantine dis=quarantine) header.from=suse.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1625606031032822.4392207664159; Tue, 6 Jul 2021 14:13:51 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-366-BOcMtkehNkutNB-k28FxMw-1; Tue, 06 Jul 2021 17:13:47 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 093971084F5C; Tue, 6 Jul 2021 21:13:38 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DC63A5DA2D; Tue, 6 Jul 2021 21:13:37 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 95C784EA3A; Tue, 6 Jul 2021 21:13:37 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 166LDLkt014927 for ; Tue, 6 Jul 2021 17:13:22 -0400 Received: by smtp.corp.redhat.com (Postfix) id D4AC92033950; Tue, 6 Jul 2021 21:13:21 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CF6CB2033953 for ; Tue, 6 Jul 2021 21:13:19 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id DCBC189C5D7 for ; Tue, 6 Jul 2021 21:13:18 +0000 (UTC) Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-418-vY8lfENAPfiez3dmhq5_pg-1; Tue, 06 Jul 2021 17:13:17 -0400 Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2052.outbound.protection.outlook.com [104.47.8.52]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-15-LBJl2s7BPTCWbH2nKiSZlg-1; Tue, 06 Jul 2021 23:13:14 +0200 Received: from AM8PR04MB7970.eurprd04.prod.outlook.com (2603:10a6:20b:24f::9) by AM4PR0401MB2354.eurprd04.prod.outlook.com (2603:10a6:200:54::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.31; Tue, 6 Jul 2021 21:13:14 +0000 Received: from AM8PR04MB7970.eurprd04.prod.outlook.com ([fe80::a835:c9e1:adaf:572c]) by AM8PR04MB7970.eurprd04.prod.outlook.com ([fe80::a835:c9e1:adaf:572c%7]) with mapi id 15.20.4287.033; Tue, 6 Jul 2021 21:13:14 +0000 Received: from localhost (192.225.177.165) by FR3P281CA0004.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.7 via Frontend Transport; Tue, 6 Jul 2021 21:13:13 +0000 X-MC-Unique: BOcMtkehNkutNB-k28FxMw-1 X-MC-Unique: vY8lfENAPfiez3dmhq5_pg-1 X-MC-Unique: LBJl2s7BPTCWbH2nKiSZlg-1 From: Jim Fehlig To: libvir-list@redhat.com Subject: [PATCH 4/6] libxl: Introduce libxlDomainStartPrepare Date: Tue, 6 Jul 2021 15:12:53 -0600 Message-ID: <20210706211255.8891-5-jfehlig@suse.com> In-Reply-To: <20210706211255.8891-1-jfehlig@suse.com> References: <20210706211255.8891-1-jfehlig@suse.com> X-ClientProxiedBy: FR3P281CA0004.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::23) To AM8PR04MB7970.eurprd04.prod.outlook.com (2603:10a6:20b:24f::9) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f3697339-0cfc-4115-443c-08d940c2ddc9 X-MS-TrafficTypeDiagnostic: AM4PR0401MB2354: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:483 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: rGoYM9dizdxgVWJEBDnpYDM7czfrd9jLdVCyV0ISVYxV9g39qdRYbDrvLWqDV9uqVDb2x6uL/4aaR1nzmsxnqav2T+l43p3UUTPvkicLLsqdbVj6UPyetOPbslb2PNv4cAH9jxnIqtyRYEyWKGq+XlW6LmOcVqiWV4X6WWPy7rDfm5QDtzx3kiDa+qYL7MiOdm9ShSIk+ayG4PmZPWzcEAcO+usYtdE6havI2yNtQJcdLk7RZuaYMRtg8X4nccZH9HKBW2XQkyFG2CllXqe2hIsqVRimON9yCBfuPxyySUnOIARO2dLIS/IFIqCZWzXqkbJGF6KGIJHcLM55aPK012ZyUntcgPwoAUpjbTauUM7sZkFYwZOrdOyNyoEmN7R4Iq3zP8nQ0h5JhK6/bN9ruQn6ieKJL6eE1M4weqoIj8TU2xfyaDqsB8KgBvikL0urbWPrVCkPXWI0OUYP4ivt5SSenAFu+ZLTlnRVgCpQpeG4soavByQzTz8a7UDY+Sqd9tyZSmjCEIEVDMYD+ZF7sNIBOuPhTpYILf1uZRwbKmUdbkMy5n58b+WAQeTkp+bCaIh9iK6yUT0GDtOT0jxEo1lOc2zRFt9zmNnFIGxbLMabxkwxx95m6ve5u+3sV8jmxEpfUpSiiGSz4D4FujVCD5ilTqwD9kgH4FD6zw+tiJwJ4aZeaPHcv54V9xXLYZP62HOi0O5FTth3vbIoamY4Uk2MHHJonfxGQnId75Oz5Zs= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR04MB7970.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(376002)(346002)(396003)(39840400004)(366004)(478600001)(6916009)(186003)(26005)(956004)(8936002)(2616005)(6496006)(2906002)(83380400001)(5660300002)(8676002)(316002)(6486002)(1076003)(66556008)(38100700002)(66476007)(66946007)(36756003)(6666004)(86362001)(145543001)(145603002); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kzekRV65oa+3ezLjN2+1+9WtI2xp+xg+pHpOqCHSGI3USoHZvgIf6RPthJqt?= =?us-ascii?Q?hGc12gAvaDpEPemAazt7O4RK34AyzHaN5B0wnZAZ9Alif30Ea1DMfUzF9gXh?= =?us-ascii?Q?t7Dj98W1+5JgHSbpYFrswimiQPzng0YXcm1NAFG6/2pniX9uBnk8sDG3vrRI?= =?us-ascii?Q?FVVLryZPyp4/xEDb4npHCvEBGa5u8uL5GuReMKC7qAFNTuNO+yXv1UcEggxA?= =?us-ascii?Q?oC0uh0NlrgaYlImlK6dzbUCa0I2v7sRe+7OezQ2Lej4mEHM1kNH7WA4NPvrL?= =?us-ascii?Q?Y/PHCKecycpV8ALwpJz4nggEyUOV7ekCy6EPbipF6mRqb6pISICzWROKg7EQ?= =?us-ascii?Q?uG5U5kW3STV14x+bDAZwivpnwaUBfu++X3wByyFM8FVSUlvCyBUPCEaPZsbo?= =?us-ascii?Q?418cNbgSea6E4VtI+IsZmZs8k6rPv5c4FCgl0G/OYfnuOqwwxJnSKfOvk5iI?= =?us-ascii?Q?jo3s+oXx0QByaZZwhRqmxWHHe7D3MvVtIt4Ibb9FFMzafEcKxQhvFyCAzNY+?= =?us-ascii?Q?ppKRKhxcx1VRxJR6kIEGOOiy6TWgTBd4+0i0Sx/2FVUPkGtQpTmNcSinVXB0?= =?us-ascii?Q?cw9PZLDSGZlj/QDp01CIQ4cq0zk1l1LWnTMKHjvF3lNcxuBgYZP8RBHzYOZg?= =?us-ascii?Q?jsBoaRg7/2ldtQGHpm2NJ9bvR1vLGvoQ/wYYgBDEa24eznp08s3Gko9xB82d?= =?us-ascii?Q?3Nc+QxrSQg8E5SYzz8MibfrR+Mvy/unXZHX0/mdbyVQ8XOuf95g08n8yQM8P?= =?us-ascii?Q?m2BHKYwKUUJf72TI8Ufy5FerBzXXV+T1vl9GV5+sgVaaog2L4EZVsNPV7jZY?= =?us-ascii?Q?exF2lGJ8SaKhz9aZpD2vPM9Am4kGgOH2tDibgRLfRjmqUUpZ63XVRlxDYGAG?= =?us-ascii?Q?mxUQ4Ucxn1XP543gtRbiKCRAM3sVMmdHmncF1npo4wSwvkdtykcubOVStdsv?= =?us-ascii?Q?EHcjUql2BiqoS/E6emlk1M89o36LlxH08RcZDW+BaQKGM9Rw6JVDpfo2Ft5n?= =?us-ascii?Q?gheAGIgG7oLLCytmIBxW/wZF8JjMRxkQMpQLHrAydlN0r74kgMv1WlGS/veu?= =?us-ascii?Q?/Dy5A8wKzWMjAw4wCUnyPgy2ZPDVD7dDRWaCpNp+BJSmxbOB1LkC2EQV9ayl?= =?us-ascii?Q?ZvqF/0lmXFrOox6WsZesYAQNc+3xQ3T5Onn0SLKycF4kSZhNTYJB18EwcM8M?= =?us-ascii?Q?IvKZPzZeHbXwVVloIkL0BLc7Sp4uxe8JJv26958BJlGh0iYB01bl2YSXbLCu?= =?us-ascii?Q?mLPQDmULUvXQ5TFtdm0/wgQFNAVeRqldCBvWp0y/ZS5LhszBR09c7SLj8gTZ?= =?us-ascii?Q?EL38AOghxYejaCBeMDaKQ1Rg?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f3697339-0cfc-4115-443c-08d940c2ddc9 X-MS-Exchange-CrossTenant-AuthSource: AM8PR04MB7970.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2021 21:13:14.2675 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Qi4VLcxwIomN6lbkT8K5VlqqjREqbq7BFu2gxJBGFwmcsxwXf5ig++atqHIWPrrBT9a0aq053f9BS9lMsQq2Kg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0401MB2354 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 166LDLkt014927 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1625606033015100001 Content-Type: text/plain; charset="utf-8" Introduce libxlDomainStartPrepare as part of decomposing libxlDomainStart. Perform all prepratory operations such as hostdevs, network devs, etc. Also ensure all such operations are properly unwound on error. Signed-off-by: Jim Fehlig Reviewed-by: J=C3=A1n Tomko --- src/libxl/libxl_domain.c | 99 ++++++++++++++++++++++------------------ 1 file changed, 55 insertions(+), 44 deletions(-) diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index f957c29d0d..d564165807 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -1224,6 +1224,55 @@ libxlDomainCreateChannelPTY(virDomainDef *def, libxl= _ctx *ctx) libxl_device_channel_dispose(&x_channels[i]); } =20 +static int +libxlDomainStartPrepare(libxlDriverPrivate *driver, + virDomainObj *vm) +{ + virHostdevManager *hostdev_mgr =3D driver->hostdevMgr; + unsigned int hostdev_flags =3D VIR_HOSTDEV_SP_PCI | VIR_HOSTDEV_SP_USB; + + if (virDomainObjSetDefTransient(driver->xmlopt, vm, NULL) < 0) + return -1; + + /* Run an early hook to set-up missing devices */ + if (virHookPresent(VIR_HOOK_DRIVER_LIBXL)) { + g_autofree char *xml =3D virDomainDefFormat(vm->def, driver->xmlop= t, 0); + int hookret; + + hookret =3D virHookCall(VIR_HOOK_DRIVER_LIBXL, vm->def->name, + VIR_HOOK_LIBXL_OP_PREPARE, VIR_HOOK_SUBOP_BE= GIN, + NULL, xml, NULL); + /* + * If the script raised an error abort the launch + */ + if (hookret < 0) + goto error; + } + + if (virDomainLockProcessStart(driver->lockManager, + "xen:///system", + vm, + true, + NULL) < 0) + goto error; + + if (libxlNetworkPrepareDevices(vm->def) < 0) + goto error; + + if (virHostdevPrepareDomainDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_= NAME, + vm->def, hostdev_flags) < 0) + goto error; + + return 0; + + error: + libxlNetworkUnwindDevices(vm->def); + virHostdevReAttachDomainDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAM= E, + vm->def, hostdev_flags); + virDomainObjRemoveTransientDef(vm); + return -1; +} + /* * Start a domain through libxenlight. * @@ -1243,46 +1292,15 @@ libxlDomainStart(libxlDriverPrivate *driver, g_autofree char *dom_xml =3D NULL; libxlDomainObjPrivate *priv =3D vm->privateData; g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); - virHostdevManager *hostdev_mgr =3D driver->hostdevMgr; libxl_asyncprogress_how aop_console_how; libxl_domain_restore_params params; - unsigned int hostdev_flags =3D VIR_HOSTDEV_SP_PCI; g_autofree char *config_json =3D NULL; =20 - hostdev_flags |=3D VIR_HOSTDEV_SP_USB; + if (libxlDomainStartPrepare(driver, vm) < 0) + return -1; =20 libxl_domain_config_init(&d_config); =20 - if (virDomainObjSetDefTransient(driver->xmlopt, vm, NULL) < 0) - goto cleanup; - - /* Run an early hook to set-up missing devices */ - if (virHookPresent(VIR_HOOK_DRIVER_LIBXL)) { - char *xml =3D virDomainDefFormat(vm->def, driver->xmlopt, 0); - int hookret; - - hookret =3D virHookCall(VIR_HOOK_DRIVER_LIBXL, vm->def->name, - VIR_HOOK_LIBXL_OP_PREPARE, VIR_HOOK_SUBOP_BE= GIN, - NULL, xml, NULL); - VIR_FREE(xml); - - /* - * If the script raised an error abort the launch - */ - if (hookret < 0) - goto cleanup_dom; - } - - if (virDomainLockProcessStart(driver->lockManager, - "xen:///system", - vm, - true, - NULL) < 0) - goto cleanup; - - if (libxlNetworkPrepareDevices(vm->def) < 0) - goto cleanup_dom; - if (libxlBuildDomainConfig(driver->reservedGraphicsPorts, vm->def, cfg, &d_config) < 0) goto cleanup_dom; @@ -1290,10 +1308,6 @@ libxlDomainStart(libxlDriverPrivate *driver, if (cfg->autoballoon && libxlDomainFreeMem(cfg->ctx, &d_config) < 0) goto cleanup_dom; =20 - if (virHostdevPrepareDomainDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_= NAME, - vm->def, hostdev_flags) < 0) - goto cleanup_dom; - /* now that we know it is about to start call the hook if present */ if (virHookPresent(VIR_HOOK_DRIVER_LIBXL)) { char *xml =3D virDomainDefFormat(vm->def, driver->xmlopt, 0); @@ -1415,7 +1429,7 @@ libxlDomainStart(libxlDriverPrivate *driver, * If the script raised an error abort the launch */ if (hookret < 0) - goto cleanup_dom; + goto destroy_dom; } =20 event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_START= ED, @@ -1424,21 +1438,18 @@ libxlDomainStart(libxlDriverPrivate *driver, VIR_DOMAIN_EVENT_STARTED_RESTORED= ); virObjectEventStateQueue(driver->domainEventState, event); =20 - ret =3D 0; - goto cleanup; + libxl_domain_config_dispose(&d_config); + return 0; =20 destroy_dom: - ret =3D -1; libxlDomainDestroyInternal(driver, vm); vm->def->id =3D -1; virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, VIR_DOMAIN_SHUTOFF_FAILED= ); =20 cleanup_dom: libxlDomainCleanup(driver, vm); - - cleanup: libxl_domain_config_dispose(&d_config); - return ret; + return -1; } =20 int --=20 2.31.1 From nobody Tue May 7 07:46:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=quarantine dis=quarantine) header.from=suse.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 16256060225381002.4595431865814; Tue, 6 Jul 2021 14:13:42 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-397-eAxsDlrLNjmf0Zll0A8sTA-1; Tue, 06 Jul 2021 17:13:40 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 559351835AC4; Tue, 6 Jul 2021 21:13:33 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2CA465D6CF; Tue, 6 Jul 2021 21:13:33 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id E410C1809CB4; Tue, 6 Jul 2021 21:13:32 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 166LDMTA014932 for ; Tue, 6 Jul 2021 17:13:23 -0400 Received: by smtp.corp.redhat.com (Postfix) id D9F6C2033950; Tue, 6 Jul 2021 21:13:22 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D48842033953 for ; Tue, 6 Jul 2021 21:13:22 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B85CC800C00 for ; Tue, 6 Jul 2021 21:13:22 +0000 (UTC) Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-409-fb6Qj9WePPeU0C0P3Cw7mA-1; Tue, 06 Jul 2021 17:13:20 -0400 Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2051.outbound.protection.outlook.com [104.47.8.51]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-27-rqCOpJTWPGm-sBF9BdY-pQ-1; Tue, 06 Jul 2021 23:13:18 +0200 Received: from AM8PR04MB7970.eurprd04.prod.outlook.com (2603:10a6:20b:24f::9) by AM4PR0401MB2354.eurprd04.prod.outlook.com (2603:10a6:200:54::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.31; Tue, 6 Jul 2021 21:13:17 +0000 Received: from AM8PR04MB7970.eurprd04.prod.outlook.com ([fe80::a835:c9e1:adaf:572c]) by AM8PR04MB7970.eurprd04.prod.outlook.com ([fe80::a835:c9e1:adaf:572c%7]) with mapi id 15.20.4287.033; Tue, 6 Jul 2021 21:13:17 +0000 Received: from localhost (192.225.177.165) by AM9P195CA0027.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.20 via Frontend Transport; Tue, 6 Jul 2021 21:13:17 +0000 X-MC-Unique: eAxsDlrLNjmf0Zll0A8sTA-1 X-MC-Unique: fb6Qj9WePPeU0C0P3Cw7mA-1 X-MC-Unique: rqCOpJTWPGm-sBF9BdY-pQ-1 From: Jim Fehlig To: libvir-list@redhat.com Subject: [PATCH 5/6] libxl: Introduce libxlDomainStartPerform Date: Tue, 6 Jul 2021 15:12:54 -0600 Message-ID: <20210706211255.8891-6-jfehlig@suse.com> In-Reply-To: <20210706211255.8891-1-jfehlig@suse.com> References: <20210706211255.8891-1-jfehlig@suse.com> X-ClientProxiedBy: AM9P195CA0027.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::32) To AM8PR04MB7970.eurprd04.prod.outlook.com (2603:10a6:20b:24f::9) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 83d538ff-3826-4c00-bd50-08d940c2e008 X-MS-TrafficTypeDiagnostic: AM4PR0401MB2354: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:843 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: bsxCYEatj/fWB1iTbwUbsIJ8kWCu9k+B6KiAGMTnFHEGkJRXZOOh8fhqNrgEGYmeQ7QNnEiNCCPIZbuDo7inL9tOJ+WVZukGK01VBSUKuinexjVaw81egGKQw81PIEmLSfhulclQ/S32LNioCwXsebhmNFReysqTC+kIl8w2y/Kp1S1ffERsvapP0cFXw4lUfS6O3708MsU9KXD/Fo5rsC/jhinDue8aZFIfFoFCIfwZwFDG2vAd9j1qSpi2Oj4ptkpSSpYdS6ucMP7vlPQN6seNQqVeJkoOnr3emhMp31RqF+u/KLqc+ocLDK3xfwy/foRwD4DtuPIhdb8i4NvSXldlDQCedzDUlEekw4/85ZqlS6MnWc+8oJxsCHjzf/fSRMwc7LFRiQ6mdvxRxn8tk4JYRMsiUg8gePJJ6v7KtBeeHOgTeMnH5mJCyMDqXprtefoEkMQSq3grcit95hHdifJYu/04yAmRDj3OggBg0YtvMOwhdDkaoWnw3WFpa19PxrKNtSTmk3XWyynDKryhP8IJQLe1JT3dJYd/u3XJTQiQAqwZ3XhNHii/9TAqISulwVHmQT8MlKhuq23e8iixySAsqe8519Hbs2yXZJW+XaSEiH3PoYHc6T3k0gTnTsApTOmpktVtZQ6RMGzkzyUwbgGsTnOtTnComOVkj3Rprc5KfPtp+uWCR046QxQaoVpXHweWe02buXvGpaAtuV9TjzfSvoB7yC3UsTf9C0k3d1c= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR04MB7970.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(376002)(346002)(396003)(39840400004)(366004)(478600001)(6916009)(186003)(26005)(956004)(8936002)(2616005)(6496006)(2906002)(83380400001)(5660300002)(8676002)(316002)(6486002)(1076003)(66556008)(38100700002)(66476007)(66946007)(36756003)(6666004)(86362001)(145543001)(145603002); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VgT0voAXjGTnPfxvTpvUbUvGyfEBOAf7GcvltfbW2cL9fHMa6hbVztOmZ/Op?= =?us-ascii?Q?eYKuwDNKiyk4bBPfpYzPIqfEyY4sk89RUTMtJKrqTJAbb38ic0Qg7vEg1Wlo?= =?us-ascii?Q?VOv14DyIWmGTTtYyZq1QCz9O1hv1jDYdp6oOKmC7iWH3GvvJ2oiqkHSrWlPm?= =?us-ascii?Q?NDvYt8euPKvMzdq0GH2d9ro8nGOs+Z3cwSTa1/Rf5sETB070QcV4AOlZ+1Kp?= =?us-ascii?Q?8/alB1X16JUMgplkS1ZZzwhNZBY7Es42PsT7sK0bfoKz2BldjV61Qj7rof3t?= =?us-ascii?Q?NEN8ctXI7svxkmm3Nr0YuzJ0IEToMWDT7L17d722bqnEiZNSkVk7DpNtwCPE?= =?us-ascii?Q?7CmS3a5J5bGisroLQB7L2a939XzIjYPR0w91IWlz5DoCRbQD5ZN3jWNH8uW0?= =?us-ascii?Q?/1PoeDpMpFiExZ74TAUaw8af5LvDMed3j1V8wYoxgAz5l8Rk3dxAfD0ebdWs?= =?us-ascii?Q?RHkQ3KMGZbcoNNFZoKxD5BA+sjh/sXisyn5qVgDhZQ3OYC3njrVMNWWLVM/o?= =?us-ascii?Q?J7jHff7fsinYayjoi+v2cwtp9aWCzNHd2MhzgUcTxxPLWvois6uhmTPpR6Y3?= =?us-ascii?Q?0GpfsKowfqea/yVNClM/U2d40OndUm12G0fFv/XnCFoTVwTvIUdvZld2YpCN?= =?us-ascii?Q?hm5nBb6imq1w8mVs3Re2fMOAJ6RIWkvQZxdeHCxk6GoGqD7T31Yp7Jz+Ckdm?= =?us-ascii?Q?/AAx0N6Xm8OTnA/YlXXC25/XcnDHMKIq4q4WB0XVxfkLYMU2rF5F9ZErnurc?= =?us-ascii?Q?7/soALZokYdS2XeLf5mJlOCxjntag8Q/9RTzbyHTWpYeEf3Y3sGceBtnJl05?= =?us-ascii?Q?iX+dyMxIgCOyTwAJOVn7/CCI5+ri7S6KTDG6LpKVcYXDD/aXzPP3msmcPihf?= =?us-ascii?Q?lsSoOS7mloPd2dqISkYOMELfi6rc0pkBZuHE9BfvjGdmSIIaLtlmRwd3UOPk?= =?us-ascii?Q?ArYl5qdiR7vhDD4eRRo8rfStUd4zmwNrkjWkJ2KSGXuRMrSSPViFAo8IlEuc?= =?us-ascii?Q?CHV1+Pwpeh9nnDxl5ZzmVauQpWH+2xoj+L6+cSgMThPkd6c9yt/LB1ZoHf2G?= =?us-ascii?Q?VWpK1Pi0fKXIPe0qFYoU//l7VZZoVOJaCZNFxaC/GFYN04ylooC/G1bvCRfz?= =?us-ascii?Q?+VW2f7DjnbUuv2jNDMkGcX7+9w7qNwrb7nl31GSAz2PWtzVy7jAxkjxl3vAE?= =?us-ascii?Q?pz8AbTMpYS78U7Jclh+Z5HonBg/SHN0nSK64rjiPqPlQjopqA2Mu7UZ+9uB7?= =?us-ascii?Q?Q895afGRq+EKMm0x4F/o7kHV5ckxf4NTsjANcCOxXkV36Sw4BcWUexhjXwnT?= =?us-ascii?Q?e6nnPaCgOUjXPpI6X2W+BAtO?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83d538ff-3826-4c00-bd50-08d940c2e008 X-MS-Exchange-CrossTenant-AuthSource: AM8PR04MB7970.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2021 21:13:17.9154 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OgtP8/l08w1Il3hqrGc0dOyDyeRDk5El4F/7Ad/vtgKpbPDAKQptelqto6tPwSl6lLRzwnIJ/dHWBlQxwKWTKA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0401MB2354 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 166LDMTA014932 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1625606024345100004 Content-Type: text/plain; charset="utf-8" Introduce libxlDomainStartPerform as part of decomposing libxlDomainStart. Perform all operations that are part of starting a domain. On error the domain is destroyed from libxl's perspective, but the operations perfomed in libxlDomainStartPrepare must be unwound by libxlDomainStart. Signed-off-by: Jim Fehlig Reviewed-by: J=C3=A1n Tomko --- src/libxl/libxl_domain.c | 87 ++++++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 35 deletions(-) diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index d564165807..c656cba3a3 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -1273,21 +1273,16 @@ libxlDomainStartPrepare(libxlDriverPrivate *driver, return -1; } =20 -/* - * Start a domain through libxenlight. - * - * virDomainObj *must be locked and a job acquired on invocation - */ static int -libxlDomainStart(libxlDriverPrivate *driver, - virDomainObj *vm, - bool start_paused, - int restore_fd, - uint32_t restore_ver) +libxlDomainStartPerform(libxlDriverPrivate *driver, + virDomainObj *vm, + bool start_paused, + int restore_fd, + uint32_t restore_ver) { libxl_domain_config d_config; - virObjectEvent *event =3D NULL; int ret =3D -1; + int libxlret =3D -1; uint32_t domid =3D 0; g_autofree char *dom_xml =3D NULL; libxlDomainObjPrivate *priv =3D vm->privateData; @@ -1296,17 +1291,14 @@ libxlDomainStart(libxlDriverPrivate *driver, libxl_domain_restore_params params; g_autofree char *config_json =3D NULL; =20 - if (libxlDomainStartPrepare(driver, vm) < 0) - return -1; - libxl_domain_config_init(&d_config); =20 if (libxlBuildDomainConfig(driver->reservedGraphicsPorts, vm->def, cfg, &d_config) < 0) - goto cleanup_dom; + goto cleanup; =20 if (cfg->autoballoon && libxlDomainFreeMem(cfg->ctx, &d_config) < 0) - goto cleanup_dom; + goto cleanup; =20 /* now that we know it is about to start call the hook if present */ if (virHookPresent(VIR_HOOK_DRIVER_LIBXL)) { @@ -1322,7 +1314,7 @@ libxlDomainStart(libxlDriverPrivate *driver, * If the script raised an error abort the launch */ if (hookret < 0) - goto cleanup_dom; + goto cleanup; } =20 if (priv->hookRun) { @@ -1341,19 +1333,19 @@ libxlDomainStart(libxlDriverPrivate *driver, aop_console_how.for_callback =3D vm; aop_console_how.callback =3D libxlConsoleCallback; if (restore_fd < 0) { - ret =3D libxl_domain_create_new(cfg->ctx, &d_config, + libxlret =3D libxl_domain_create_new(cfg->ctx, &d_config, &domid, NULL, &aop_console_how); } else { libxl_domain_restore_params_init(¶ms); params.stream_version =3D restore_ver; - ret =3D libxlDomainCreateRestoreWrapper(cfg->ctx, &d_config, &domi= d, + libxlret =3D libxlDomainCreateRestoreWrapper(cfg->ctx, &d_config, = &domid, restore_fd, ¶ms, &aop_console_how); libxl_domain_restore_params_dispose(¶ms); } virObjectLock(vm); =20 - if (ret) { + if (libxlret) { if (restore_fd < 0) virReportError(VIR_ERR_INTERNAL_ERROR, _("libxenlight failed to create new domain '%s'= "), @@ -1362,7 +1354,7 @@ libxlDomainStart(libxlDriverPrivate *driver, virReportError(VIR_ERR_INTERNAL_ERROR, _("libxenlight failed to restore domain '%s'"), d_config.c_info.name); - goto cleanup_dom; + goto cleanup; } =20 /* @@ -1412,9 +1404,6 @@ libxlDomainStart(libxlDriverPrivate *driver, if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) goto destroy_dom; =20 - if (g_atomic_int_add(&driver->nactive, 1) =3D=3D 0 && driver->inhibitC= allback) - driver->inhibitCallback(true, driver->inhibitOpaque); - /* finally we can call the 'started' hook script if any */ if (virHookPresent(VIR_HOOK_DRIVER_LIBXL)) { char *xml =3D virDomainDefFormat(vm->def, driver->xmlopt, 0); @@ -1432,24 +1421,52 @@ libxlDomainStart(libxlDriverPrivate *driver, goto destroy_dom; } =20 - event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_START= ED, - restore_fd < 0 ? - VIR_DOMAIN_EVENT_STARTED_BOOTED : - VIR_DOMAIN_EVENT_STARTED_RESTORED= ); - virObjectEventStateQueue(driver->domainEventState, event); - - libxl_domain_config_dispose(&d_config); - return 0; + ret =3D 0; + goto cleanup; =20 destroy_dom: libxlDomainDestroyInternal(driver, vm); vm->def->id =3D -1; virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, VIR_DOMAIN_SHUTOFF_FAILED= ); =20 - cleanup_dom: - libxlDomainCleanup(driver, vm); + cleanup: libxl_domain_config_dispose(&d_config); - return -1; + return ret; +} + +/* + * Start a domain through libxenlight. + * + * virDomainObj must be locked and a job acquired on invocation + */ +static int +libxlDomainStart(libxlDriverPrivate *driver, + virDomainObj *vm, + bool start_paused, + int restore_fd, + uint32_t restore_ver) +{ + virObjectEvent *event =3D NULL; + + if (libxlDomainStartPrepare(driver, vm) < 0) + return -1; + + if (libxlDomainStartPerform(driver, vm, start_paused, + restore_fd, restore_ver) < 0) { + libxlDomainCleanup(driver, vm); + return -1; + } + + if (g_atomic_int_add(&driver->nactive, 1) =3D=3D 0 && driver->inhibitC= allback) + driver->inhibitCallback(true, driver->inhibitOpaque); + + event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_START= ED, + restore_fd < 0 ? + VIR_DOMAIN_EVENT_STARTED_BOO= TED : + VIR_DOMAIN_EVENT_STARTED_RES= TORED); + virObjectEventStateQueue(driver->domainEventState, event); + + return 0; } =20 int --=20 2.31.1 From nobody Tue May 7 07:46:36 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=quarantine dis=quarantine) header.from=suse.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1625606023300924.200389964236; Tue, 6 Jul 2021 14:13:43 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-177-e9zO-61zOo-Ai9E3mu_62A-1; Tue, 06 Jul 2021 17:13:40 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5618E1084F55; Tue, 6 Jul 2021 21:13:33 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 28E3C908E; Tue, 6 Jul 2021 21:13:33 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id DFA6B1809CB3; Tue, 6 Jul 2021 21:13:32 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 166LDRjF014951 for ; Tue, 6 Jul 2021 17:13:27 -0400 Received: by smtp.corp.redhat.com (Postfix) id E2CCBC77F2; Tue, 6 Jul 2021 21:13:26 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DC8BDC77E9 for ; Tue, 6 Jul 2021 21:13:26 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id BF0FE800B28 for ; Tue, 6 Jul 2021 21:13:26 +0000 (UTC) Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-166-KRiMJgPVPomoVHT50qY3FQ-1; Tue, 06 Jul 2021 17:13:24 -0400 Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2059.outbound.protection.outlook.com [104.47.8.59]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-26-zF5u2DltMfSr1tNc5qIypw-1; Tue, 06 Jul 2021 23:13:22 +0200 Received: from AM8PR04MB7970.eurprd04.prod.outlook.com (2603:10a6:20b:24f::9) by AM4PR0401MB2354.eurprd04.prod.outlook.com (2603:10a6:200:54::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.31; Tue, 6 Jul 2021 21:13:21 +0000 Received: from AM8PR04MB7970.eurprd04.prod.outlook.com ([fe80::a835:c9e1:adaf:572c]) by AM8PR04MB7970.eurprd04.prod.outlook.com ([fe80::a835:c9e1:adaf:572c%7]) with mapi id 15.20.4287.033; Tue, 6 Jul 2021 21:13:21 +0000 Received: from localhost (192.225.177.165) by AM9P195CA0009.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.19 via Frontend Transport; Tue, 6 Jul 2021 21:13:20 +0000 X-MC-Unique: e9zO-61zOo-Ai9E3mu_62A-1 X-MC-Unique: KRiMJgPVPomoVHT50qY3FQ-1 X-MC-Unique: zF5u2DltMfSr1tNc5qIypw-1 From: Jim Fehlig To: libvir-list@redhat.com Subject: [PATCH 6/6] libxl: Add helper function for running the hook script Date: Tue, 6 Jul 2021 15:12:55 -0600 Message-ID: <20210706211255.8891-7-jfehlig@suse.com> In-Reply-To: <20210706211255.8891-1-jfehlig@suse.com> References: <20210706211255.8891-1-jfehlig@suse.com> X-ClientProxiedBy: AM9P195CA0009.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::14) To AM8PR04MB7970.eurprd04.prod.outlook.com (2603:10a6:20b:24f::9) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 43b9b437-1f5b-40de-9336-08d940c2e225 X-MS-TrafficTypeDiagnostic: AM4PR0401MB2354: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:167 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: 8Al0o0gpPdelrvQaz4K+W3mb/1HFiJpxPfeEluP1cFsN/EpwtyXmRlfI2gyALMefbA4sa1l+CNBRwdm7F9A6/uaLPdyR/ziKfgdkLPcN6sOFzVb81podVXBCtnXMSUIUcUgZc6HK5R6ImSs9dqFvMICxgLbDaONCAkDFy94qj+brMELYIwZfANDanmtytVx0I3qzTfQkCEjqcK0gCHsQgVLBD6ybfEgCv+oOvlaqHn7K5wir7erZ9s8+w6zA0yNUn2JhLi/iDeEgQHNFhAeVeX4kQWGV7LsXXWOX0iTX6YfAY5yRU3VVHh5zTLfC+c2ylKTYaV0qhuGLnHy4OYGTqMh3oNyqaiJnoMRG4DGuptzWt+KsTs6T0Z3EfqjfpsUle3m9ZNu1bX22w7E1ZCJR3uVWealH5rRg0WLIXz/1Y7cigCOFilkYQiPRV9FOpAOvwSlwbBswO6fVhGZjLXQ1p1aJ/y7xzOhtKmMwEuWhA8E+wU1zan6ZYASP/SMMUCjEKRnTFmrnDxBAIxHj2pQ7IMKH8g7ua4yGZQ7gvzsF6cme9DQ94sNcUaLk55YP4jSjyA8jqKDnYwTEPicBfI6mBi9D5GpNIFyme9jaDYmMBI8Z/Nd5mvjDUibZZjsVxxl70/DZZYnvjpaUu2naaIHWsQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR04MB7970.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(376002)(346002)(396003)(39840400004)(366004)(478600001)(6916009)(186003)(26005)(956004)(8936002)(2616005)(6496006)(2906002)(83380400001)(5660300002)(8676002)(316002)(6486002)(1076003)(66556008)(38100700002)(66476007)(66946007)(36756003)(6666004)(86362001); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TxPigLbyheeoUmPerleOrSykvFZbQlglCDJkrT6hJE+3TU2QuzcPdYxTBcuX?= =?us-ascii?Q?3lksLnX7hKcbjAAli8Wbv7B2TycTB7jvFzA11joC4mMKRA1DrLeZxRTxwyLS?= =?us-ascii?Q?aY6ZJuFVXYY6fD4VU5culvWwodlarjE2mYM8E2uc+Cy8yXlnyFx+LZ+N7zGJ?= =?us-ascii?Q?TB54A+dqMIZ4nnWjNadlhwQMzRiFeLuoGeSo33x9p8+bJetDzCHH9faaNekN?= =?us-ascii?Q?FwyxV78n3I8LCsVfxd9TyebBBGFm593nh4nY41irJu7/QrMs8ofIEvlZ3GvI?= =?us-ascii?Q?0XEilWzVoE28AOi8Yn7FxfukbllSoOcmPSAMTdprJprVl01vjQXv4GosCmuN?= =?us-ascii?Q?GSXittckMAhRYHQi5pNpLhm22UeHkm56SWiCFUCz3W8nn1lOE1SePgFWtn63?= =?us-ascii?Q?6GzJ8iAHiZzpiyBE+5s+Ei1sBJDoN7Wjg9z4kxtWzjlrjgwvIPMC4IUK/Qon?= =?us-ascii?Q?mA3NRlYeV55XFdV/dQwCco/VcTG6PQ2vVoMDD4MwPFd7hlPLXva7MLIC0XYT?= =?us-ascii?Q?o71f2OYfksiaZlQV4apU/I/ElJeulccnmdr1IPxLIstB5FLDF2Z01AS5TKp8?= =?us-ascii?Q?ItrZnnrn2V3kT3Ne1CDVFeO6XiWVMfDwCuzN+BBNHQFbmtHBMI4cEKGGdfTa?= =?us-ascii?Q?4qr+7uhHkfEWNtVsWo/x+udWTZlMucCnGyapL2iJOCC9BG6+zxiUK5Rp1m7L?= =?us-ascii?Q?fN4c6ji8Jc05LfGP6diRIYwfERNCRiT+SgeY6A/vJnnaiB72R8IVlkxx1uvQ?= =?us-ascii?Q?MUpw9q417EpEDPbqVNNbI6bU8HTBrbV6Xgt5ds3QoYTANZMBCJpVQIep9EVY?= =?us-ascii?Q?T4EXufWeJrxAbo4uFOALlGf3dWo9wnUeSOoU2rvaN2ReGDQ/ipuCYbJbcIdn?= =?us-ascii?Q?w7DgoRdVCkC3/vkjBp/BdxX7BuRXSKpQJCsFfjkJWglkRl2mJ79el1ewFq3E?= =?us-ascii?Q?GFHcPrKIO+zJpZfdJzueiM76q0Jo498W6fKAbLr8MEW7E+Lw4ZmYU6Ll01V6?= =?us-ascii?Q?5xUnalOCDJNToipQz7jkOnwEX0bI/G4MZUDj+VSYnt3d2fJpRbnDqesUOBD7?= =?us-ascii?Q?ePUgr9apZfllm6e+jMteZf7hQeTNi3N3ywJqIocoDF73DTPtKl91EqHOcbkO?= =?us-ascii?Q?pNvvNKwpe3gssBPoy7bavlXrtwHWUQuohpOC/cKDwJn9cztgczZSMteEPn39?= =?us-ascii?Q?t3PdbPcFvB2uBqlTWlfFNtDurG1xQqB0v4JWzzzx9yTa9sDcKIu2tSQIAwEo?= =?us-ascii?Q?04FOgcfOpRyGuhmuuXGiwfeiV4hj+R/HIXwPu7urTJ7aJweuMylN60AFbpM0?= =?us-ascii?Q?QxQ7kVZ7acOTHGXnusJwD4id?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 43b9b437-1f5b-40de-9336-08d940c2e225 X-MS-Exchange-CrossTenant-AuthSource: AM8PR04MB7970.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2021 21:13:21.5813 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Ahz8bnpNejtam6nowYvbfNuBHneud/s+CEJzKeXao9iDSG8EkhJg5SeeKVEyUjNcqHC7ls2I7lXZqj6z0A0NVQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0401MB2354 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 166LDRjF014951 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1625606024306100002 Content-Type: text/plain; charset="utf-8" The same pattern of retrieving the domXML, running the hook script, and checking for error is used throughout the libxl driver. Remove some repetitive code by adding a helper function to perform these tasks. Signed-off-by: Jim Fehlig Reviewed-by: J=C3=A1n Tomko --- src/libxl/libxl_domain.c | 102 ++++++++++++++---------------------- src/libxl/libxl_domain.h | 8 +++ src/libxl/libxl_driver.c | 26 +++------ src/libxl/libxl_migration.c | 15 ++---- 4 files changed, 58 insertions(+), 93 deletions(-) diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index c656cba3a3..e699c1daa9 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -853,6 +853,25 @@ libxlNetworkUnwindDevices(virDomainDef *def) } } =20 +int +libxlDomainHookRun(libxlDriverPrivate *driver, + virDomainDef *def, + unsigned int def_fmtflags, + int hookop, + int hooksubop, + char **output) +{ + g_autofree char *xml =3D NULL; + + if (!virHookPresent(VIR_HOOK_DRIVER_LIBXL)) + return 0; + + xml =3D virDomainDefFormat(def, driver->xmlopt, def_fmtflags); + return virHookCall(VIR_HOOK_DRIVER_LIBXL, def->name, + hookop, hooksubop, + NULL, xml, output); +} + /* * Internal domain destroy function. * @@ -904,16 +923,10 @@ libxlDomainCleanup(libxlDriverPrivate *driver, =20 hostdev_flags |=3D VIR_HOSTDEV_SP_USB; =20 - /* now that we know it's stopped call the hook if present */ - if (virHookPresent(VIR_HOOK_DRIVER_LIBXL)) { - char *xml =3D virDomainDefFormat(vm->def, driver->xmlopt, 0); - - /* we can't stop the operation even if the script raised an error = */ - ignore_value(virHookCall(VIR_HOOK_DRIVER_LIBXL, vm->def->name, - VIR_HOOK_LIBXL_OP_STOPPED, VIR_HOOK_SUBOP= _END, - NULL, xml, NULL)); - VIR_FREE(xml); - } + /* Call hook with stopped operation. Ignore error and continue with cl= eanup */ + ignore_value(libxlDomainHookRun(driver, vm->def, 0, + VIR_HOOK_LIBXL_OP_STOPPED, + VIR_HOOK_SUBOP_END, NULL)); =20 virHostdevReAttachDomainDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAM= E, vm->def, hostdev_flags); @@ -957,16 +970,10 @@ libxlDomainCleanup(libxlDriverPrivate *driver, VIR_DEBUG("Failed to remove domain XML for %s", vm->def->name); VIR_FREE(file); =20 - /* The "release" hook cleans up additional resources */ - if (virHookPresent(VIR_HOOK_DRIVER_LIBXL)) { - char *xml =3D virDomainDefFormat(vm->def, driver->xmlopt, 0); - - /* we can't stop the operation even if the script raised an error = */ - ignore_value(virHookCall(VIR_HOOK_DRIVER_LIBXL, vm->def->name, - VIR_HOOK_LIBXL_OP_RELEASE, VIR_HOOK_SUBOP= _END, - NULL, xml, NULL)); - VIR_FREE(xml); - } + /* Call hook with release operation. Ignore error and continue with cl= eanup */ + ignore_value(libxlDomainHookRun(driver, vm->def, 0, + VIR_HOOK_LIBXL_OP_RELEASE, + VIR_HOOK_SUBOP_END, NULL)); =20 virDomainObjRemoveTransientDef(vm); } @@ -1235,19 +1242,10 @@ libxlDomainStartPrepare(libxlDriverPrivate *driver, return -1; =20 /* Run an early hook to set-up missing devices */ - if (virHookPresent(VIR_HOOK_DRIVER_LIBXL)) { - g_autofree char *xml =3D virDomainDefFormat(vm->def, driver->xmlop= t, 0); - int hookret; - - hookret =3D virHookCall(VIR_HOOK_DRIVER_LIBXL, vm->def->name, - VIR_HOOK_LIBXL_OP_PREPARE, VIR_HOOK_SUBOP_BE= GIN, - NULL, xml, NULL); - /* - * If the script raised an error abort the launch - */ - if (hookret < 0) - goto error; - } + if (libxlDomainHookRun(driver, vm->def, 0, + VIR_HOOK_LIBXL_OP_PREPARE, + VIR_HOOK_SUBOP_BEGIN, NULL) < 0) + goto error; =20 if (virDomainLockProcessStart(driver->lockManager, "xen:///system", @@ -1301,21 +1299,10 @@ libxlDomainStartPerform(libxlDriverPrivate *driver, goto cleanup; =20 /* now that we know it is about to start call the hook if present */ - if (virHookPresent(VIR_HOOK_DRIVER_LIBXL)) { - char *xml =3D virDomainDefFormat(vm->def, driver->xmlopt, 0); - int hookret; - - hookret =3D virHookCall(VIR_HOOK_DRIVER_LIBXL, vm->def->name, - VIR_HOOK_LIBXL_OP_START, VIR_HOOK_SUBOP_BEGI= N, - NULL, xml, NULL); - VIR_FREE(xml); - - /* - * If the script raised an error abort the launch - */ - if (hookret < 0) - goto cleanup; - } + if (libxlDomainHookRun(driver, vm->def, 0, + VIR_HOOK_LIBXL_OP_START, + VIR_HOOK_SUBOP_BEGIN, NULL) < 0) + goto cleanup; =20 if (priv->hookRun) { char uuidstr[VIR_UUID_STRING_BUFLEN]; @@ -1405,21 +1392,10 @@ libxlDomainStartPerform(libxlDriverPrivate *driver, goto destroy_dom; =20 /* finally we can call the 'started' hook script if any */ - if (virHookPresent(VIR_HOOK_DRIVER_LIBXL)) { - char *xml =3D virDomainDefFormat(vm->def, driver->xmlopt, 0); - int hookret; - - hookret =3D virHookCall(VIR_HOOK_DRIVER_LIBXL, vm->def->name, - VIR_HOOK_LIBXL_OP_STARTED, VIR_HOOK_SUBOP_BE= GIN, - NULL, xml, NULL); - VIR_FREE(xml); - - /* - * If the script raised an error abort the launch - */ - if (hookret < 0) - goto destroy_dom; - } + if (libxlDomainHookRun(driver, vm->def, 0, + VIR_HOOK_LIBXL_OP_STARTED, + VIR_HOOK_SUBOP_BEGIN, NULL) < 0) + goto destroy_dom; =20 ret =3D 0; goto cleanup; diff --git a/src/libxl/libxl_domain.h b/src/libxl/libxl_domain.h index 526c8e7332..1618c47ed5 100644 --- a/src/libxl/libxl_domain.h +++ b/src/libxl/libxl_domain.h @@ -108,6 +108,14 @@ libxlDomainSaveImageOpen(libxlDriverPrivate *driver, libxlSavefileHeader *ret_hdr) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4); =20 +int +libxlDomainHookRun(libxlDriverPrivate *driver, + virDomainDef *def, + unsigned int def_fmtflags, + int hookop, + int hooksubop, + char **output); + int libxlDomainDestroyInternal(libxlDriverPrivate *driver, virDomainObj *vm); diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 838747a1e3..0c3c53c1d1 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -450,26 +450,12 @@ libxlReconnectDomain(virDomainObj *vm, if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) VIR_WARN("Cannot update XML for running Xen guest %s", vm->def->na= me); =20 - /* now that we know it's reconnected call the hook if present */ - if (virHookPresent(VIR_HOOK_DRIVER_LIBXL) && - STRNEQ("Domain-0", vm->def->name)) { - char *xml =3D virDomainDefFormat(vm->def, driver->xmlopt, 0); - int hookret; - - /* we can't stop the operation even if the script raised an error = */ - hookret =3D virHookCall(VIR_HOOK_DRIVER_LIBXL, vm->def->name, - VIR_HOOK_LIBXL_OP_RECONNECT, VIR_HOOK_SUBOP_= BEGIN, - NULL, xml, NULL); - VIR_FREE(xml); - if (hookret < 0) { - /* Stop the domain if the hook failed */ - if (virDomainObjIsActive(vm)) { - libxlDomainDestroyInternal(driver, vm); - virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, VIR_DOMAIN_SH= UTOFF_FAILED); - } - goto error; - } - } + /* now that we know it's reconnected call the hook */ + if (STRNEQ("Domain-0", vm->def->name) && + (libxlDomainHookRun(driver, vm->def, 0, + VIR_HOOK_LIBXL_OP_RECONNECT, + VIR_HOOK_SUBOP_BEGIN, NULL) < 0)) + goto error; =20 ret =3D 0; =20 diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index 0af6e0d09a..4677f798fc 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -490,18 +490,13 @@ libxlDomainMigrationPrepareAny(virConnectPtr dconn, =20 /* Let migration hook filter domain XML */ if (virHookPresent(VIR_HOOK_DRIVER_LIBXL)) { - char *xml; int hookret; =20 - if (!(xml =3D virDomainDefFormat(*def, driver->xmlopt, - VIR_DOMAIN_XML_SECURE | - VIR_DOMAIN_XML_MIGRATABLE))) - return -1; - - hookret =3D virHookCall(VIR_HOOK_DRIVER_LIBXL, (*def)->name, - VIR_HOOK_LIBXL_OP_MIGRATE, VIR_HOOK_SUBOP_BE= GIN, - NULL, xml, xmlout); - VIR_FREE(xml); + hookret =3D libxlDomainHookRun(driver, *def, + VIR_DOMAIN_XML_SECURE | VIR_DOMAIN_XM= L_MIGRATABLE, + VIR_HOOK_LIBXL_OP_MIGRATE, + VIR_HOOK_SUBOP_BEGIN, + xmlout); =20 if (hookret < 0) { return -1; --=20 2.31.1