From nobody Sun Feb 8 20:12:38 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1658227552; cv=none; d=zohomail.com; s=zohoarc; b=IuzAPKj2jX054LUQU02Il2xZxuvkGWrOIhtTnFyegwYHzUmxIK3SBl6qR186xeHT9yUUhwaaCCUeoi0uD9kqU4hzXnHciqZwOflJMKjwdQvuRRBIMdhor8vLHgf/bmk+tgKEGU1Bmhd3lYJzg8zFYqbJSQBfYZo0wYgftVSnPz0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658227552; h=Content-Type:Content-Transfer-Encoding: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=m04JCtQdOSTYUl/k2EEb4S+k5op/yhWPeQCy/M8VF20=; b=PFE9UVWXA1BBZWP44jVKkojqYxbD5pgurvhtSyzuSwJDJsGnZidnQQZ2GmzEsPH0Zj9mB3tiK+EYsXgCiNPJWlA4IG3MCzf+22wbktKy24cqH48R+OSTL2v8VMbY8AgOLHz6z9xqDbGLmaTPCDr6QCBEDnwxzV1VbdOPnsDNdF0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1658227552063514.7648857706897; Tue, 19 Jul 2022 03:45:52 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-581-BBi02X9cPiWTwnER6mnhXQ-1; Tue, 19 Jul 2022 06:45:47 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 698F01881438; Tue, 19 Jul 2022 10:45:45 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 446AC492C3B; Tue, 19 Jul 2022 10:45:45 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 74A28194F4BF; Tue, 19 Jul 2022 10:45:44 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 623EE19451EF for ; Tue, 19 Jul 2022 10:45:43 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 44003492CA4; Tue, 19 Jul 2022 10:45:43 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.32]) by smtp.corp.redhat.com (Postfix) with ESMTP id B9B87492C3B for ; Tue, 19 Jul 2022 10:45:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658227551; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=m04JCtQdOSTYUl/k2EEb4S+k5op/yhWPeQCy/M8VF20=; b=NqT4vpy516eUpXBsGA/FiNF18ACHsw4GhFCKlw36BlHJFJJbW22fCTE9nVnbcU51EjFcEw 0rsZXfdpJSUFJeY4KRtA6DCu7ybRyLUyEwKTp+7aY/s421PDMv9lpmnMKBGTzP3kuCalJZ CRMhDjqZOqZQKMKNrTbDdKxkFd2H6Hg= X-MC-Unique: BBi02X9cPiWTwnER6mnhXQ-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 5/7] virLXCProcessAutostartDomain: Refactor control flow and variable use Date: Tue, 19 Jul 2022 12:45:27 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 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-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658227553752100005 Content-Type: text/plain; charset="utf-8" Use automatic unlocking of the 'vm' object, so that we can return early when no autostart is needed and avoid passing of the 'driver' object which is already present in 'vm's' private data. Signed-off-by: Peter Krempa --- src/lxc/lxc_process.c | 55 ++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c index a733f146f4..753e9e0b9a 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -1538,48 +1538,43 @@ int virLXCProcessStart(virLXCDriver * driver, return rc; } -struct virLXCProcessAutostartData { - virLXCDriver *driver; -}; static int virLXCProcessAutostartDomain(virDomainObj *vm, - void *opaque) + void *opaque G_GNUC_UNUSED) { - const struct virLXCProcessAutostartData *data =3D opaque; - int ret =3D 0; + VIR_LOCK_GUARD lock =3D virObjectLockGuard(vm); + virLXCDomainObjPrivate *priv =3D vm->privateData; + virObjectEvent *event; + int rc =3D 0; - virObjectLock(vm); - if (vm->autostart && - !virDomainObjIsActive(vm)) { - ret =3D virLXCProcessStart(data->driver, vm, 0, NULL, NULL, - VIR_DOMAIN_RUNNING_BOOTED); - virDomainAuditStart(vm, "booted", ret >=3D 0); - if (ret < 0) { - VIR_ERROR(_("Failed to autostart VM '%s': %s"), - vm->def->name, - virGetLastErrorMessage()); - } else { - virObjectEvent *event =3D - virDomainEventLifecycleNewFromObj(vm, - VIR_DOMAIN_EVENT_STARTED, - VIR_DOMAIN_EVENT_STARTED_BOOTED); - virObjectEventStateQueue(data->driver->domainEventState, event= ); - } + if (!vm->autostart || + virDomainObjIsActive(vm)) + return 0; + + rc =3D virLXCProcessStart(priv->driver, vm, 0, NULL, NULL, VIR_DOMAIN_= RUNNING_BOOTED); + virDomainAuditStart(vm, "booted", rc >=3D 0); + + if (rc < 0) { + VIR_ERROR(_("Failed to autostart VM '%s': %s"), + vm->def->name, + virGetLastErrorMessage()); + return -1; } - virObjectUnlock(vm); - return ret; + + event =3D virDomainEventLifecycleNewFromObj(vm, + VIR_DOMAIN_EVENT_STARTED, + VIR_DOMAIN_EVENT_STARTED_BOO= TED); + virObjectEventStateQueue(priv->driver->domainEventState, event); + + return 0; } void virLXCProcessAutostartAll(virLXCDriver *driver) { - struct virLXCProcessAutostartData data =3D { driver }; - - virDomainObjListForEach(driver->domains, false, - virLXCProcessAutostartDomain, - &data); + virDomainObjListForEach(driver->domains, false, virLXCProcessAutostart= Domain, NULL); } --=20 2.36.1