From nobody Fri Dec 19 20:15:58 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 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=1587477069; cv=none; d=zohomail.com; s=zohoarc; b=JldS1la2BfJPt22CI7OIM7si/CV6hx4pk5s3rMrOFBBt6IkaAkupWNoVXM/aJdNYkgQzwBxy6/BosIaVjwBQZBxUq+mtGh/xtPR0XCMhU0oTKhmEKarSdPZfRqtt38aoaOkPR+Rpyztb+vFc/CcNNB+xjhyLcYA+eX2UjtRdU8Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1587477069; 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=/RNqvnDsrz+A60bk68ZUhOod1PeHWxAdez0camg+ZIw=; b=mQyLb36tLxgsOwrPa20CrYMowebrBupN9hW6+93W5tcKv1gK4mcDh6/tzWG/ICt+AzzQUBDCeUQQEp4Uo0eqeH/ehv1YX1opsyhrJ/KBcW7aK29Ib1Awlx3LVwARh87bEPbrkdsUHdviNZC0W0P/BYc8gNtxz/rgMW9mapEN0jw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 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-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1587477069433584.3279575100136; Tue, 21 Apr 2020 06:51:09 -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-17-HYeZ1h76M-udY21R-r7Xzg-1; Tue, 21 Apr 2020 09:51:06 -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 4FC38800D53; Tue, 21 Apr 2020 13:50:56 +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 223C51B462; Tue, 21 Apr 2020 13:50:56 +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 D07C4941CD; Tue, 21 Apr 2020 13:50:55 +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 03LDopGo003586 for ; Tue, 21 Apr 2020 09:50:51 -0400 Received: by smtp.corp.redhat.com (Postfix) id 4625A1C0EF3; Tue, 21 Apr 2020 13:50:51 +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 421501C0EED for ; Tue, 21 Apr 2020 13:50:51 +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-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1781E800298 for ; Tue, 21 Apr 2020 13:50:51 +0000 (UTC) Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-403-GkmbYFE5P227LjjZi3WdgA-1; Tue, 21 Apr 2020 09:50:48 -0400 Received: by mail-wm1-f67.google.com with SMTP id e26so3633415wmk.5 for ; Tue, 21 Apr 2020 06:50:48 -0700 (PDT) Received: from localhost.localdomain (public-gprs377075.centertel.pl. [37.47.104.52]) by smtp.gmail.com with ESMTPSA id q10sm3981826wrv.95.2020.04.21.06.50.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Apr 2020 06:50:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1587477068; 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=/RNqvnDsrz+A60bk68ZUhOod1PeHWxAdez0camg+ZIw=; b=Ycga9ixHqQN0DYBWnyq5Cr0OLEiqw4Hc7Q95eAimN9TQBMDXRgQVzSA99BdYzTZnwf+5rf ODYEJVTJ+CjMJsfjq4GQMhkbaqXIpR+2Tf65luBB436Z7b2O8ZNC03LaRBn188mBW0HGvZ B8WB1EQHlQKbni+EYzc7b9lFy/lT4wM= X-MC-Unique: HYeZ1h76M-udY21R-r7Xzg-1 X-MC-Unique: GkmbYFE5P227LjjZi3WdgA-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=G7sJACNkiSyNXs5nYh/aEeSD3BOUVnUtMLdfuSVmj/A=; b=Bi3+Br944X4GIhObAtuyyShYK2gNy+gsU1Ap1rua3Ljl2jAxNVc100+dwwReWskYtE rdS5UL3xygcPRppuWHLI0pXJtWdjKN0G2lGSfLEXXnn3YPZYyeLpjqPb0fjLF9mPVHNv wlYzJp0wakQCqut3iv6/hZLcVgbTW9/cMO/NBr9Zutva+PexrB6wKTU9WDDxR3Gk+lXd tn4tN5EFfCCkqySvRb2O/A15VZ86bDOEuTJp/orVOUjODR671ve5HJFHM6F97hDk3lG/ PbxKkGYlABXjZvhP1nlXa5iUJQoIn+O/vIbvBPA9CXY8VtQwSzSjyLzBoRYIeLQBdCAT Ls0A== X-Gm-Message-State: AGi0PuZIJqSunSj5KXhBA2LqyGCf+BKRcOPE6IJ+/Kj4AI5vw9HusIOu Gz9LC9AlBsFksiyGCbNdRlqI1FeLaRk= X-Google-Smtp-Source: APiQypLryJE8kziAp5/lBND8b4yhS+AhJqnq6kMtOhga/n7/hv6H/4Vgo7tfn0ekmSL0Vpq6xfuZiQ== X-Received: by 2002:a7b:c5d8:: with SMTP id n24mr4936435wmk.158.1587477046731; Tue, 21 Apr 2020 06:50:46 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH v2 32/40] lxc: convert virLXCDriverConfig to GObject Date: Tue, 21 Apr 2020 15:49:13 +0200 Message-Id: <20200421134921.3717019-33-r4f4rfs@gmail.com> In-Reply-To: <20200421134921.3717019-1-r4f4rfs@gmail.com> References: <20200421134921.3717019-1-r4f4rfs@gmail.com> MIME-Version: 1.0 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 03LDopGo003586 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 09a2721ca3..288d394989 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; } @@ -1582,7 +1576,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; @@ -1594,7 +1588,6 @@ lxcStateReload(void) cfg->autostartDir, false, lxc_driver->xmlopt, lxcNotifyLoadDomain, lxc_driver); - virObjectUnref(cfg); return 0; } =20 @@ -1618,7 +1611,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 @@ -1799,7 +1792,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); @@ -1912,7 +1905,6 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom, cleanup: virDomainDefFree(persistentDefCopy); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2237,7 +2229,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 | @@ -2302,7 +2294,6 @@ lxcDomainSetBlkioParameters(virDomainPtr dom, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2461,7 +2452,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; @@ -2527,7 +2518,6 @@ static int lxcDomainSetAutostart(virDomainPtr dom, VIR_FREE(configFile); VIR_FREE(autostartLink); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2623,7 +2613,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; @@ -2660,7 +2650,6 @@ static int lxcDomainSuspend(virDomainPtr dom) cleanup: virObjectEventStateQueue(driver->domainEventState, event); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2672,7 +2661,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; @@ -2717,7 +2706,6 @@ static int lxcDomainResume(virDomainPtr dom) cleanup: virObjectEventStateQueue(driver->domainEventState, event); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4295,7 +4283,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); @@ -4382,7 +4370,6 @@ static int lxcDomainAttachDeviceFlags(virDomainPtr do= m, virDomainDeviceDefFree(dev_copy); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4404,7 +4391,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); @@ -4454,7 +4441,6 @@ static int lxcDomainUpdateDeviceFlags(virDomainPtr do= m, virDomainDefFree(vmdef); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4469,7 +4455,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); @@ -4550,7 +4536,6 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr do= m, virDomainDeviceDefFree(dev_copy); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4823,7 +4808,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 | @@ -4854,7 +4839,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.25.3