From nobody Mon Feb 9 14:15:01 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1589371153; cv=none; d=zohomail.com; s=zohoarc; b=g5cq451s4oiF9XxYvYSDAqSEdz2HyvHyDHv32LqT7PQyDv80XMJtnJell1TzsGlK3PWYFq1JmlXftkurr07IkD44qPc3oXJXeD6H9pi8lHKe7xb4nj/SvqUXqXlDUv8w7xQbDvVFXS7R4Sducvj0fNAG7MkIf0Xu4p0bCnqeRAE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1589371153; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zZMcHVWb3GSsSKQRZ4dumVIcdYfRAbtTuN3b7A/826E=; b=ntG5VNLvrDFSODFAV3ALC13caLekxwijAckFFlh49QdRQ3SiMxKTbHjNiDHsRhK3razcOGMdH8HnnafW+NtyFwh4e02MmVCPCKRCwe8XXcwnMq155VcLsi+pni2OhsxunGdPwr2OLtIoix//57UM2N+m6sliN/xvgRpARDVTXnE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1589371153765552.3968642789483; Wed, 13 May 2020 04:59:13 -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-75-jmEUfP4cMFKlehSFjqH41A-1; Wed, 13 May 2020 07:59:08 -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 38BF3460; Wed, 13 May 2020 11:59:02 +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 19B425C1D3; Wed, 13 May 2020 11:59:02 +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 E07F54EA02; Wed, 13 May 2020 11:59:01 +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 04DBwvTY016331 for ; Wed, 13 May 2020 07:58:57 -0400 Received: by smtp.corp.redhat.com (Postfix) id EFDC85EDD7; Wed, 13 May 2020 11:58:56 +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 E98D2114D0C for ; Wed, 13 May 2020 11:58:56 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C151D80A0C4 for ; Wed, 13 May 2020 11:58:56 +0000 (UTC) Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-51-1RdF4a7wOmuDuhEinz7zKA-1; Wed, 13 May 2020 07:58:53 -0400 Received: by mail-wm1-f68.google.com with SMTP id k12so26199128wmj.3 for ; Wed, 13 May 2020 04:58:53 -0700 (PDT) Received: from localhost.localdomain (public-gprs367127.centertel.pl. [37.47.65.88]) by smtp.gmail.com with ESMTPSA id l1sm27838422wrc.24.2020.05.13.04.58.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2020 04:58:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1589371152; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=zZMcHVWb3GSsSKQRZ4dumVIcdYfRAbtTuN3b7A/826E=; b=f+A53J6KV9lTtEaUoRpgT72gp6J7vsf086WKvT+agulrbBJhlCKBoNb6T6MamTKe/fAGkR Demz0B8ZllX1TKFqm0a09LnU4vso0wKPz7ryWAMxAfUioBtMeuoLqvW6QhwDLQBDSMQFDv U3Lqt1bTXc/eLtQjSxYKmEsJcb2Xk4w= X-MC-Unique: jmEUfP4cMFKlehSFjqH41A-1 X-MC-Unique: 1RdF4a7wOmuDuhEinz7zKA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zZMcHVWb3GSsSKQRZ4dumVIcdYfRAbtTuN3b7A/826E=; b=RhtYUD8zg8AtLGC3/bYIims43VW5sim0X56GS+icnWrVbhcH/iJFx3aUwFBi41v1dg XaNmsY6cRz608Yz737d16CoZr0HNYbg46XQFOWrjcpTgqvql562nWpSnIJMIjbU5kaeh AdpWEQkCi7Q9X1vKJTuLPMjorjzBHDg5H2j2M5n++fOK0ENyi+GQXcAWEG08xO1MHaEF T81yBHR7YzHRd6ArAbWWCPgENAXqtRnygirtuyfG3sGQdLGSI3wFAqsBGOibAPxB24Wp b8mRUjdnSF768pLQYK3qnZCYII0oaQURC/EQhzdrYiYUooUZSTsEO790knVRPKbqpxIE 6Q1w== X-Gm-Message-State: AGi0PuYeggg4FC26IJ1xKtJMzyAjngfQWTmO/mMbbjB8BuPJ0aqkJ2KV VGBdYKBNNC3ewb5K9LpTKp35EB/E X-Google-Smtp-Source: APiQypLzg59y0ss3Xolc/1Xk/IDffY94JHLX1PfXRgJieIqaO2hEJsHuePBPqUzb0IrURGL3Pz9swA== X-Received: by 2002:a1c:5944:: with SMTP id n65mr31570530wmb.73.1589371131599; Wed, 13 May 2020 04:58:51 -0700 (PDT) From: Rafael Fonseca To: libvirt-list@redhat.com Subject: [PATCH 32/40] lxc: convert virLXCDriverConfig to GObject Date: Wed, 13 May 2020 13:57:16 +0200 Message-Id: <20200513115724.157687-33-r4f4rfs@gmail.com> In-Reply-To: <20200513115724.157687-1-r4f4rfs@gmail.com> References: <20200513115724.157687-1-r4f4rfs@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Cc: Rafael Fonseca 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 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Signed-off-by: Rafael Fonseca --- src/lxc/lxc_conf.c | 31 +++++++++++++-------------- src/lxc/lxc_conf.h | 10 +++++++-- src/lxc/lxc_driver.c | 50 +++++++++++++++---------------------------- src/lxc/lxc_process.c | 33 +++++++++------------------- 4 files changed, 50 insertions(+), 74 deletions(-) diff --git a/src/lxc/lxc_conf.c b/src/lxc/lxc_conf.c index 6942781731..399e774ffe 100644 --- a/src/lxc/lxc_conf.c +++ b/src/lxc/lxc_conf.c @@ -42,19 +42,20 @@ =20 VIR_LOG_INIT("lxc.lxc_conf"); =20 -static virClassPtr virLXCDriverConfigClass; -static void virLXCDriverConfigDispose(void *obj); +G_DEFINE_TYPE(virLXCDriverConfig, vir_lxc_driver_config, G_TYPE_OBJECT); =20 -static int virLXCConfigOnceInit(void) -{ - if (!VIR_CLASS_NEW(virLXCDriverConfig, virClassForObject())) - return -1; +static void virLXCDriverConfigFinalize(GObject *obj); =20 - return 0; +static void vir_lxc_driver_config_init(virLXCDriverConfig *cfg G_GNUC_UNUS= ED) +{ } =20 -VIR_ONCE_GLOBAL_INIT(virLXCConfig); +static void vir_lxc_driver_config_class_init(virLXCDriverConfigClass *klas= s) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 + obj->finalize =3D virLXCDriverConfigFinalize; +} =20 /* Functions */ virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr driver) @@ -226,11 +227,7 @@ virLXCDriverConfigNew(void) { virLXCDriverConfigPtr cfg; =20 - if (virLXCConfigInitialize() < 0) - return NULL; - - if (!(cfg =3D virObjectNew(virLXCDriverConfigClass))) - return NULL; + cfg =3D VIR_LXC_DRIVER_CONFIG(g_object_new(VIR_TYPE_LXC_DRIVER_CONFIG,= NULL)); =20 cfg->securityDefaultConfined =3D false; cfg->securityRequireConfined =3D false; @@ -277,19 +274,21 @@ virLXCDriverConfigPtr virLXCDriverGetConfig(virLXCDri= verPtr driver) { virLXCDriverConfigPtr cfg; lxcDriverLock(driver); - cfg =3D virObjectRef(driver->config); + cfg =3D g_object_ref(driver->config); lxcDriverUnlock(driver); return cfg; } =20 static void -virLXCDriverConfigDispose(void *obj) +virLXCDriverConfigFinalize(GObject *obj) { - virLXCDriverConfigPtr cfg =3D obj; + virLXCDriverConfigPtr cfg =3D VIR_LXC_DRIVER_CONFIG(obj); =20 VIR_FREE(cfg->configDir); VIR_FREE(cfg->autostartDir); VIR_FREE(cfg->stateDir); VIR_FREE(cfg->logDir); VIR_FREE(cfg->securityDriverName); + + G_OBJECT_CLASS(vir_lxc_driver_config_parent_class)->finalize(obj); } diff --git a/src/lxc/lxc_conf.h b/src/lxc/lxc_conf.h index f2f0e0a570..5ed84f79c7 100644 --- a/src/lxc/lxc_conf.h +++ b/src/lxc/lxc_conf.h @@ -34,6 +34,7 @@ #include "virusb.h" #include "virclosecallbacks.h" #include "virhostdev.h" +#include =20 #define LXC_DRIVER_NAME "LXC" =20 @@ -45,11 +46,16 @@ typedef struct _virLXCDriver virLXCDriver; typedef virLXCDriver *virLXCDriverPtr; =20 -typedef struct _virLXCDriverConfig virLXCDriverConfig; +#define VIR_TYPE_LXC_DRIVER_CONFIG vir_lxc_driver_config_get_type() +G_DECLARE_FINAL_TYPE(virLXCDriverConfig, + vir_lxc_driver_config, + VIR, + LXC_DRIVER_CONFIG, + GObject); typedef virLXCDriverConfig *virLXCDriverConfigPtr; =20 struct _virLXCDriverConfig { - virObject parent; + GObject parent; =20 char *configDir; char *autostartDir; diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index c34bcd5397..9c40daaec9 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -400,7 +400,7 @@ lxcDomainDefineXMLFlags(virConnectPtr conn, const char = *xml, unsigned int flags) virDomainPtr dom =3D NULL; virObjectEventPtr event =3D NULL; virDomainDefPtr oldDef =3D NULL; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); g_autoptr(virCaps) caps =3D NULL; unsigned int parse_flags =3D VIR_DOMAIN_DEF_PARSE_INACTIVE; =20 @@ -458,7 +458,6 @@ lxcDomainDefineXMLFlags(virConnectPtr conn, const char = *xml, unsigned int flags) virDomainDefFree(oldDef); virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return dom; } =20 @@ -475,7 +474,7 @@ static int lxcDomainUndefineFlags(virDomainPtr dom, virDomainObjPtr vm; virObjectEventPtr event =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 virCheckFlags(0, -1); =20 @@ -510,7 +509,6 @@ static int lxcDomainUndefineFlags(virDomainPtr dom, cleanup: virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -638,7 +636,7 @@ static int lxcDomainSetMemoryFlags(virDomainPtr dom, un= signed long newmem, int ret =3D -1; virLXCDomainObjPrivatePtr priv; virLXCDriverPtr driver =3D dom->conn->privateData; - virLXCDriverConfigPtr cfg =3D NULL; + g_autoptr(virLXCDriverConfig) cfg =3D NULL; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG | @@ -719,7 +717,6 @@ static int lxcDomainSetMemoryFlags(virDomainPtr dom, un= signed long newmem, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -743,7 +740,7 @@ lxcDomainSetMemoryParameters(virDomainPtr dom, virDomainDefPtr persistentDef =3D NULL; virDomainObjPtr vm =3D NULL; virLXCDomainObjPrivatePtr priv =3D NULL; - virLXCDriverConfigPtr cfg =3D NULL; + g_autoptr(virLXCDriverConfig) cfg =3D NULL; virLXCDriverPtr driver =3D dom->conn->privateData; int ret =3D -1; =20 @@ -804,7 +801,6 @@ lxcDomainSetMemoryParameters(virDomainPtr dom, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -976,7 +972,7 @@ static int lxcDomainCreateWithFiles(virDomainPtr dom, virDomainObjPtr vm; virObjectEventPtr event =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 virCheckFlags(VIR_DOMAIN_START_AUTODESTROY, -1); =20 @@ -1023,7 +1019,6 @@ static int lxcDomainCreateWithFiles(virDomainPtr dom, cleanup: virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); virNWFilterUnlockFilterUpdates(); return ret; } @@ -1079,7 +1074,7 @@ lxcDomainCreateXMLWithFiles(virConnectPtr conn, virDomainDefPtr def =3D NULL; virDomainPtr dom =3D NULL; virObjectEventPtr event =3D NULL; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); g_autoptr(virCaps) caps =3D NULL; unsigned int parse_flags =3D VIR_DOMAIN_DEF_PARSE_INACTIVE; =20 @@ -1150,7 +1145,6 @@ lxcDomainCreateXMLWithFiles(virConnectPtr conn, virDomainDefFree(def); virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); virNWFilterUnlockFilterUpdates(); return dom; } @@ -1583,7 +1577,7 @@ static void lxcNotifyLoadDomain(virDomainObjPtr vm, i= nt newVM, void *opaque) static int lxcStateReload(void) { - virLXCDriverConfigPtr cfg =3D NULL; + g_autoptr(virLXCDriverConfig) cfg =3D NULL; =20 if (!lxc_driver) return 0; @@ -1595,7 +1589,6 @@ lxcStateReload(void) cfg->autostartDir, false, lxc_driver->xmlopt, lxcNotifyLoadDomain, lxc_driver); - virObjectUnref(cfg); return 0; } =20 @@ -1619,7 +1612,7 @@ static int lxcStateCleanup(void) if (lxc_driver->lockFD !=3D -1) virPidFileRelease(lxc_driver->config->stateDir, "driver", lxc_driv= er->lockFD); =20 - virObjectUnref(lxc_driver->config); + g_clear_object(&lxc_driver->config); virMutexDestroy(&lxc_driver->lock); VIR_FREE(lxc_driver); =20 @@ -1800,7 +1793,7 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom, int ret =3D -1; int rc; virLXCDomainObjPrivatePtr priv; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -1913,7 +1906,6 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom, cleanup: virDomainDefFree(persistentDefCopy); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2238,7 +2230,7 @@ lxcDomainSetBlkioParameters(virDomainPtr dom, virDomainDefPtr def =3D NULL; virDomainDefPtr persistentDef =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D NULL; + g_autoptr(virLXCDriverConfig) cfg =3D NULL; virLXCDomainObjPrivatePtr priv; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | @@ -2303,7 +2295,6 @@ lxcDomainSetBlkioParameters(virDomainPtr dom, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2462,7 +2453,7 @@ static int lxcDomainSetAutostart(virDomainPtr dom, virDomainObjPtr vm; char *configFile =3D NULL, *autostartLink =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 if (!(vm =3D lxcDomObjFromDomain(dom))) goto cleanup; @@ -2528,7 +2519,6 @@ static int lxcDomainSetAutostart(virDomainPtr dom, VIR_FREE(configFile); VIR_FREE(autostartLink); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2624,7 +2614,7 @@ static int lxcDomainSuspend(virDomainPtr dom) virDomainObjPtr vm; virObjectEventPtr event =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 if (!(vm =3D lxcDomObjFromDomain(dom))) goto cleanup; @@ -2661,7 +2651,6 @@ static int lxcDomainSuspend(virDomainPtr dom) cleanup: virObjectEventStateQueue(driver->domainEventState, event); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2673,7 +2662,7 @@ static int lxcDomainResume(virDomainPtr dom) int ret =3D -1; int state; virLXCDomainObjPrivatePtr priv; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 if (!(vm =3D lxcDomObjFromDomain(dom))) goto cleanup; @@ -2718,7 +2707,6 @@ static int lxcDomainResume(virDomainPtr dom) cleanup: virObjectEventStateQueue(driver->domainEventState, event); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4296,7 +4284,7 @@ static int lxcDomainAttachDeviceFlags(virDomainPtr do= m, virDomainDefPtr vmdef =3D NULL; virDomainDeviceDefPtr dev =3D NULL, dev_copy =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -4383,7 +4371,6 @@ static int lxcDomainAttachDeviceFlags(virDomainPtr do= m, virDomainDeviceDefFree(dev_copy); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4405,7 +4392,7 @@ static int lxcDomainUpdateDeviceFlags(virDomainPtr do= m, virDomainDefPtr vmdef =3D NULL; virDomainDeviceDefPtr dev =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -4455,7 +4442,6 @@ static int lxcDomainUpdateDeviceFlags(virDomainPtr do= m, virDomainDefFree(vmdef); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4470,7 +4456,7 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr do= m, virDomainDefPtr vmdef =3D NULL; virDomainDeviceDefPtr dev =3D NULL, dev_copy =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -4551,7 +4537,6 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr do= m, virDomainDeviceDefFree(dev_copy); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4824,7 +4809,7 @@ lxcDomainSetMetadata(virDomainPtr dom, { virLXCDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; - virLXCDriverConfigPtr cfg =3D NULL; + g_autoptr(virLXCDriverConfig) cfg =3D NULL; int ret =3D -1; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | @@ -4855,7 +4840,6 @@ lxcDomainSetMetadata(virDomainPtr dom, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c index 6a3c9b7da3..c83a6c5a8f 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -162,7 +162,7 @@ static void virLXCProcessCleanup(virLXCDriverPtr driver, size_t i; virLXCDomainObjPrivatePtr priv =3D vm->privateData; const virNetDevVPortProfile *vport =3D NULL; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); virConnectPtr conn =3D NULL; =20 VIR_DEBUG("Cleanup VM name=3D%s pid=3D%d reason=3D%d", @@ -257,7 +257,6 @@ static void virLXCProcessCleanup(virLXCDriverPtr driver, } =20 virDomainObjRemoveTransientDef(vm); - virObjectUnref(cfg); virObjectUnref(conn); } =20 @@ -340,11 +339,10 @@ virLXCProcessSetupInterfaceDirect(virLXCDriverPtr dri= ver, virDomainDefPtr def, virDomainNetDefPtr net) { - char *ret =3D NULL; char *res_ifname =3D NULL; const virNetDevBandwidth *bw; const virNetDevVPortProfile *prof; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); const char *linkdev =3D virDomainNetGetActualDirectDev(net); unsigned int macvlan_create_flags =3D VIR_NETDEV_MACVLAN_CREATE_IFUP; =20 @@ -386,13 +384,9 @@ virLXCProcessSetupInterfaceDirect(virLXCDriverPtr driv= er, cfg->stateDir, NULL, 0, macvlan_create_flags) < 0) - goto cleanup; - - ret =3D res_ifname; + return NULL; =20 - cleanup: - virObjectUnref(cfg); - return ret; + return res_ifname; } =20 static const char *nsInfoLocal[VIR_LXC_DOMAIN_NAMESPACE_LAST] =3D { @@ -786,7 +780,7 @@ static void virLXCProcessMonitorInitNotify(virLXCMonito= rPtr mon G_GNUC_UNUSED, { virLXCDriverPtr driver =3D lxc_driver; virLXCDomainObjPrivatePtr priv; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); ino_t inode =3D 0; =20 virObjectLock(vm); @@ -806,7 +800,6 @@ static void virLXCProcessMonitorInitNotify(virLXCMonito= rPtr mon G_GNUC_UNUSED, VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name); =20 virObjectUnlock(vm); - virObjectUnref(cfg); } =20 static virLXCMonitorCallbacks monitorCallbacks =3D { @@ -820,10 +813,10 @@ static virLXCMonitorPtr virLXCProcessConnectMonitor(v= irLXCDriverPtr driver, virDomainObjPtr vm) { virLXCMonitorPtr monitor =3D NULL; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 if (virSecurityManagerSetSocketLabel(driver->securityManager, vm->def)= < 0) - goto cleanup; + return NULL; =20 /* Hold an extra reference because we can't allow 'vm' to be * deleted while the monitor is active. This will be unreffed @@ -840,11 +833,8 @@ static virLXCMonitorPtr virLXCProcessConnectMonitor(vi= rLXCDriverPtr driver, virObjectUnref(monitor); monitor =3D NULL; } - goto cleanup; } =20 - cleanup: - virObjectUnref(cfg); return monitor; } =20 @@ -932,7 +922,7 @@ virLXCProcessBuildControllerCmd(virLXCDriverPtr driver, char *filterstr; char *outputstr; virCommandPtr cmd; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 cmd =3D virCommandNew(vm->def->emulator); =20 @@ -1013,7 +1003,6 @@ virLXCProcessBuildControllerCmd(virLXCDriverPtr drive= r, virCommandRequireHandshake(cmd); =20 cleanup: - virObjectUnref(cfg); return cmd; error: virCommandFree(cmd); @@ -1202,7 +1191,7 @@ int virLXCProcessStart(virConnectPtr conn, virLXCDomainObjPrivatePtr priv =3D vm->privateData; virCapsPtr caps =3D NULL; virErrorPtr err =3D NULL; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); virCgroupPtr selfcgroup; int status; char *pidfile =3D NULL; @@ -1564,7 +1553,6 @@ int virLXCProcessStart(virConnectPtr conn, VIR_FORCE_CLOSE(handshakefds[1]); VIR_FREE(pidfile); VIR_FREE(logfile); - virObjectUnref(cfg); g_clear_object(&caps); =20 virErrorRestore(&err); @@ -1662,7 +1650,7 @@ virLXCProcessReconnectDomain(virDomainObjPtr vm, { virLXCDriverPtr driver =3D opaque; virLXCDomainObjPrivatePtr priv; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); int ret =3D -1; =20 virObjectLock(vm); @@ -1728,7 +1716,6 @@ virLXCProcessReconnectDomain(virDomainObjPtr vm, =20 ret =3D 0; cleanup: - virObjectUnref(cfg); virObjectUnlock(vm); return ret; =20 --=20 2.26.2