From nobody Tue Apr 30 06:12:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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=1598422212; cv=none; d=zohomail.com; s=zohoarc; b=j2DpRQQlXHDhhCwBHxMpmN83YTyx+VNX1G9RDgdeT2w/QrpytBymI35i4ECFDgazKuzyYEeYUhfc3cWNA45tPaXzqEd1QmYM0aF5mYAP0d8NdfEx/ACfMDchMJqA8Fwu21M1CTkRJ13kpH4HBnzpugCHOOIRPk2i1ZB2HRKzSGQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598422212; 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=WEKCl8WzBXHxVyxWNS59tGOPZlc/yFUn0Gb9a44Abqg=; b=F/PjWFlW4CnnH4MM0tQioSE7YOCErExiu0bGgo2XqWHloa827F9jXzPLnFmF2J7ElwTvlildilBzcpQqKFIDHcbFwaQDE/74Nc+zy8kJf/f6J7tVbLEayP3syKEI9YSynoF+XUfztYcJFNThd09CzIGmMjee/qNntMqIty4+HtU= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1598422212395953.6982722056867; Tue, 25 Aug 2020 23:10:12 -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-530-14YwOcI5PzSi0gJ4dTiXEg-1; Wed, 26 Aug 2020 02:10:08 -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 4580F8030C6; Wed, 26 Aug 2020 06:10:03 +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 1D0A919C58; Wed, 26 Aug 2020 06:10: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 934BC180B655; Wed, 26 Aug 2020 06:10: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 07Q69xBL008861 for ; Wed, 26 Aug 2020 02:09:59 -0400 Received: by smtp.corp.redhat.com (Postfix) id B7109CF60A; Wed, 26 Aug 2020 06:09:58 +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 8E52BD1BA8 for ; Wed, 26 Aug 2020 06:09:58 +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 6744B101A568 for ; Wed, 26 Aug 2020 06:09:58 +0000 (UTC) Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.196]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-443-F8ZXqTJLOmSZcAueHQ5Gpw-1; Wed, 26 Aug 2020 02:09:53 -0400 Received: by mail-pg1-f196.google.com with SMTP id i10so531782pgk.1; Tue, 25 Aug 2020 23:09:53 -0700 (PDT) Received: from localhost.localdomain ([116.72.86.23]) by smtp.gmail.com with ESMTPSA id hr13sm924745pjb.38.2020.08.25.23.09.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Aug 2020 23:09:51 -0700 (PDT) X-MC-Unique: 14YwOcI5PzSi0gJ4dTiXEg-1 X-MC-Unique: F8ZXqTJLOmSZcAueHQ5Gpw-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=WEKCl8WzBXHxVyxWNS59tGOPZlc/yFUn0Gb9a44Abqg=; b=Ok62NW3T7kBdKWs5JSmvsf/mRLEw+DPrwM6T2X6MO86FIrWm2VjNT3lB3+ny/yHRhR WUb9wjFtsxZ/DtwM0wJvaereu6Xoc3fBJNOKUppY+s9tj50Ow3iXByfnnjmcSgkiVyAH uprHqqF/0ie4GYtfgwMo+3PArPHLwCjeanzm5pyMgnNPYN07e27hkyDMRvaQSY9NrKMd jas3Jb/aH8O8fnKcCrz+keHhX4enJbP8KB5ewAEqwgRl1nntGFOmtFjY1iVFd9g5w0HY i4ukTCJ+YFyq4MUW7jAhJZYe7IHYi1lXF82wIlqi2I5TusmIs0C2DnfhuEwr7Uvr4aKT sKmg== X-Gm-Message-State: AOAM533rwN0ILK1Vd4BIFao4aZu66H5QVHRojw6I4MCLeRhk6HcKbDh5 YCWlGT++JUX2NvwX/IOuq/c6LhLNCjzesw== X-Google-Smtp-Source: ABdhPJxz+M3AZs9nK3egQCP9msdajKV1XLJBSLjiJuFVCToGd/qkPHBkcM7THAj/w4S38hmXfVCtXg== X-Received: by 2002:a63:784e:: with SMTP id t75mr9000721pgc.389.1598422191695; Tue, 25 Aug 2020 23:09:51 -0700 (PDT) From: Prathamesh Chavan To: libvir-list@redhat.com Subject: [GSoC][PATCH v4 1/8] qemu_domainjob: `qemuDomainJobInfo` code moved to `qemu_domain` Date: Wed, 26 Aug 2020 11:39:35 +0530 Message-Id: <20200826060942.17320-2-pc44800@gmail.com> In-Reply-To: <20200826060942.17320-1-pc44800@gmail.com> References: <20200826060942.17320-1-pc44800@gmail.com> MIME-Version: 1.0 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-loop: libvir-list@redhat.com Cc: mkletzan@redhat.com, mprivozn@redhat.com, Prathamesh Chavan , eskultet@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.002 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As `qemuDomainJobInfo` structure is highly specific for the qemu-hypervisor, and since we're planning to keep only hypervisor-agnostic structures, we move functions related `qemuDomainJobInfo` to `qemu_domain`. Signed-off-by: Prathamesh Chavan --- src/qemu/qemu_domain.c | 473 +++++++++++++++++++++++++++++++++++++ src/qemu/qemu_domain.h | 24 ++ src/qemu/qemu_domainjob.c | 477 -------------------------------------- src/qemu/qemu_domainjob.h | 17 -- 4 files changed, 497 insertions(+), 494 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 21f24fceed..4bee56a1be 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -76,6 +76,457 @@ VIR_LOG_INIT("qemu.qemu_domain"); =20 =20 +static virDomainJobType +qemuDomainJobStatusToType(qemuDomainJobStatus status) +{ + switch (status) { + case QEMU_DOMAIN_JOB_STATUS_NONE: + break; + + case QEMU_DOMAIN_JOB_STATUS_ACTIVE: + case QEMU_DOMAIN_JOB_STATUS_MIGRATING: + case QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED: + case QEMU_DOMAIN_JOB_STATUS_POSTCOPY: + case QEMU_DOMAIN_JOB_STATUS_PAUSED: + return VIR_DOMAIN_JOB_UNBOUNDED; + + case QEMU_DOMAIN_JOB_STATUS_COMPLETED: + return VIR_DOMAIN_JOB_COMPLETED; + + case QEMU_DOMAIN_JOB_STATUS_FAILED: + return VIR_DOMAIN_JOB_FAILED; + + case QEMU_DOMAIN_JOB_STATUS_CANCELED: + return VIR_DOMAIN_JOB_CANCELLED; + } + + return VIR_DOMAIN_JOB_NONE; +} + +int +qemuDomainJobInfoUpdateTime(qemuDomainJobInfoPtr jobInfo) +{ + unsigned long long now; + + if (!jobInfo->started) + return 0; + + if (virTimeMillisNow(&now) < 0) + return -1; + + if (now < jobInfo->started) { + VIR_WARN("Async job starts in the future"); + jobInfo->started =3D 0; + return 0; + } + + jobInfo->timeElapsed =3D now - jobInfo->started; + return 0; +} + +int +qemuDomainJobInfoUpdateDowntime(qemuDomainJobInfoPtr jobInfo) +{ + unsigned long long now; + + if (!jobInfo->stopped) + return 0; + + if (virTimeMillisNow(&now) < 0) + return -1; + + if (now < jobInfo->stopped) { + VIR_WARN("Guest's CPUs stopped in the future"); + jobInfo->stopped =3D 0; + return 0; + } + + jobInfo->stats.mig.downtime =3D now - jobInfo->stopped; + jobInfo->stats.mig.downtime_set =3D true; + return 0; +} + + +int +qemuDomainJobInfoToInfo(qemuDomainJobInfoPtr jobInfo, + virDomainJobInfoPtr info) +{ + info->type =3D qemuDomainJobStatusToType(jobInfo->status); + info->timeElapsed =3D jobInfo->timeElapsed; + + switch (jobInfo->statsType) { + case QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION: + info->memTotal =3D jobInfo->stats.mig.ram_total; + info->memRemaining =3D jobInfo->stats.mig.ram_remaining; + info->memProcessed =3D jobInfo->stats.mig.ram_transferred; + info->fileTotal =3D jobInfo->stats.mig.disk_total + + jobInfo->mirrorStats.total; + info->fileRemaining =3D jobInfo->stats.mig.disk_remaining + + (jobInfo->mirrorStats.total - + jobInfo->mirrorStats.transferred); + info->fileProcessed =3D jobInfo->stats.mig.disk_transferred + + jobInfo->mirrorStats.transferred; + break; + + case QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP: + info->memTotal =3D jobInfo->stats.mig.ram_total; + info->memRemaining =3D jobInfo->stats.mig.ram_remaining; + info->memProcessed =3D jobInfo->stats.mig.ram_transferred; + break; + + case QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUMP: + info->memTotal =3D jobInfo->stats.dump.total; + info->memProcessed =3D jobInfo->stats.dump.completed; + info->memRemaining =3D info->memTotal - info->memProcessed; + break; + + case QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP: + info->fileTotal =3D jobInfo->stats.backup.total; + info->fileProcessed =3D jobInfo->stats.backup.transferred; + info->fileRemaining =3D info->fileTotal - info->fileProcessed; + break; + + case QEMU_DOMAIN_JOB_STATS_TYPE_NONE: + break; + } + + info->dataTotal =3D info->memTotal + info->fileTotal; + info->dataRemaining =3D info->memRemaining + info->fileRemaining; + info->dataProcessed =3D info->memProcessed + info->fileProcessed; + + return 0; +} + + +static int +qemuDomainMigrationJobInfoToParams(qemuDomainJobInfoPtr jobInfo, + int *type, + virTypedParameterPtr *params, + int *nparams) +{ + qemuMonitorMigrationStats *stats =3D &jobInfo->stats.mig; + qemuDomainMirrorStatsPtr mirrorStats =3D &jobInfo->mirrorStats; + virTypedParameterPtr par =3D NULL; + int maxpar =3D 0; + int npar =3D 0; + unsigned long long mirrorRemaining =3D mirrorStats->total - + mirrorStats->transferred; + + if (virTypedParamsAddInt(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_OPERATION, + jobInfo->operation) < 0) + goto error; + + if (virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_TIME_ELAPSED, + jobInfo->timeElapsed) < 0) + goto error; + + if (jobInfo->timeDeltaSet && + jobInfo->timeElapsed > jobInfo->timeDelta && + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_TIME_ELAPSED_NET, + jobInfo->timeElapsed - jobInfo->timeDelta)= < 0) + goto error; + + if (stats->downtime_set && + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_DOWNTIME, + stats->downtime) < 0) + goto error; + + if (stats->downtime_set && + jobInfo->timeDeltaSet && + stats->downtime > jobInfo->timeDelta && + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_DOWNTIME_NET, + stats->downtime - jobInfo->timeDelta) < 0) + goto error; + + if (stats->setup_time_set && + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_SETUP_TIME, + stats->setup_time) < 0) + goto error; + + if (virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_DATA_TOTAL, + stats->ram_total + + stats->disk_total + + mirrorStats->total) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_DATA_PROCESSED, + stats->ram_transferred + + stats->disk_transferred + + mirrorStats->transferred) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_DATA_REMAINING, + stats->ram_remaining + + stats->disk_remaining + + mirrorRemaining) < 0) + goto error; + + if (virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_TOTAL, + stats->ram_total) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_PROCESSED, + stats->ram_transferred) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_REMAINING, + stats->ram_remaining) < 0) + goto error; + + if (stats->ram_bps && + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_BPS, + stats->ram_bps) < 0) + goto error; + + if (stats->ram_duplicate_set) { + if (virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_CONSTANT, + stats->ram_duplicate) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_NORMAL, + stats->ram_normal) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_NORMAL_BYTES, + stats->ram_normal_bytes) < 0) + goto error; + } + + if (virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_DIRTY_RATE, + stats->ram_dirty_rate) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_ITERATION, + stats->ram_iteration) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_POSTCOPY_REQS, + stats->ram_postcopy_reqs) < 0) + goto error; + + if (stats->ram_page_size > 0 && + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_PAGE_SIZE, + stats->ram_page_size) < 0) + goto error; + + /* The remaining stats are disk, mirror, or migration specific + * so if this is a SAVEDUMP, we can just skip them */ + if (jobInfo->statsType =3D=3D QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP) + goto done; + + if (virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_DISK_TOTAL, + stats->disk_total + + mirrorStats->total) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_DISK_PROCESSED, + stats->disk_transferred + + mirrorStats->transferred) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_DISK_REMAINING, + stats->disk_remaining + + mirrorRemaining) < 0) + goto error; + + if (stats->disk_bps && + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_DISK_BPS, + stats->disk_bps) < 0) + goto error; + + if (stats->xbzrle_set) { + if (virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_COMPRESSION_CACHE, + stats->xbzrle_cache_size) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_COMPRESSION_BYTES, + stats->xbzrle_bytes) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_COMPRESSION_PAGES, + stats->xbzrle_pages) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_COMPRESSION_CACHE_MISSE= S, + stats->xbzrle_cache_miss) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_COMPRESSION_OVERFLOW, + stats->xbzrle_overflow) < 0) + goto error; + } + + if (stats->cpu_throttle_percentage && + virTypedParamsAddInt(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_AUTO_CONVERGE_THROTTLE, + stats->cpu_throttle_percentage) < 0) + goto error; + + done: + *type =3D qemuDomainJobStatusToType(jobInfo->status); + *params =3D par; + *nparams =3D npar; + return 0; + + error: + virTypedParamsFree(par, npar); + return -1; +} + + +static int +qemuDomainDumpJobInfoToParams(qemuDomainJobInfoPtr jobInfo, + int *type, + virTypedParameterPtr *params, + int *nparams) +{ + qemuMonitorDumpStats *stats =3D &jobInfo->stats.dump; + virTypedParameterPtr par =3D NULL; + int maxpar =3D 0; + int npar =3D 0; + + if (virTypedParamsAddInt(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_OPERATION, + jobInfo->operation) < 0) + goto error; + + if (virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_TIME_ELAPSED, + jobInfo->timeElapsed) < 0) + goto error; + + if (virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_TOTAL, + stats->total) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_PROCESSED, + stats->completed) < 0 || + virTypedParamsAddULLong(&par, &npar, &maxpar, + VIR_DOMAIN_JOB_MEMORY_REMAINING, + stats->total - stats->completed) < 0) + goto error; + + *type =3D qemuDomainJobStatusToType(jobInfo->status); + *params =3D par; + *nparams =3D npar; + return 0; + + error: + virTypedParamsFree(par, npar); + return -1; +} + + +static int +qemuDomainBackupJobInfoToParams(qemuDomainJobInfoPtr jobInfo, + int *type, + virTypedParameterPtr *params, + int *nparams) +{ + qemuDomainBackupStats *stats =3D &jobInfo->stats.backup; + g_autoptr(virTypedParamList) par =3D g_new0(virTypedParamList, 1); + + if (virTypedParamListAddInt(par, jobInfo->operation, + VIR_DOMAIN_JOB_OPERATION) < 0) + return -1; + + if (virTypedParamListAddULLong(par, jobInfo->timeElapsed, + VIR_DOMAIN_JOB_TIME_ELAPSED) < 0) + return -1; + + if (stats->transferred > 0 || stats->total > 0) { + if (virTypedParamListAddULLong(par, stats->total, + VIR_DOMAIN_JOB_DISK_TOTAL) < 0) + return -1; + + if (virTypedParamListAddULLong(par, stats->transferred, + VIR_DOMAIN_JOB_DISK_PROCESSED) < 0) + return -1; + + if (virTypedParamListAddULLong(par, stats->total - stats->transfer= red, + VIR_DOMAIN_JOB_DISK_REMAINING) < 0) + return -1; + } + + if (stats->tmp_used > 0 || stats->tmp_total > 0) { + if (virTypedParamListAddULLong(par, stats->tmp_used, + VIR_DOMAIN_JOB_DISK_TEMP_USED) < 0) + return -1; + + if (virTypedParamListAddULLong(par, stats->tmp_total, + VIR_DOMAIN_JOB_DISK_TEMP_TOTAL) < 0) + return -1; + } + + if (jobInfo->status !=3D QEMU_DOMAIN_JOB_STATUS_ACTIVE && + virTypedParamListAddBoolean(par, + jobInfo->status =3D=3D QEMU_DOMAIN_JOB= _STATUS_COMPLETED, + VIR_DOMAIN_JOB_SUCCESS) < 0) + return -1; + + if (jobInfo->errmsg && + virTypedParamListAddString(par, jobInfo->errmsg, VIR_DOMAIN_JOB_ER= RMSG) < 0) + return -1; + + *nparams =3D virTypedParamListStealParams(par, params); + *type =3D qemuDomainJobStatusToType(jobInfo->status); + return 0; +} + + +int +qemuDomainJobInfoToParams(qemuDomainJobInfoPtr jobInfo, + int *type, + virTypedParameterPtr *params, + int *nparams) +{ + switch (jobInfo->statsType) { + case QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION: + case QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP: + return qemuDomainMigrationJobInfoToParams(jobInfo, type, params, n= params); + + case QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUMP: + return qemuDomainDumpJobInfoToParams(jobInfo, type, params, nparam= s); + + case QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP: + return qemuDomainBackupJobInfoToParams(jobInfo, type, params, npar= ams); + + case QEMU_DOMAIN_JOB_STATS_TYPE_NONE: + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("invalid job statistics type")); + break; + + default: + virReportEnumRangeError(qemuDomainJobStatsType, jobInfo->statsType= ); + break; + } + + return -1; +} + + +void +qemuDomainJobInfoFree(qemuDomainJobInfoPtr info) +{ + g_free(info->errmsg); + g_free(info); +} + + +qemuDomainJobInfoPtr +qemuDomainJobInfoCopy(qemuDomainJobInfoPtr info) +{ + qemuDomainJobInfoPtr ret =3D g_new0(qemuDomainJobInfo, 1); + + memcpy(ret, info, sizeof(*info)); + + ret->errmsg =3D g_strdup(info->errmsg); + + return ret; +} + + static void * qemuJobAllocPrivate(void) { @@ -179,6 +630,28 @@ qemuDomainFormatJobPrivate(virBufferPtr buf, return 0; } =20 +void +qemuDomainEventEmitJobCompleted(virQEMUDriverPtr driver, + virDomainObjPtr vm) +{ + qemuDomainObjPrivatePtr priv =3D vm->privateData; + virObjectEventPtr event; + virTypedParameterPtr params =3D NULL; + int nparams =3D 0; + int type; + + if (!priv->job.completed) + return; + + if (qemuDomainJobInfoToParams(priv->job.completed, &type, + ¶ms, &nparams) < 0) { + VIR_WARN("Could not get stats for completed job; domain %s", + vm->def->name); + } + + event =3D virDomainEventJobCompletedNewFromObj(vm, params, nparams); + virObjectEventStateQueue(driver->domainEventState, event); +} =20 static int qemuDomainObjPrivateXMLParseJobNBDSource(xmlNodePtr node, diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index adba79aded..73085b1d91 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -493,6 +493,30 @@ struct _qemuDomainJobPrivate { qemuMigrationParamsPtr migParams; }; =20 + +void qemuDomainEventEmitJobCompleted(virQEMUDriverPtr driver, + virDomainObjPtr vm); + +void +qemuDomainJobInfoFree(qemuDomainJobInfoPtr info); + +qemuDomainJobInfoPtr +qemuDomainJobInfoCopy(qemuDomainJobInfoPtr info); + +int qemuDomainJobInfoUpdateTime(qemuDomainJobInfoPtr jobInfo) + ATTRIBUTE_NONNULL(1); +int qemuDomainJobInfoUpdateDowntime(qemuDomainJobInfoPtr jobInfo) + ATTRIBUTE_NONNULL(1); +int qemuDomainJobInfoToInfo(qemuDomainJobInfoPtr jobInfo, + virDomainJobInfoPtr info) + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); +int qemuDomainJobInfoToParams(qemuDomainJobInfoPtr jobInfo, + int *type, + virTypedParameterPtr *params, + int *nparams) + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) + ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4); + int qemuDomainObjStartWorker(virDomainObjPtr dom); void qemuDomainObjStopWorker(virDomainObjPtr dom); =20 diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c index 02f85e1b13..8f8daf0fcb 100644 --- a/src/qemu/qemu_domainjob.c +++ b/src/qemu/qemu_domainjob.c @@ -115,51 +115,6 @@ qemuDomainAsyncJobPhaseFromString(qemuDomainAsyncJob j= ob, return -1; } =20 - -void -qemuDomainJobInfoFree(qemuDomainJobInfoPtr info) -{ - g_free(info->errmsg); - g_free(info); -} - - -qemuDomainJobInfoPtr -qemuDomainJobInfoCopy(qemuDomainJobInfoPtr info) -{ - qemuDomainJobInfoPtr ret =3D g_new0(qemuDomainJobInfo, 1); - - memcpy(ret, info, sizeof(*info)); - - ret->errmsg =3D g_strdup(info->errmsg); - - return ret; -} - -void -qemuDomainEventEmitJobCompleted(virQEMUDriverPtr driver, - virDomainObjPtr vm) -{ - qemuDomainObjPrivatePtr priv =3D vm->privateData; - virObjectEventPtr event; - virTypedParameterPtr params =3D NULL; - int nparams =3D 0; - int type; - - if (!priv->job.completed) - return; - - if (qemuDomainJobInfoToParams(priv->job.completed, &type, - ¶ms, &nparams) < 0) { - VIR_WARN("Could not get stats for completed job; domain %s", - vm->def->name); - } - - event =3D virDomainEventJobCompletedNewFromObj(vm, params, nparams); - virObjectEventStateQueue(driver->domainEventState, event); -} - - int qemuDomainObjInitJob(qemuDomainJobObjPtr job, qemuDomainObjPrivateJobCallbacksPtr cb) @@ -216,7 +171,6 @@ qemuDomainObjResetAsyncJob(qemuDomainJobObjPtr job) job->mask =3D QEMU_JOB_DEFAULT_MASK; job->abortJob =3D false; VIR_FREE(job->error); - g_clear_pointer(&job->current, qemuDomainJobInfoFree); job->cb->resetJobPrivate(job->privateData); job->apiFlags =3D 0; } @@ -251,8 +205,6 @@ qemuDomainObjFreeJob(qemuDomainJobObjPtr job) qemuDomainObjResetJob(job); qemuDomainObjResetAsyncJob(job); job->cb->freeJobPrivate(job->privateData); - g_clear_pointer(&job->current, qemuDomainJobInfoFree); - g_clear_pointer(&job->completed, qemuDomainJobInfoFree); virCondDestroy(&job->cond); virCondDestroy(&job->asyncCond); } @@ -264,435 +216,6 @@ qemuDomainTrackJob(qemuDomainJob job) } =20 =20 -int -qemuDomainJobInfoUpdateTime(qemuDomainJobInfoPtr jobInfo) -{ - unsigned long long now; - - if (!jobInfo->started) - return 0; - - if (virTimeMillisNow(&now) < 0) - return -1; - - if (now < jobInfo->started) { - VIR_WARN("Async job starts in the future"); - jobInfo->started =3D 0; - return 0; - } - - jobInfo->timeElapsed =3D now - jobInfo->started; - return 0; -} - -int -qemuDomainJobInfoUpdateDowntime(qemuDomainJobInfoPtr jobInfo) -{ - unsigned long long now; - - if (!jobInfo->stopped) - return 0; - - if (virTimeMillisNow(&now) < 0) - return -1; - - if (now < jobInfo->stopped) { - VIR_WARN("Guest's CPUs stopped in the future"); - jobInfo->stopped =3D 0; - return 0; - } - - jobInfo->stats.mig.downtime =3D now - jobInfo->stopped; - jobInfo->stats.mig.downtime_set =3D true; - return 0; -} - -static virDomainJobType -qemuDomainJobStatusToType(qemuDomainJobStatus status) -{ - switch (status) { - case QEMU_DOMAIN_JOB_STATUS_NONE: - break; - - case QEMU_DOMAIN_JOB_STATUS_ACTIVE: - case QEMU_DOMAIN_JOB_STATUS_MIGRATING: - case QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED: - case QEMU_DOMAIN_JOB_STATUS_POSTCOPY: - case QEMU_DOMAIN_JOB_STATUS_PAUSED: - return VIR_DOMAIN_JOB_UNBOUNDED; - - case QEMU_DOMAIN_JOB_STATUS_COMPLETED: - return VIR_DOMAIN_JOB_COMPLETED; - - case QEMU_DOMAIN_JOB_STATUS_FAILED: - return VIR_DOMAIN_JOB_FAILED; - - case QEMU_DOMAIN_JOB_STATUS_CANCELED: - return VIR_DOMAIN_JOB_CANCELLED; - } - - return VIR_DOMAIN_JOB_NONE; -} - -int -qemuDomainJobInfoToInfo(qemuDomainJobInfoPtr jobInfo, - virDomainJobInfoPtr info) -{ - info->type =3D qemuDomainJobStatusToType(jobInfo->status); - info->timeElapsed =3D jobInfo->timeElapsed; - - switch (jobInfo->statsType) { - case QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION: - info->memTotal =3D jobInfo->stats.mig.ram_total; - info->memRemaining =3D jobInfo->stats.mig.ram_remaining; - info->memProcessed =3D jobInfo->stats.mig.ram_transferred; - info->fileTotal =3D jobInfo->stats.mig.disk_total + - jobInfo->mirrorStats.total; - info->fileRemaining =3D jobInfo->stats.mig.disk_remaining + - (jobInfo->mirrorStats.total - - jobInfo->mirrorStats.transferred); - info->fileProcessed =3D jobInfo->stats.mig.disk_transferred + - jobInfo->mirrorStats.transferred; - break; - - case QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP: - info->memTotal =3D jobInfo->stats.mig.ram_total; - info->memRemaining =3D jobInfo->stats.mig.ram_remaining; - info->memProcessed =3D jobInfo->stats.mig.ram_transferred; - break; - - case QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUMP: - info->memTotal =3D jobInfo->stats.dump.total; - info->memProcessed =3D jobInfo->stats.dump.completed; - info->memRemaining =3D info->memTotal - info->memProcessed; - break; - - case QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP: - info->fileTotal =3D jobInfo->stats.backup.total; - info->fileProcessed =3D jobInfo->stats.backup.transferred; - info->fileRemaining =3D info->fileTotal - info->fileProcessed; - break; - - case QEMU_DOMAIN_JOB_STATS_TYPE_NONE: - break; - } - - info->dataTotal =3D info->memTotal + info->fileTotal; - info->dataRemaining =3D info->memRemaining + info->fileRemaining; - info->dataProcessed =3D info->memProcessed + info->fileProcessed; - - return 0; -} - - -static int -qemuDomainMigrationJobInfoToParams(qemuDomainJobInfoPtr jobInfo, - int *type, - virTypedParameterPtr *params, - int *nparams) -{ - qemuMonitorMigrationStats *stats =3D &jobInfo->stats.mig; - qemuDomainMirrorStatsPtr mirrorStats =3D &jobInfo->mirrorStats; - virTypedParameterPtr par =3D NULL; - int maxpar =3D 0; - int npar =3D 0; - unsigned long long mirrorRemaining =3D mirrorStats->total - - mirrorStats->transferred; - - if (virTypedParamsAddInt(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_OPERATION, - jobInfo->operation) < 0) - goto error; - - if (virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_TIME_ELAPSED, - jobInfo->timeElapsed) < 0) - goto error; - - if (jobInfo->timeDeltaSet && - jobInfo->timeElapsed > jobInfo->timeDelta && - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_TIME_ELAPSED_NET, - jobInfo->timeElapsed - jobInfo->timeDelta)= < 0) - goto error; - - if (stats->downtime_set && - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_DOWNTIME, - stats->downtime) < 0) - goto error; - - if (stats->downtime_set && - jobInfo->timeDeltaSet && - stats->downtime > jobInfo->timeDelta && - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_DOWNTIME_NET, - stats->downtime - jobInfo->timeDelta) < 0) - goto error; - - if (stats->setup_time_set && - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_SETUP_TIME, - stats->setup_time) < 0) - goto error; - - if (virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_DATA_TOTAL, - stats->ram_total + - stats->disk_total + - mirrorStats->total) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_DATA_PROCESSED, - stats->ram_transferred + - stats->disk_transferred + - mirrorStats->transferred) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_DATA_REMAINING, - stats->ram_remaining + - stats->disk_remaining + - mirrorRemaining) < 0) - goto error; - - if (virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_TOTAL, - stats->ram_total) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_PROCESSED, - stats->ram_transferred) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_REMAINING, - stats->ram_remaining) < 0) - goto error; - - if (stats->ram_bps && - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_BPS, - stats->ram_bps) < 0) - goto error; - - if (stats->ram_duplicate_set) { - if (virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_CONSTANT, - stats->ram_duplicate) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_NORMAL, - stats->ram_normal) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_NORMAL_BYTES, - stats->ram_normal_bytes) < 0) - goto error; - } - - if (virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_DIRTY_RATE, - stats->ram_dirty_rate) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_ITERATION, - stats->ram_iteration) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_POSTCOPY_REQS, - stats->ram_postcopy_reqs) < 0) - goto error; - - if (stats->ram_page_size > 0 && - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_PAGE_SIZE, - stats->ram_page_size) < 0) - goto error; - - /* The remaining stats are disk, mirror, or migration specific - * so if this is a SAVEDUMP, we can just skip them */ - if (jobInfo->statsType =3D=3D QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP) - goto done; - - if (virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_DISK_TOTAL, - stats->disk_total + - mirrorStats->total) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_DISK_PROCESSED, - stats->disk_transferred + - mirrorStats->transferred) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_DISK_REMAINING, - stats->disk_remaining + - mirrorRemaining) < 0) - goto error; - - if (stats->disk_bps && - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_DISK_BPS, - stats->disk_bps) < 0) - goto error; - - if (stats->xbzrle_set) { - if (virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_COMPRESSION_CACHE, - stats->xbzrle_cache_size) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_COMPRESSION_BYTES, - stats->xbzrle_bytes) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_COMPRESSION_PAGES, - stats->xbzrle_pages) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_COMPRESSION_CACHE_MISSE= S, - stats->xbzrle_cache_miss) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_COMPRESSION_OVERFLOW, - stats->xbzrle_overflow) < 0) - goto error; - } - - if (stats->cpu_throttle_percentage && - virTypedParamsAddInt(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_AUTO_CONVERGE_THROTTLE, - stats->cpu_throttle_percentage) < 0) - goto error; - - done: - *type =3D qemuDomainJobStatusToType(jobInfo->status); - *params =3D par; - *nparams =3D npar; - return 0; - - error: - virTypedParamsFree(par, npar); - return -1; -} - - -static int -qemuDomainDumpJobInfoToParams(qemuDomainJobInfoPtr jobInfo, - int *type, - virTypedParameterPtr *params, - int *nparams) -{ - qemuMonitorDumpStats *stats =3D &jobInfo->stats.dump; - virTypedParameterPtr par =3D NULL; - int maxpar =3D 0; - int npar =3D 0; - - if (virTypedParamsAddInt(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_OPERATION, - jobInfo->operation) < 0) - goto error; - - if (virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_TIME_ELAPSED, - jobInfo->timeElapsed) < 0) - goto error; - - if (virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_TOTAL, - stats->total) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_PROCESSED, - stats->completed) < 0 || - virTypedParamsAddULLong(&par, &npar, &maxpar, - VIR_DOMAIN_JOB_MEMORY_REMAINING, - stats->total - stats->completed) < 0) - goto error; - - *type =3D qemuDomainJobStatusToType(jobInfo->status); - *params =3D par; - *nparams =3D npar; - return 0; - - error: - virTypedParamsFree(par, npar); - return -1; -} - - -static int -qemuDomainBackupJobInfoToParams(qemuDomainJobInfoPtr jobInfo, - int *type, - virTypedParameterPtr *params, - int *nparams) -{ - qemuDomainBackupStats *stats =3D &jobInfo->stats.backup; - g_autoptr(virTypedParamList) par =3D g_new0(virTypedParamList, 1); - - if (virTypedParamListAddInt(par, jobInfo->operation, - VIR_DOMAIN_JOB_OPERATION) < 0) - return -1; - - if (virTypedParamListAddULLong(par, jobInfo->timeElapsed, - VIR_DOMAIN_JOB_TIME_ELAPSED) < 0) - return -1; - - if (stats->transferred > 0 || stats->total > 0) { - if (virTypedParamListAddULLong(par, stats->total, - VIR_DOMAIN_JOB_DISK_TOTAL) < 0) - return -1; - - if (virTypedParamListAddULLong(par, stats->transferred, - VIR_DOMAIN_JOB_DISK_PROCESSED) < 0) - return -1; - - if (virTypedParamListAddULLong(par, stats->total - stats->transfer= red, - VIR_DOMAIN_JOB_DISK_REMAINING) < 0) - return -1; - } - - if (stats->tmp_used > 0 || stats->tmp_total > 0) { - if (virTypedParamListAddULLong(par, stats->tmp_used, - VIR_DOMAIN_JOB_DISK_TEMP_USED) < 0) - return -1; - - if (virTypedParamListAddULLong(par, stats->tmp_total, - VIR_DOMAIN_JOB_DISK_TEMP_TOTAL) < 0) - return -1; - } - - if (jobInfo->status !=3D QEMU_DOMAIN_JOB_STATUS_ACTIVE && - virTypedParamListAddBoolean(par, - jobInfo->status =3D=3D QEMU_DOMAIN_JOB= _STATUS_COMPLETED, - VIR_DOMAIN_JOB_SUCCESS) < 0) - return -1; - - if (jobInfo->errmsg && - virTypedParamListAddString(par, jobInfo->errmsg, VIR_DOMAIN_JOB_ER= RMSG) < 0) - return -1; - - *nparams =3D virTypedParamListStealParams(par, params); - *type =3D qemuDomainJobStatusToType(jobInfo->status); - return 0; -} - - -int -qemuDomainJobInfoToParams(qemuDomainJobInfoPtr jobInfo, - int *type, - virTypedParameterPtr *params, - int *nparams) -{ - switch (jobInfo->statsType) { - case QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION: - case QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP: - return qemuDomainMigrationJobInfoToParams(jobInfo, type, params, n= params); - - case QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUMP: - return qemuDomainDumpJobInfoToParams(jobInfo, type, params, nparam= s); - - case QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP: - return qemuDomainBackupJobInfoToParams(jobInfo, type, params, npar= ams); - - case QEMU_DOMAIN_JOB_STATS_TYPE_NONE: - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("invalid job statistics type")); - break; - - default: - virReportEnumRangeError(qemuDomainJobStatsType, jobInfo->statsType= ); - break; - } - - return -1; -} - - void qemuDomainObjSetJobPhase(virQEMUDriverPtr driver, virDomainObjPtr obj, diff --git a/src/qemu/qemu_domainjob.h b/src/qemu/qemu_domainjob.h index fcbe3fe112..84b60a466a 100644 --- a/src/qemu/qemu_domainjob.h +++ b/src/qemu/qemu_domainjob.h @@ -215,9 +215,6 @@ const char *qemuDomainAsyncJobPhaseToString(qemuDomainA= syncJob job, int qemuDomainAsyncJobPhaseFromString(qemuDomainAsyncJob job, const char *phase); =20 -void qemuDomainEventEmitJobCompleted(virQEMUDriverPtr driver, - virDomainObjPtr vm); - int qemuDomainObjBeginJob(virQEMUDriverPtr driver, virDomainObjPtr obj, qemuDomainJob job) @@ -258,20 +255,6 @@ void qemuDomainObjDiscardAsyncJob(virQEMUDriverPtr dri= ver, virDomainObjPtr obj); void qemuDomainObjReleaseAsyncJob(virDomainObjPtr obj); =20 -int qemuDomainJobInfoUpdateTime(qemuDomainJobInfoPtr jobInfo) - ATTRIBUTE_NONNULL(1); -int qemuDomainJobInfoUpdateDowntime(qemuDomainJobInfoPtr jobInfo) - ATTRIBUTE_NONNULL(1); -int qemuDomainJobInfoToInfo(qemuDomainJobInfoPtr jobInfo, - virDomainJobInfoPtr info) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); -int qemuDomainJobInfoToParams(qemuDomainJobInfoPtr jobInfo, - int *type, - virTypedParameterPtr *params, - int *nparams) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) - ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4); - bool qemuDomainTrackJob(qemuDomainJob job); =20 void qemuDomainObjFreeJob(qemuDomainJobObjPtr job); --=20 2.25.1 From nobody Tue Apr 30 06:12:00 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1598422224; cv=none; d=zohomail.com; s=zohoarc; b=Rv8XQVGkoqUwR1s4vnK4yuFrkRtVVsG+PZAtOJ+qqbaIpIe3jAIuBBYAjisXU40QssN7QdVK1lb3UNccu/o4xM4Y8JmfqxPHpc3E5USuhVjtmH8pIaI2WvutCdWPnNNnoKpb0gNCfHjOQHY3ALBH4lWNcaPHn0n7bvJsh9KYryo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598422224; 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=7jYu61D1apGreieSPjF9gAKLMdZMu5htGYQ2+BMBEOg=; b=H6aySufbBsKDWcFJKa3hDyoCWhrDVgKvLk4+zZyNQ9V9t407XIWGqGzsBkIe+YQU1UaAv9RvraR/5ZUpoqDdqIV/37oKpkz+RkrbsdCkj5/Rx1B8rO4T8iUwzOMpvsxzl0BP3rXwM+agQNoTJmoMWZTVCuf2uVZDjp4hBmFivSM= ARC-Authentication-Results: i=1; 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 header.from= (p=none dis=none) header.from= 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 1598422224408446.87369733707726; Tue, 25 Aug 2020 23:10:24 -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-159-hJsV0nUiM7i3GAThQ7C6bQ-1; Wed, 26 Aug 2020 02:10:20 -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 0657318B9F09; Wed, 26 Aug 2020 06:10:15 +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 DA2E57A40C; Wed, 26 Aug 2020 06:10:14 +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 A4918180C5A2; Wed, 26 Aug 2020 06:10:14 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 07Q6ACZk008936 for ; Wed, 26 Aug 2020 02:10:12 -0400 Received: by smtp.corp.redhat.com (Postfix) id 69D99114B9A9; Wed, 26 Aug 2020 06:10:10 +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 D05C5114B9AC for ; Wed, 26 Aug 2020 06:10:04 +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-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A1361101A568 for ; Wed, 26 Aug 2020 06:10:04 +0000 (UTC) Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-204-2IKLVBbPNZ6J8TnmDi1hnA-1; Wed, 26 Aug 2020 02:09:57 -0400 Received: by mail-pf1-f196.google.com with SMTP id x143so424133pfc.4; Tue, 25 Aug 2020 23:09:56 -0700 (PDT) Received: from localhost.localdomain ([116.72.86.23]) by smtp.gmail.com with ESMTPSA id hr13sm924745pjb.38.2020.08.25.23.09.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Aug 2020 23:09:54 -0700 (PDT) X-MC-Unique: hJsV0nUiM7i3GAThQ7C6bQ-1 X-MC-Unique: 2IKLVBbPNZ6J8TnmDi1hnA-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=7jYu61D1apGreieSPjF9gAKLMdZMu5htGYQ2+BMBEOg=; b=qCPRiEU6FgGjBzBY0Ie1ZXKcXvYOQFYKr7710eI9knBVfJx6mLcex6RAXOZs5LxaWF KQOlE08E8wN6hfTj9nYz4mX70ScUsyW4eUlfgyiIZo5iCZ9tL7IyXAYB9kotsKFUYfnm m+5Zt9/y4kPr8LrK3Ex+8g0EGybaMkBp06wFFRBJp0U/ff5QBBWhpZeK3p/G/gcfXdmj Spr0WWLmpyyiiwqgta2JAOEaR22IDpheaOji5LgYP2gUPyTb1DCLt0C3boNrZ9pEMwnN jZMXQ7AvVRg7VnbivlPy+N+Ey0+dV0/bDXONFQEffaHXn+kIm9mu294tqWZF/PfpqYo+ NtKw== X-Gm-Message-State: AOAM531lOCREaRPW/8afZwdqMoqMUTTxj7/+aXh2MLKE3Y8bA+5OH8bo qxR0KWLETNAsr7VOviitxrrO8LbsvgZrsA== X-Google-Smtp-Source: ABdhPJz406u3GS3EA6YtWZFkxPGsgn1l6LuFqsln+UWRusxgOnpWvsbRwJzwD72ePXHAgehG4vYgEw== X-Received: by 2002:a63:7003:: with SMTP id l3mr9598832pgc.149.1598422194770; Tue, 25 Aug 2020 23:09:54 -0700 (PDT) From: Prathamesh Chavan To: libvir-list@redhat.com Subject: [GSoC][PATCH v4 2/8] qemu_domain: Added `qemuDomainJobInfo` to domainJob's `privateData` Date: Wed, 26 Aug 2020 11:39:36 +0530 Message-Id: <20200826060942.17320-3-pc44800@gmail.com> In-Reply-To: <20200826060942.17320-1-pc44800@gmail.com> References: <20200826060942.17320-1-pc44800@gmail.com> MIME-Version: 1.0 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.3 X-loop: libvir-list@redhat.com Cc: mkletzan@redhat.com, mprivozn@redhat.com, Prathamesh Chavan , eskultet@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.004 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As `qemuDomainJobInfo` had attributes specific to qemu hypervisor's jobs, we moved the attribute `current` and `completed` from `qemuDomainJobObj` to its `privateData` structure. In this process, two callback functions: `setJobInfoOperation` and `currentJobInfoInit` were introduced to qemuDomainJob's callback structure. Signed-off-by: Prathamesh Chavan --- src/qemu/qemu_backup.c | 22 ++++++----- src/qemu/qemu_domain.c | 29 +++++++++++++- src/qemu/qemu_domain.h | 50 ++++++++++++++++++++++++ src/qemu/qemu_domainjob.c | 6 +-- src/qemu/qemu_domainjob.h | 67 ++++---------------------------- src/qemu/qemu_driver.c | 46 ++++++++++++++-------- src/qemu/qemu_migration.c | 62 ++++++++++++++++------------- src/qemu/qemu_migration_cookie.c | 8 ++-- src/qemu/qemu_process.c | 32 ++++++++------- src/qemu/qemu_snapshot.c | 4 +- 10 files changed, 187 insertions(+), 139 deletions(-) diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c index a402730d38..1822c6f267 100644 --- a/src/qemu/qemu_backup.c +++ b/src/qemu/qemu_backup.c @@ -529,20 +529,21 @@ qemuBackupJobTerminate(virDomainObjPtr vm, =20 { qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; size_t i; =20 - qemuDomainJobInfoUpdateTime(priv->job.current); + qemuDomainJobInfoUpdateTime(jobPriv->current); =20 - g_clear_pointer(&priv->job.completed, qemuDomainJobInfoFree); - priv->job.completed =3D qemuDomainJobInfoCopy(priv->job.current); + g_clear_pointer(&jobPriv->completed, qemuDomainJobInfoFree); + jobPriv->completed =3D qemuDomainJobInfoCopy(jobPriv->current); =20 - priv->job.completed->stats.backup.total =3D priv->backup->push_total; - priv->job.completed->stats.backup.transferred =3D priv->backup->push_t= ransferred; - priv->job.completed->stats.backup.tmp_used =3D priv->backup->pull_tmp_= used; - priv->job.completed->stats.backup.tmp_total =3D priv->backup->pull_tmp= _total; + jobPriv->completed->stats.backup.total =3D priv->backup->push_total; + jobPriv->completed->stats.backup.transferred =3D priv->backup->push_tr= ansferred; + jobPriv->completed->stats.backup.tmp_used =3D priv->backup->pull_tmp_u= sed; + jobPriv->completed->stats.backup.tmp_total =3D priv->backup->pull_tmp_= total; =20 - priv->job.completed->status =3D jobstatus; - priv->job.completed->errmsg =3D g_strdup(priv->backup->errmsg); + jobPriv->completed->status =3D jobstatus; + jobPriv->completed->errmsg =3D g_strdup(priv->backup->errmsg); =20 qemuDomainEventEmitJobCompleted(priv->driver, vm); =20 @@ -694,6 +695,7 @@ qemuBackupBegin(virDomainObjPtr vm, unsigned int flags) { qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(priv->dr= iver); g_autoptr(virDomainBackupDef) def =3D NULL; g_autofree char *suffix =3D NULL; @@ -745,7 +747,7 @@ qemuBackupBegin(virDomainObjPtr vm, qemuDomainObjSetAsyncJobMask(vm, (QEMU_JOB_DEFAULT_MASK | JOB_MASK(QEMU_JOB_SUSPEND) | JOB_MASK(QEMU_JOB_MODIFY))); - priv->job.current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP; + jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP; =20 if (!virDomainObjIsActive(vm)) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 4bee56a1be..42efbc3230 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -543,6 +543,8 @@ qemuJobFreePrivate(void *opaque) return; =20 qemuMigrationParamsFree(priv->migParams); + g_clear_pointer(&priv->current, qemuDomainJobInfoFree); + g_clear_pointer(&priv->completed, qemuDomainJobInfoFree); VIR_FREE(priv); } =20 @@ -556,6 +558,7 @@ qemuJobResetPrivate(void *opaque) priv->spiceMigrated =3D false; priv->dumpCompleted =3D false; qemuMigrationParamsFree(priv->migParams); + g_clear_pointer(&priv->current, qemuDomainJobInfoFree); priv->migParams =3D NULL; } =20 @@ -630,20 +633,40 @@ qemuDomainFormatJobPrivate(virBufferPtr buf, return 0; } =20 +static void +qemuDomainCurrentJobInfoInit(qemuDomainJobObjPtr job, + unsigned long long now) +{ + qemuDomainJobPrivatePtr priv =3D job->privateData; + priv->current =3D g_new0(qemuDomainJobInfo, 1); + priv->current->status =3D QEMU_DOMAIN_JOB_STATUS_ACTIVE; + priv->current->started =3D now; + +} + +static void +qemuDomainJobInfoSetOperation(qemuDomainJobObjPtr job, + virDomainJobOperation operation) +{ + qemuDomainJobPrivatePtr priv =3D job->privateData; + priv->current->operation =3D operation; +} + void qemuDomainEventEmitJobCompleted(virQEMUDriverPtr driver, virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; virObjectEventPtr event; virTypedParameterPtr params =3D NULL; int nparams =3D 0; int type; =20 - if (!priv->job.completed) + if (!jobPriv->completed) return; =20 - if (qemuDomainJobInfoToParams(priv->job.completed, &type, + if (qemuDomainJobInfoToParams(jobPriv->completed, &type, ¶ms, &nparams) < 0) { VIR_WARN("Could not get stats for completed job; domain %s", vm->def->name); @@ -760,6 +783,8 @@ static qemuDomainObjPrivateJobCallbacks qemuPrivateJobC= allbacks =3D { .resetJobPrivate =3D qemuJobResetPrivate, .formatJob =3D qemuDomainFormatJobPrivate, .parseJob =3D qemuDomainParseJobPrivate, + .setJobInfoOperation =3D qemuDomainJobInfoSetOperation, + .currentJobInfoInit =3D qemuDomainCurrentJobInfoInit, }; =20 /** diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 73085b1d91..f77a377e30 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -483,6 +483,52 @@ struct _qemuDomainXmlNsDef { char **capsdel; }; =20 +typedef struct _qemuDomainMirrorStats qemuDomainMirrorStats; +typedef qemuDomainMirrorStats *qemuDomainMirrorStatsPtr; +struct _qemuDomainMirrorStats { + unsigned long long transferred; + unsigned long long total; +}; + +typedef struct _qemuDomainBackupStats qemuDomainBackupStats; +struct _qemuDomainBackupStats { + unsigned long long transferred; + unsigned long long total; + unsigned long long tmp_used; + unsigned long long tmp_total; +}; + +typedef struct _qemuDomainJobInfo qemuDomainJobInfo; +typedef qemuDomainJobInfo *qemuDomainJobInfoPtr; +struct _qemuDomainJobInfo { + qemuDomainJobStatus status; + virDomainJobOperation operation; + unsigned long long started; /* When the async job started */ + unsigned long long stopped; /* When the domain's CPUs were stopped */ + unsigned long long sent; /* When the source sent status info to the + destination (only for migrations). */ + unsigned long long received; /* When the destination host received sta= tus + info from the source (migrations only)= . */ + /* Computed values */ + unsigned long long timeElapsed; + long long timeDelta; /* delta =3D received - sent, i.e., the difference + between the source and the destination time pl= us + the time between the end of Perform phase on t= he + source and the beginning of Finish phase on the + destination. */ + bool timeDeltaSet; + /* Raw values from QEMU */ + qemuDomainJobStatsType statsType; + union { + qemuMonitorMigrationStats mig; + qemuMonitorDumpStats dump; + qemuDomainBackupStats backup; + } stats; + qemuDomainMirrorStats mirrorStats; + + char *errmsg; /* optional error message for failed completed jobs */ +}; + typedef struct _qemuDomainJobPrivate qemuDomainJobPrivate; typedef qemuDomainJobPrivate *qemuDomainJobPrivatePtr; struct _qemuDomainJobPrivate { @@ -491,6 +537,8 @@ struct _qemuDomainJobPrivate { bool spiceMigrated; /* spice migration completed */ bool dumpCompleted; /* dump completed */ qemuMigrationParamsPtr migParams; + qemuDomainJobInfoPtr current; /* async job progress data */ + qemuDomainJobInfoPtr completed; /* statistics data of a recently c= ompleted job */ }; =20 =20 @@ -500,6 +548,8 @@ void qemuDomainEventEmitJobCompleted(virQEMUDriverPtr d= river, void qemuDomainJobInfoFree(qemuDomainJobInfoPtr info); =20 +G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuDomainJobInfo, qemuDomainJobInfoFree); + qemuDomainJobInfoPtr qemuDomainJobInfoCopy(qemuDomainJobInfoPtr info); =20 diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c index 8f8daf0fcb..c100262e49 100644 --- a/src/qemu/qemu_domainjob.c +++ b/src/qemu/qemu_domainjob.c @@ -417,13 +417,11 @@ qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, qemuDomainAsyncJobTypeToString(asyncJob), obj, obj->def->name); qemuDomainObjResetAsyncJob(&priv->job); - priv->job.current =3D g_new0(qemuDomainJobInfo, 1); - priv->job.current->status =3D QEMU_DOMAIN_JOB_STATUS_ACTIVE; + priv->job.cb->currentJobInfoInit(&priv->job, now); priv->job.asyncJob =3D asyncJob; priv->job.asyncOwner =3D virThreadSelfID(); priv->job.asyncOwnerAPI =3D virThreadJobGet(); priv->job.asyncStarted =3D now; - priv->job.current->started =3D now; } } =20 @@ -589,7 +587,7 @@ int qemuDomainObjBeginAsyncJob(virQEMUDriverPtr driver, return -1; =20 priv =3D obj->privateData; - priv->job.current->operation =3D operation; + priv->job.cb->setJobInfoOperation(&priv->job, operation); priv->job.apiFlags =3D apiFlags; return 0; } diff --git a/src/qemu/qemu_domainjob.h b/src/qemu/qemu_domainjob.h index 84b60a466a..c1c68719a6 100644 --- a/src/qemu/qemu_domainjob.h +++ b/src/qemu/qemu_domainjob.h @@ -19,7 +19,6 @@ #pragma once =20 #include -#include "qemu_monitor.h" =20 #define JOB_MASK(job) (job =3D=3D 0 ? 0 : 1 << (job - 1)) #define QEMU_JOB_DEFAULT_MASK \ @@ -99,61 +98,6 @@ typedef enum { QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP, } qemuDomainJobStatsType; =20 - -typedef struct _qemuDomainMirrorStats qemuDomainMirrorStats; -typedef qemuDomainMirrorStats *qemuDomainMirrorStatsPtr; -struct _qemuDomainMirrorStats { - unsigned long long transferred; - unsigned long long total; -}; - -typedef struct _qemuDomainBackupStats qemuDomainBackupStats; -struct _qemuDomainBackupStats { - unsigned long long transferred; - unsigned long long total; - unsigned long long tmp_used; - unsigned long long tmp_total; -}; - -typedef struct _qemuDomainJobInfo qemuDomainJobInfo; -typedef qemuDomainJobInfo *qemuDomainJobInfoPtr; -struct _qemuDomainJobInfo { - qemuDomainJobStatus status; - virDomainJobOperation operation; - unsigned long long started; /* When the async job started */ - unsigned long long stopped; /* When the domain's CPUs were stopped */ - unsigned long long sent; /* When the source sent status info to the - destination (only for migrations). */ - unsigned long long received; /* When the destination host received sta= tus - info from the source (migrations only)= . */ - /* Computed values */ - unsigned long long timeElapsed; - long long timeDelta; /* delta =3D received - sent, i.e., the difference - between the source and the destination time pl= us - the time between the end of Perform phase on t= he - source and the beginning of Finish phase on the - destination. */ - bool timeDeltaSet; - /* Raw values from QEMU */ - qemuDomainJobStatsType statsType; - union { - qemuMonitorMigrationStats mig; - qemuMonitorDumpStats dump; - qemuDomainBackupStats backup; - } stats; - qemuDomainMirrorStats mirrorStats; - - char *errmsg; /* optional error message for failed completed jobs */ -}; - -void -qemuDomainJobInfoFree(qemuDomainJobInfoPtr info); - -G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuDomainJobInfo, qemuDomainJobInfoFree); - -qemuDomainJobInfoPtr -qemuDomainJobInfoCopy(qemuDomainJobInfoPtr info); - typedef struct _qemuDomainJobObj qemuDomainJobObj; typedef qemuDomainJobObj *qemuDomainJobObjPtr; =20 @@ -163,9 +107,12 @@ typedef void (*qemuDomainObjPrivateJobReset)(void *); typedef int (*qemuDomainObjPrivateJobFormat)(virBufferPtr, qemuDomainJobObjPtr, virDomainObjPtr); -typedef int (*qemuDomainObjPrivateJobParse)(xmlXPathContextPtr, - qemuDomainJobObjPtr, +typedef int (*qemuDomainObjPrivateJobParse)(xmlXPathContextPtr, = qemuDomainJobObjPtr, virDomainObjPtr); +typedef void (*qemuDomainObjJobInfoSetOperation)(qemuDomainJobObjPtr, + virDomainJobOperation); +typedef void (*qemuDomainObjCurrentJobInfoInit)(qemuDomainJobObjPtr, + unsigned long long); =20 typedef struct _qemuDomainObjPrivateJobCallbacks qemuDomainObjPrivateJobCa= llbacks; typedef qemuDomainObjPrivateJobCallbacks *qemuDomainObjPrivateJobCallbacks= Ptr; @@ -175,6 +122,8 @@ struct _qemuDomainObjPrivateJobCallbacks { qemuDomainObjPrivateJobReset resetJobPrivate; qemuDomainObjPrivateJobFormat formatJob; qemuDomainObjPrivateJobParse parseJob; + qemuDomainObjJobInfoSetOperation setJobInfoOperation; + qemuDomainObjCurrentJobInfoInit currentJobInfoInit; }; =20 struct _qemuDomainJobObj { @@ -200,8 +149,6 @@ struct _qemuDomainJobObj { unsigned long long asyncStarted; /* When the current async job star= ted */ int phase; /* Job phase (mainly for migration= s) */ unsigned long long mask; /* Jobs allowed during async job */ - qemuDomainJobInfoPtr current; /* async job progress data */ - qemuDomainJobInfoPtr completed; /* statistics data of a recently c= ompleted job */ bool abortJob; /* abort of the job requested */ char *error; /* job event completion error */ unsigned long apiFlags; /* flags passed to the API which started the a= sync job */ diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 3636716cee..806577a70a 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -2694,6 +2694,7 @@ qemuDomainGetControlInfo(virDomainPtr dom, { virDomainObjPtr vm; qemuDomainObjPrivatePtr priv; + qemuDomainJobPrivatePtr jobPriv; int ret =3D -1; =20 virCheckFlags(0, -1); @@ -2708,6 +2709,7 @@ qemuDomainGetControlInfo(virDomainPtr dom, goto cleanup; =20 priv =3D vm->privateData; + jobPriv =3D priv->job.privateData; =20 memset(info, 0, sizeof(*info)); =20 @@ -2717,9 +2719,9 @@ qemuDomainGetControlInfo(virDomainPtr dom, } else if (priv->job.active) { if (virTimeMillisNow(&info->stateTime) < 0) goto cleanup; - if (priv->job.current) { + if (jobPriv->current) { info->state =3D VIR_DOMAIN_CONTROL_JOB; - info->stateTime -=3D priv->job.current->started; + info->stateTime -=3D jobPriv->current->started; } else { if (priv->monStart > 0) { info->state =3D VIR_DOMAIN_CONTROL_OCCUPIED; @@ -2762,6 +2764,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, int ret =3D -1; virObjectEventPtr event =3D NULL; qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; virQEMUSaveDataPtr data =3D NULL; g_autoptr(qemuDomainSaveCookie) cookie =3D NULL; =20 @@ -2778,7 +2781,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, goto endjob; } =20 - priv->job.current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP; + jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP; =20 /* Pause */ if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_RUNNING) { @@ -3082,7 +3085,7 @@ qemuDumpWaitForCompletion(virDomainObjPtr vm) return -1; } =20 - if (priv->job.current->stats.dump.status =3D=3D QEMU_MONITOR_DUMP_STAT= US_FAILED) { + if (jobPriv->current->stats.dump.status =3D=3D QEMU_MONITOR_DUMP_STATU= S_FAILED) { if (priv->job.error) virReportError(VIR_ERR_OPERATION_FAILED, _("memory-only dump failed: %s"), @@ -3093,7 +3096,7 @@ qemuDumpWaitForCompletion(virDomainObjPtr vm) =20 return -1; } - qemuDomainJobInfoUpdateTime(priv->job.current); + qemuDomainJobInfoUpdateTime(jobPriv->current); =20 return 0; } @@ -3107,6 +3110,7 @@ qemuDumpToFd(virQEMUDriverPtr driver, const char *dumpformat) { qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; bool detach =3D false; int ret =3D -1; =20 @@ -3122,9 +3126,9 @@ qemuDumpToFd(virQEMUDriverPtr driver, return -1; =20 if (detach) - priv->job.current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUM= P; + jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUMP; else - g_clear_pointer(&priv->job.current, qemuDomainJobInfoFree); + g_clear_pointer(&jobPriv->current, qemuDomainJobInfoFree); =20 if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) return -1; @@ -3262,6 +3266,7 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuDomainObjPrivatePtr priv =3D NULL; + qemuDomainJobPrivatePtr jobPriv; bool resume =3D false, paused =3D false; int ret =3D -1; virObjectEventPtr event =3D NULL; @@ -3286,7 +3291,8 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, goto endjob; =20 priv =3D vm->privateData; - priv->job.current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP; + jobPriv =3D priv->job.privateData; + jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP; =20 /* Migrate will always stop the VM, so the resume condition is independent of whether the stop command is issued. */ @@ -6499,6 +6505,7 @@ qemuDomainObjStart(virConnectPtr conn, bool force_boot =3D (flags & VIR_DOMAIN_START_FORCE_BOOT) !=3D 0; unsigned int start_flags =3D VIR_QEMU_PROCESS_START_COLD; qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; =20 start_flags |=3D start_paused ? VIR_QEMU_PROCESS_START_PAUSED : 0; start_flags |=3D autodestroy ? VIR_QEMU_PROCESS_START_AUTODESTROY : 0; @@ -6522,8 +6529,8 @@ qemuDomainObjStart(virConnectPtr conn, } vm->hasManagedSave =3D false; } else { - virDomainJobOperation op =3D priv->job.current->operation; - priv->job.current->operation =3D VIR_DOMAIN_JOB_OPERATION_REST= ORE; + virDomainJobOperation op =3D jobPriv->current->operation; + jobPriv->current->operation =3D VIR_DOMAIN_JOB_OPERATION_RESTO= RE; =20 ret =3D qemuDomainObjRestore(conn, driver, vm, managed_save, start_paused, bypass_cache, asyncJo= b); @@ -6541,7 +6548,7 @@ qemuDomainObjStart(virConnectPtr conn, return ret; } else { VIR_WARN("Ignoring incomplete managed state %s", managed_s= ave); - priv->job.current->operation =3D op; + jobPriv->current->operation =3D op; vm->hasManagedSave =3D false; } } @@ -12600,13 +12607,14 @@ qemuDomainGetJobStatsInternal(virQEMUDriverPtr dr= iver, qemuDomainJobInfoPtr *jobInfo) { qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; int ret =3D -1; =20 *jobInfo =3D NULL; =20 if (completed) { - if (priv->job.completed && !priv->job.current) - *jobInfo =3D qemuDomainJobInfoCopy(priv->job.completed); + if (jobPriv->completed && !jobPriv->current) + *jobInfo =3D qemuDomainJobInfoCopy(jobPriv->completed); =20 return 0; } @@ -12624,11 +12632,11 @@ qemuDomainGetJobStatsInternal(virQEMUDriverPtr dr= iver, if (virDomainObjCheckActive(vm) < 0) goto cleanup; =20 - if (!priv->job.current) { + if (!jobPriv->current) { ret =3D 0; goto cleanup; } - *jobInfo =3D qemuDomainJobInfoCopy(priv->job.current); + *jobInfo =3D qemuDomainJobInfoCopy(jobPriv->current); =20 switch ((*jobInfo)->statsType) { case QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION: @@ -12703,6 +12711,7 @@ qemuDomainGetJobStats(virDomainPtr dom, virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuDomainObjPrivatePtr priv; + qemuDomainJobPrivatePtr jobPriv; g_autoptr(qemuDomainJobInfo) jobInfo =3D NULL; bool completed =3D !!(flags & VIR_DOMAIN_JOB_STATS_COMPLETED); int ret =3D -1; @@ -12717,6 +12726,7 @@ qemuDomainGetJobStats(virDomainPtr dom, goto cleanup; =20 priv =3D vm->privateData; + jobPriv =3D priv->job.privateData; if (qemuDomainGetJobStatsInternal(driver, vm, completed, &jobInfo) < 0) goto cleanup; =20 @@ -12732,7 +12742,7 @@ qemuDomainGetJobStats(virDomainPtr dom, ret =3D qemuDomainJobInfoToParams(jobInfo, type, params, nparams); =20 if (completed && ret =3D=3D 0 && !(flags & VIR_DOMAIN_JOB_STATS_KEEP_C= OMPLETED)) - g_clear_pointer(&priv->job.completed, qemuDomainJobInfoFree); + g_clear_pointer(&jobPriv->completed, qemuDomainJobInfoFree); =20 cleanup: virDomainObjEndAPI(&vm); @@ -12764,6 +12774,7 @@ static int qemuDomainAbortJob(virDomainPtr dom) virDomainObjPtr vm; int ret =3D -1; qemuDomainObjPrivatePtr priv; + qemuDomainJobPrivatePtr jobPriv; int reason; =20 if (!(vm =3D qemuDomainObjFromDomain(dom))) @@ -12779,6 +12790,7 @@ static int qemuDomainAbortJob(virDomainPtr dom) goto endjob; =20 priv =3D vm->privateData; + jobPriv =3D priv->job.privateData; =20 switch (priv->job.asyncJob) { case QEMU_ASYNC_JOB_NONE: @@ -12799,7 +12811,7 @@ static int qemuDomainAbortJob(virDomainPtr dom) break; =20 case QEMU_ASYNC_JOB_MIGRATION_OUT: - if ((priv->job.current->status =3D=3D QEMU_DOMAIN_JOB_STATUS_POSTC= OPY || + if ((jobPriv->current->status =3D=3D QEMU_DOMAIN_JOB_STATUS_POSTCO= PY || (virDomainObjGetState(vm, &reason) =3D=3D VIR_DOMAIN_PAUSED && reason =3D=3D VIR_DOMAIN_PAUSED_POSTCOPY))) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index a6f1da97bd..a45f87137f 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -1008,6 +1008,7 @@ qemuMigrationSrcNBDStorageCopy(virQEMUDriverPtr drive= r, unsigned int flags) { qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; int port; size_t i; unsigned long long mirror_speed =3D speed; @@ -1052,7 +1053,7 @@ qemuMigrationSrcNBDStorageCopy(virQEMUDriverPtr drive= r, return -1; =20 if (priv->job.abortJob) { - priv->job.current->status =3D QEMU_DOMAIN_JOB_STATUS_CANCELED; + jobPriv->current->status =3D QEMU_DOMAIN_JOB_STATUS_CANCELED; virReportError(VIR_ERR_OPERATION_ABORTED, _("%s: %s"), qemuDomainAsyncJobTypeToString(priv->job.asyncJ= ob), _("canceled by client")); @@ -1070,7 +1071,7 @@ qemuMigrationSrcNBDStorageCopy(virQEMUDriverPtr drive= r, } =20 qemuMigrationSrcFetchMirrorStats(driver, vm, QEMU_ASYNC_JOB_MIGRATION_= OUT, - priv->job.current); + jobPriv->current); =20 /* Okay, all disks are ready. Modify migrate_flags */ *migrate_flags &=3D ~(QEMU_MONITOR_MIGRATE_NON_SHARED_DISK | @@ -1550,7 +1551,8 @@ qemuMigrationJobCheckStatus(virQEMUDriverPtr driver, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - qemuDomainJobInfoPtr jobInfo =3D priv->job.current; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; + qemuDomainJobInfoPtr jobInfo =3D jobPriv->current; char *error =3D NULL; bool events =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVE= NT); int ret =3D -1; @@ -1620,7 +1622,8 @@ qemuMigrationAnyCompleted(virQEMUDriverPtr driver, unsigned int flags) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - qemuDomainJobInfoPtr jobInfo =3D priv->job.current; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; + qemuDomainJobInfoPtr jobInfo =3D jobPriv->current; int pauseReason; =20 if (qemuMigrationJobCheckStatus(driver, vm, asyncJob) < 0) @@ -1711,7 +1714,8 @@ qemuMigrationSrcWaitForCompletion(virQEMUDriverPtr dr= iver, unsigned int flags) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - qemuDomainJobInfoPtr jobInfo =3D priv->job.current; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; + qemuDomainJobInfoPtr jobInfo =3D jobPriv->current; bool events =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVE= NT); int rv; =20 @@ -1743,9 +1747,9 @@ qemuMigrationSrcWaitForCompletion(virQEMUDriverPtr dr= iver, =20 qemuDomainJobInfoUpdateTime(jobInfo); qemuDomainJobInfoUpdateDowntime(jobInfo); - g_clear_pointer(&priv->job.completed, qemuDomainJobInfoFree); - priv->job.completed =3D qemuDomainJobInfoCopy(jobInfo); - priv->job.completed->status =3D QEMU_DOMAIN_JOB_STATUS_COMPLETED; + g_clear_pointer(&jobPriv->completed, qemuDomainJobInfoFree); + jobPriv->completed =3D qemuDomainJobInfoCopy(jobInfo); + jobPriv->completed->status =3D QEMU_DOMAIN_JOB_STATUS_COMPLETED; =20 if (asyncJob !=3D QEMU_ASYNC_JOB_MIGRATION_OUT && jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED) @@ -3017,16 +3021,16 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr drive= r, return -1; =20 if (retcode =3D=3D 0) - jobInfo =3D priv->job.completed; + jobInfo =3D jobPriv->completed; else - g_clear_pointer(&priv->job.completed, qemuDomainJobInfoFree); + g_clear_pointer(&jobPriv->completed, qemuDomainJobInfoFree); =20 /* Update times with the values sent by the destination daemon */ if (mig->jobInfo && jobInfo) { int reason; =20 /* We need to refresh migration statistics after a completed post-= copy - * migration since priv->job.completed contains obsolete data from= the + * migration since jobPriv->completed contains obsolete data from = the * time we switched to post-copy mode. */ if (virDomainObjGetState(vm, &reason) =3D=3D VIR_DOMAIN_PAUSED && @@ -3478,6 +3482,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, int ret =3D -1; unsigned int migrate_flags =3D QEMU_MONITOR_MIGRATE_BACKGROUND; qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; g_autoptr(qemuMigrationCookie) mig =3D NULL; g_autofree char *tlsAlias =3D NULL; qemuMigrationIOThreadPtr iothread =3D NULL; @@ -3635,7 +3640,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, /* explicitly do this *after* we entered the monitor, * as this is a critical section so we are guaranteed * priv->job.abortJob will not change */ - priv->job.current->status =3D QEMU_DOMAIN_JOB_STATUS_CANCELED; + jobPriv->current->status =3D QEMU_DOMAIN_JOB_STATUS_CANCELED; virReportError(VIR_ERR_OPERATION_ABORTED, _("%s: %s"), qemuDomainAsyncJobTypeToString(priv->job.asyncJob), _("canceled by client")); @@ -3740,7 +3745,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, * resume it now once we finished all block jobs and wait for the real * end of the migration. */ - if (priv->job.current->status =3D=3D QEMU_DOMAIN_JOB_STATUS_PAUSED) { + if (jobPriv->current->status =3D=3D QEMU_DOMAIN_JOB_STATUS_PAUSED) { if (qemuMigrationSrcContinue(driver, vm, QEMU_MONITOR_MIGRATION_STATUS_PRE_SWI= TCHOVER, QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) @@ -3768,11 +3773,11 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, goto error; } =20 - if (priv->job.completed) { - priv->job.completed->stopped =3D priv->job.current->stopped; - qemuDomainJobInfoUpdateTime(priv->job.completed); - qemuDomainJobInfoUpdateDowntime(priv->job.completed); - ignore_value(virTimeMillisNow(&priv->job.completed->sent)); + if (jobPriv->completed) { + jobPriv->completed->stopped =3D jobPriv->current->stopped; + qemuDomainJobInfoUpdateTime(jobPriv->completed); + qemuDomainJobInfoUpdateDowntime(jobPriv->completed); + ignore_value(virTimeMillisNow(&jobPriv->completed->sent)); } =20 cookieFlags |=3D QEMU_MIGRATION_COOKIE_NETWORK | @@ -3800,7 +3805,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, =20 if (virDomainObjIsActive(vm)) { if (cancel && - priv->job.current->status !=3D QEMU_DOMAIN_JOB_STATUS_QEMU_COM= PLETED && + jobPriv->current->status !=3D QEMU_DOMAIN_JOB_STATUS_QEMU_COMP= LETED && qemuDomainObjEnterMonitorAsync(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT) = =3D=3D 0) { qemuMonitorMigrateCancel(priv->mon); @@ -3813,8 +3818,8 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, QEMU_ASYNC_JOB_MIGRATION_OUT, dconn); =20 - if (priv->job.current->status !=3D QEMU_DOMAIN_JOB_STATUS_CANCELED) - priv->job.current->status =3D QEMU_DOMAIN_JOB_STATUS_FAILED; + if (jobPriv->current->status !=3D QEMU_DOMAIN_JOB_STATUS_CANCELED) + jobPriv->current->status =3D QEMU_DOMAIN_JOB_STATUS_FAILED; } =20 if (iothread) @@ -5021,7 +5026,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, : VIR_MIGRATION_PHASE_FINISH2); =20 qemuDomainCleanupRemove(vm, qemuMigrationDstPrepareCleanup); - g_clear_pointer(&priv->job.completed, qemuDomainJobInfoFree); + g_clear_pointer(&jobPriv->completed, qemuDomainJobInfoFree); =20 cookie_flags =3D QEMU_MIGRATION_COOKIE_NETWORK | QEMU_MIGRATION_COOKIE_STATS | @@ -5113,7 +5118,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, goto endjob; } =20 - if (priv->job.current->status =3D=3D QEMU_DOMAIN_JOB_STATUS_POSTCOPY) + if (jobPriv->current->status =3D=3D QEMU_DOMAIN_JOB_STATUS_POSTCOPY) inPostCopy =3D true; =20 if (!(flags & VIR_MIGRATE_PAUSED)) { @@ -5227,9 +5232,9 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, =20 if (dom) { if (jobInfo) { - priv->job.completed =3D g_steal_pointer(&jobInfo); - priv->job.completed->status =3D QEMU_DOMAIN_JOB_STATUS_COMPLET= ED; - priv->job.completed->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_= MIGRATION; + jobPriv->completed =3D g_steal_pointer(&jobInfo); + jobPriv->completed->status =3D QEMU_DOMAIN_JOB_STATUS_COMPLETE= D; + jobPriv->completed->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_M= IGRATION; } =20 if (qemuMigrationBakeCookie(mig, driver, vm, @@ -5242,7 +5247,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, * is obsolete anyway. */ if (inPostCopy) - g_clear_pointer(&priv->job.completed, qemuDomainJobInfoFree); + g_clear_pointer(&jobPriv->completed, qemuDomainJobInfoFree); } =20 qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, @@ -5471,6 +5476,7 @@ qemuMigrationJobStart(virQEMUDriverPtr driver, unsigned long apiFlags) { qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; virDomainJobOperation op; unsigned long long mask; =20 @@ -5487,7 +5493,7 @@ qemuMigrationJobStart(virQEMUDriverPtr driver, if (qemuDomainObjBeginAsyncJob(driver, vm, job, op, apiFlags) < 0) return -1; =20 - priv->job.current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION; + jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION; =20 qemuDomainObjSetAsyncJobMask(vm, mask); return 0; diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_coo= kie.c index cef2555988..6cf1c22812 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -509,12 +509,13 @@ qemuMigrationCookieAddStatistics(qemuMigrationCookieP= tr mig, virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; =20 - if (!priv->job.completed) + if (!jobPriv->completed) return 0; =20 g_clear_pointer(&mig->jobInfo, qemuDomainJobInfoFree); - mig->jobInfo =3D qemuDomainJobInfoCopy(priv->job.completed); + mig->jobInfo =3D qemuDomainJobInfoCopy(jobPriv->completed); =20 mig->flags |=3D QEMU_MIGRATION_COOKIE_STATS; =20 @@ -1465,6 +1466,7 @@ qemuMigrationEatCookie(virQEMUDriverPtr driver, unsigned int flags) { g_autoptr(qemuMigrationCookie) mig =3D NULL; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; =20 /* Parse & validate incoming cookie (if any) */ if (cookiein && cookieinlen && @@ -1513,7 +1515,7 @@ qemuMigrationEatCookie(virQEMUDriverPtr driver, } =20 if (flags & QEMU_MIGRATION_COOKIE_STATS && mig->jobInfo) - mig->jobInfo->operation =3D priv->job.current->operation; + mig->jobInfo->operation =3D jobPriv->current->operation; =20 return g_steal_pointer(&mig); } diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 55b31382f3..aa36264b6c 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -658,6 +658,7 @@ qemuProcessHandleStop(qemuMonitorPtr mon G_GNUC_UNUSED, virDomainEventSuspendedDetailType detail; g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; =20 virObjectLock(vm); =20 @@ -669,7 +670,7 @@ qemuProcessHandleStop(qemuMonitorPtr mon G_GNUC_UNUSED, if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_RUNNING && !priv->pausedShutdown) { if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_OUT) { - if (priv->job.current->status =3D=3D QEMU_DOMAIN_JOB_STATUS_PO= STCOPY) + if (jobPriv->current->status =3D=3D QEMU_DOMAIN_JOB_STATUS_POS= TCOPY) reason =3D VIR_DOMAIN_PAUSED_POSTCOPY; else reason =3D VIR_DOMAIN_PAUSED_MIGRATION; @@ -681,8 +682,8 @@ qemuProcessHandleStop(qemuMonitorPtr mon G_GNUC_UNUSED, vm->def->name, virDomainPausedReasonTypeToString(reason), detail); =20 - if (priv->job.current) - ignore_value(virTimeMillisNow(&priv->job.current->stopped)); + if (jobPriv->current) + ignore_value(virTimeMillisNow(&jobPriv->current->stopped)); =20 if (priv->signalStop) virDomainObjBroadcast(vm); @@ -1650,6 +1651,7 @@ qemuProcessHandleMigrationStatus(qemuMonitorPtr mon G= _GNUC_UNUSED, void *opaque) { qemuDomainObjPrivatePtr priv; + qemuDomainJobPrivatePtr jobPriv; virQEMUDriverPtr driver =3D opaque; virObjectEventPtr event =3D NULL; g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); @@ -1662,12 +1664,13 @@ qemuProcessHandleMigrationStatus(qemuMonitorPtr mon= G_GNUC_UNUSED, qemuMonitorMigrationStatusTypeToString(status)); =20 priv =3D vm->privateData; + jobPriv =3D priv->job.privateData; if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_NONE) { VIR_DEBUG("got MIGRATION event without a migration job"); goto cleanup; } =20 - priv->job.current->stats.mig.status =3D status; + jobPriv->current->stats.mig.status =3D status; virDomainObjBroadcast(vm); =20 if (status =3D=3D QEMU_MONITOR_MIGRATION_STATUS_POSTCOPY && @@ -1748,13 +1751,13 @@ qemuProcessHandleDumpCompleted(qemuMonitorPtr mon G= _GNUC_UNUSED, goto cleanup; } jobPriv->dumpCompleted =3D true; - priv->job.current->stats.dump =3D *stats; + jobPriv->current->stats.dump =3D *stats; priv->job.error =3D g_strdup(error); =20 /* Force error if extracting the DUMP_COMPLETED status failed */ if (!error && status < 0) { priv->job.error =3D g_strdup(virGetLastErrorMessage()); - priv->job.current->stats.dump.status =3D QEMU_MONITOR_DUMP_STATUS_= FAILED; + jobPriv->current->stats.dump.status =3D QEMU_MONITOR_DUMP_STATUS_F= AILED; } =20 virDomainObjBroadcast(vm); @@ -3268,6 +3271,7 @@ int qemuProcessStopCPUs(virQEMUDriverPtr driver, { int ret =3D -1; qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; =20 VIR_FREE(priv->lockState); =20 @@ -3286,8 +3290,8 @@ int qemuProcessStopCPUs(virQEMUDriverPtr driver, /* de-activate netdevs after stopping CPUs */ ignore_value(qemuInterfaceStopDevices(vm->def)); =20 - if (priv->job.current) - ignore_value(virTimeMillisNow(&priv->job.current->stopped)); + if (jobPriv->current) + ignore_value(virTimeMillisNow(&jobPriv->current->stopped)); =20 /* The STOP event handler will change the domain state with the reason * saved in priv->pausedReason and it will also emit corresponding dom= ain @@ -3584,6 +3588,7 @@ qemuProcessRecoverJob(virQEMUDriverPtr driver, unsigned int *stopFlags) { qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; virDomainState state; int reason; unsigned long long now; @@ -3652,11 +3657,11 @@ qemuProcessRecoverJob(virQEMUDriverPtr driver, /* We reset the job parameters for backup so that the job will look * active. This is possible because we are able to recover the sta= te * of blockjobs and also the backup job allows all sub-job types */ - priv->job.current =3D g_new0(qemuDomainJobInfo, 1); - priv->job.current->operation =3D VIR_DOMAIN_JOB_OPERATION_BACKUP; - priv->job.current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP; - priv->job.current->status =3D QEMU_DOMAIN_JOB_STATUS_ACTIVE; - priv->job.current->started =3D now; + jobPriv->current =3D g_new0(qemuDomainJobInfo, 1); + jobPriv->current->operation =3D VIR_DOMAIN_JOB_OPERATION_BACKUP; + jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP; + jobPriv->current->status =3D QEMU_DOMAIN_JOB_STATUS_ACTIVE; + jobPriv->current->started =3D now; break; =20 case QEMU_ASYNC_JOB_NONE: @@ -3761,7 +3766,6 @@ qemuDomainPerfRestart(virDomainObjPtr vm) return 0; } =20 - static void qemuProcessReconnectCheckMemAliasOrderMismatch(virDomainObjPtr vm) { diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index 1e8ea80b22..9f4a146861 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -1305,11 +1305,13 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr d= river, =20 /* do the memory snapshot if necessary */ if (memory) { + qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; + /* check if migration is possible */ if (!qemuMigrationSrcIsAllowed(driver, vm, false, 0)) goto cleanup; =20 - priv->job.current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDU= MP; + jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUM= P; =20 /* allow the migration job to be cancelled or the domain to be pau= sed */ qemuDomainObjSetAsyncJobMask(vm, (QEMU_JOB_DEFAULT_MASK | --=20 2.25.1 From nobody Tue Apr 30 06:12:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.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 63.128.21.124 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=1598422264; cv=none; d=zohomail.com; s=zohoarc; b=BjXrF5DyIe158FziK8Su5EWOeyOZmSEKhTb6UetNf9n2PJS48uv0oCQn6zBI51hdBoYMlS1MsNM5aiaMXqt2OojSi9uBKX2Lq4jPBVtBVAI2wHUIXTsMzhtn2zjJHn3FDRqXSGCJiTKY/h7JTs1snigYKCuhnjCmYOuxP+fGJ8w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598422264; 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=V3baKWIzoQigBuJ7C0alXmzYl0NO8Bg9E3AGsRsM36A=; b=ideb8UL7F46BWwPVb4C7JXu8zbhrlQRm1XgzDMLIhaYgoCY1NL/zguVqxhBVfKMTvRAliriGWYfmYZIdy3tNaEpBE6Pk3SAAYPb6BsHw1dW74Fa8dugKXAWGrZKYV0D50lU0hWRFkW4Zu+UWSY3FO6IuNe869a+KFIclhelF7CM= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1598422264503642.3837965725559; Tue, 25 Aug 2020 23:11:04 -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-439-4DneXlKLMC-17nggS99B4g-1; Wed, 26 Aug 2020 02:10:16 -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 E608D807339; Wed, 26 Aug 2020 06:10:10 +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 C229E747D7; Wed, 26 Aug 2020 06:10:10 +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 88709668E0; Wed, 26 Aug 2020 06:10:10 +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 07Q6A5cT008891 for ; Wed, 26 Aug 2020 02:10:05 -0400 Received: by smtp.corp.redhat.com (Postfix) id 641E1202279A; Wed, 26 Aug 2020 06:10:05 +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 55AC32022796 for ; Wed, 26 Aug 2020 06:10:02 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (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 6C047811E7A for ; Wed, 26 Aug 2020 06:10:02 +0000 (UTC) Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-244-ZY6Do84JMSGgOMoEiirSqQ-1; Wed, 26 Aug 2020 02:09:59 -0400 Received: by mail-pf1-f193.google.com with SMTP id y206so411351pfb.10; Tue, 25 Aug 2020 23:09:58 -0700 (PDT) Received: from localhost.localdomain ([116.72.86.23]) by smtp.gmail.com with ESMTPSA id hr13sm924745pjb.38.2020.08.25.23.09.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Aug 2020 23:09:56 -0700 (PDT) X-MC-Unique: 4DneXlKLMC-17nggS99B4g-1 X-MC-Unique: ZY6Do84JMSGgOMoEiirSqQ-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=V3baKWIzoQigBuJ7C0alXmzYl0NO8Bg9E3AGsRsM36A=; b=T68SDoEu76lmk6X6Oot1bo9vFIZH0YhKDJlGkp5r8gjUvSGK4QlDPB1hzSbRn5FJgm kirDUNij0txW6VumJS1D+4UjUj7k3QgtrRpWLSQkoQWo96721CaoYvdH0JAfyWk84nOE 30H68BN5RqihAuYSE+57DC19CDveoy6CYH72x4Sk80rNE0t8uDOIEh8TyV3Nx3PS6y+d 35tDPDWrnnSRXWtfS5FCWqVO4P7vcKA2xI7YKBenWP2iGsUQfN6rT9BVQDHscU/amBfK h+ywn90x/bJjjqcp7/leeDDFFOW3AQiP3mOENx6iNNdjqutMuxw/IcdJzIJOEYYuj/I8 Ivew== X-Gm-Message-State: AOAM531x4PYqALOopifgLVGj1FOGo5Vk45AcaI/DRuJnONr/XqzPFljt wwkKcfRtlvuwiEY6e/FTuAPa3TbY/htlXw== X-Google-Smtp-Source: ABdhPJwQRfe8vJO2AK/tlro6j2cVzL+SEjx6yru/8XTotyGQGJK9rcVNuJcGALby5Q8M3P8C6wyRfw== X-Received: by 2002:a63:e04c:: with SMTP id n12mr8941466pgj.388.1598422197491; Tue, 25 Aug 2020 23:09:57 -0700 (PDT) From: Prathamesh Chavan To: libvir-list@redhat.com Subject: [GSoC][PATCH v4 3/8] qemu_domainjob: callback functions added to access `jobs_queued` Date: Wed, 26 Aug 2020 11:39:37 +0530 Message-Id: <20200826060942.17320-4-pc44800@gmail.com> In-Reply-To: <20200826060942.17320-1-pc44800@gmail.com> References: <20200826060942.17320-1-pc44800@gmail.com> MIME-Version: 1.0 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-loop: libvir-list@redhat.com Cc: mkletzan@redhat.com, mprivozn@redhat.com, Prathamesh Chavan , eskultet@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.003 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Since the attribute `jobs_queued` was required to be accessed by jobs, callback functions: `getJobsQueued`, `increaseJobsQueued` and `decreaseJobsQueued` were added to access them. Signed-off-by: Prathamesh Chavan --- src/qemu/qemu_domain.c | 24 ++++++++++++++++++++++++ src/qemu/qemu_domainjob.c | 14 +++++++------- src/qemu/qemu_domainjob.h | 6 ++++++ 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 42efbc3230..bb062c6dd1 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -776,6 +776,27 @@ qemuDomainParseJobPrivate(xmlXPathContextPtr ctxt, return 0; } =20 +static int +qemuDomainGetJobsQueued(virDomainObjPtr vm) +{ + qemuDomainObjPrivatePtr priv =3D vm->privateData; + return priv->jobs_queued; +} + + +static void +qemuDomainIncreaseJobsQueued(virDomainObjPtr vm) +{ + qemuDomainObjPrivatePtr priv =3D vm->privateData; + priv->jobs_queued++; +} + +static void +qemuDomainDecreaseJobsQueued(virDomainObjPtr vm) +{ + qemuDomainObjPrivatePtr priv =3D vm->privateData; + priv->jobs_queued--; +} =20 static qemuDomainObjPrivateJobCallbacks qemuPrivateJobCallbacks =3D { .allocJobPrivate =3D qemuJobAllocPrivate, @@ -785,6 +806,9 @@ static qemuDomainObjPrivateJobCallbacks qemuPrivateJobC= allbacks =3D { .parseJob =3D qemuDomainParseJobPrivate, .setJobInfoOperation =3D qemuDomainJobInfoSetOperation, .currentJobInfoInit =3D qemuDomainCurrentJobInfoInit, + .getJobsQueued =3D qemuDomainGetJobsQueued, + .increaseJobsQueued =3D qemuDomainIncreaseJobsQueued, + .decreaseJobsQueued =3D qemuDomainDecreaseJobsQueued, }; =20 /** diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c index c100262e49..4c7492813a 100644 --- a/src/qemu/qemu_domainjob.c +++ b/src/qemu/qemu_domainjob.c @@ -365,13 +365,13 @@ qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, if (virTimeMillisNow(&now) < 0) return -1; =20 - priv->jobs_queued++; + priv->job.cb->increaseJobsQueued(obj); then =3D now + QEMU_JOB_WAIT_TIME; =20 retry: if ((!async && job !=3D QEMU_JOB_DESTROY) && cfg->maxQueuedJobs && - priv->jobs_queued > cfg->maxQueuedJobs) { + priv->job.cb->getJobsQueued(obj) > cfg->maxQueuedJobs) { goto error; } =20 @@ -502,7 +502,7 @@ qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, } ret =3D -2; } else if (cfg->maxQueuedJobs && - priv->jobs_queued > cfg->maxQueuedJobs) { + priv->job.cb->getJobsQueued(obj) > cfg->maxQueuedJobs) { if (blocker && agentBlocker) { virReportError(VIR_ERR_OPERATION_FAILED, _("cannot acquire state change " @@ -532,7 +532,7 @@ qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, } =20 cleanup: - priv->jobs_queued--; + priv->job.cb->decreaseJobsQueued(obj); return ret; } =20 @@ -653,7 +653,7 @@ qemuDomainObjEndJob(virQEMUDriverPtr driver, virDomainO= bjPtr obj) qemuDomainObjPrivatePtr priv =3D obj->privateData; qemuDomainJob job =3D priv->job.active; =20 - priv->jobs_queued--; + priv->job.cb->decreaseJobsQueued(obj); =20 VIR_DEBUG("Stopping job: %s (async=3D%s vm=3D%p name=3D%s)", qemuDomainJobTypeToString(job), @@ -674,7 +674,7 @@ qemuDomainObjEndAgentJob(virDomainObjPtr obj) qemuDomainObjPrivatePtr priv =3D obj->privateData; qemuDomainAgentJob agentJob =3D priv->job.agentActive; =20 - priv->jobs_queued--; + priv->job.cb->decreaseJobsQueued(obj); =20 VIR_DEBUG("Stopping agent job: %s (async=3D%s vm=3D%p name=3D%s)", qemuDomainAgentJobTypeToString(agentJob), @@ -692,7 +692,7 @@ qemuDomainObjEndAsyncJob(virQEMUDriverPtr driver, virDo= mainObjPtr obj) { qemuDomainObjPrivatePtr priv =3D obj->privateData; =20 - priv->jobs_queued--; + priv->job.cb->decreaseJobsQueued(obj); =20 VIR_DEBUG("Stopping async job: %s (vm=3D%p name=3D%s)", qemuDomainAsyncJobTypeToString(priv->job.asyncJob), diff --git a/src/qemu/qemu_domainjob.h b/src/qemu/qemu_domainjob.h index c1c68719a6..d3bc59cbcb 100644 --- a/src/qemu/qemu_domainjob.h +++ b/src/qemu/qemu_domainjob.h @@ -113,6 +113,9 @@ typedef void (*qemuDomainObjJobInfoSetOperation)(qemuDo= mainJobObjPtr, virDomainJobOperation); typedef void (*qemuDomainObjCurrentJobInfoInit)(qemuDomainJobObjPtr, unsigned long long); +typedef int (*qemuDomainObjGetJobsQueued)(virDomainObjPtr); +typedef void (*qemuDomainObjIncreaseJobsQueued)(virDomainObjPtr); +typedef void (*qemuDomainObjDecreaseJobsQueued)(virDomainObjPtr); =20 typedef struct _qemuDomainObjPrivateJobCallbacks qemuDomainObjPrivateJobCa= llbacks; typedef qemuDomainObjPrivateJobCallbacks *qemuDomainObjPrivateJobCallbacks= Ptr; @@ -124,6 +127,9 @@ struct _qemuDomainObjPrivateJobCallbacks { qemuDomainObjPrivateJobParse parseJob; qemuDomainObjJobInfoSetOperation setJobInfoOperation; qemuDomainObjCurrentJobInfoInit currentJobInfoInit; + qemuDomainObjGetJobsQueued getJobsQueued; + qemuDomainObjIncreaseJobsQueued increaseJobsQueued; + qemuDomainObjDecreaseJobsQueued decreaseJobsQueued; }; =20 struct _qemuDomainJobObj { --=20 2.25.1 From nobody Tue Apr 30 06:12:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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=1598422229; cv=none; d=zohomail.com; s=zohoarc; b=lchpJ7O75gH6H6Z4bHW7cAtVw1YPIvj8GcfhfKRbamW9MauHxFJ6QC9239vOVLGGPB8ihX9S2e3z13eFDqRorgFQueRx3vkf3nLXqGHVt5e2++rcCj3xLOLKX26PFhszrFk3B8YEavd58Kxn0BRCsGGbAtvaXIq0wMwfSwpMwv8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598422229; 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=GjSXz5+obyfHSPBHIB0YKHSPqbQoiB23kqr9/aexxbA=; b=l0dFJRVmkkKS7MRRjkgosIpHN2D3BcczUWE/Vfiv/MupfxMRYNx46pdbu+TMtw20PaPZMGqiMEmyCWazy9Kf4GzIuvJdHyJK4Gs9ElMJzINF2eiMM80CYIRHjCpoYm9q9F2sUz0JlDsbaoaQbkJs0WGwpMW9I+nW1IGxV9e41zk= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1598422229207288.6552476191231; Tue, 25 Aug 2020 23:10:29 -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-436-ZYqRvNRdMJm1NSbfyGc6ew-1; Wed, 26 Aug 2020 02:10:24 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2BA29640C5; Wed, 26 Aug 2020 06:10:19 +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 0890560C0F; Wed, 26 Aug 2020 06:10: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 C94C01826D2A; Wed, 26 Aug 2020 06:10:18 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 07Q6AG6N008957 for ; Wed, 26 Aug 2020 02:10:16 -0400 Received: by smtp.corp.redhat.com (Postfix) id B7A8E114B9A7; Wed, 26 Aug 2020 06:10:14 +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 4C83B114B9A5 for ; Wed, 26 Aug 2020 06:10:10 +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 DE7078EE625 for ; Wed, 26 Aug 2020 06:10:09 +0000 (UTC) Received: from mail-pj1-f66.google.com (mail-pj1-f66.google.com [209.85.216.66]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-25-SAEQznzVOFK4mCZCl7ikkw-1; Wed, 26 Aug 2020 02:10:02 -0400 Received: by mail-pj1-f66.google.com with SMTP id kx11so380504pjb.5; Tue, 25 Aug 2020 23:10:01 -0700 (PDT) Received: from localhost.localdomain ([116.72.86.23]) by smtp.gmail.com with ESMTPSA id hr13sm924745pjb.38.2020.08.25.23.09.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Aug 2020 23:10:00 -0700 (PDT) X-MC-Unique: ZYqRvNRdMJm1NSbfyGc6ew-1 X-MC-Unique: SAEQznzVOFK4mCZCl7ikkw-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=GjSXz5+obyfHSPBHIB0YKHSPqbQoiB23kqr9/aexxbA=; b=rXW2zt+m1n+s7f9cCpbN/jJckp8K0g7SN4TwcO9Ks5q8bw1xTVEnEfE8CC/EVV+xQo 48jfsmFatuL9n2RnXu1whq0wS+2npNbPLlVF6gwjs1kBF1feOa7Fsw1WA4etLcNJVrAr HyzVbwfMLqsItnEzvOz07NQ5sFamwXKGsqcphgl4zPFg+gA8ydYauPJzOAmAoPnvN9mx S2Bxdtc4TaThmt3BF5XQn4h9iCt8qWmiMPXM7x085FfZBEloyAnNW+nVSqqjzpD0wRXm Uop5bHgV4hHpfV8i3bJIDjeP/VEksAoBgrf8bvVzQCMorI54Gif1f2zfM5QOp+e/tFIK awoQ== X-Gm-Message-State: AOAM530dKoKWrnIO+LMt3hRmx7QKAplgxTiIzXMjfUXPyhBz4xxejFHV KmzMJi5h3W1W4WRmDrtJXLjlttbuLvxQrQ== X-Google-Smtp-Source: ABdhPJxMU1hxjoeeLNtRIPqsVK3V2ZxIR39sLV59mMHNQU9UCtDzDDjqUzjbbaCeSOnZXeHBzIshXg== X-Received: by 2002:a17:90a:c505:: with SMTP id k5mr4448845pjt.188.1598422200506; Tue, 25 Aug 2020 23:10:00 -0700 (PDT) From: Prathamesh Chavan To: libvir-list@redhat.com Subject: [GSoC][PATCH v4 4/8] qemu_domainjob: callback function added to access `maxQueuedJobs` Date: Wed, 26 Aug 2020 11:39:38 +0530 Message-Id: <20200826060942.17320-5-pc44800@gmail.com> In-Reply-To: <20200826060942.17320-1-pc44800@gmail.com> References: <20200826060942.17320-1-pc44800@gmail.com> MIME-Version: 1.0 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.3 X-loop: libvir-list@redhat.com Cc: mkletzan@redhat.com, mprivozn@redhat.com, Prathamesh Chavan , eskultet@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.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0.003 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Reference to `maxQueuedJobs` required us to access config of the qemu-driver. To avoid jobs accessing them directly, we add callback function `getMaxQueuedJobs` to job's private-callback functions structure. Signed-off-by: Prathamesh Chavan --- src/qemu/qemu_domain.c | 11 +++++++++++ src/qemu/qemu_domainjob.c | 9 ++++----- src/qemu/qemu_domainjob.h | 2 ++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index bb062c6dd1..d64c262971 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -798,6 +798,14 @@ qemuDomainDecreaseJobsQueued(virDomainObjPtr vm) priv->jobs_queued--; } =20 +static int +qemuDomainGetMaxQueuedJobs(virDomainObjPtr vm) +{ + qemuDomainObjPrivatePtr priv =3D vm->privateData; + virQEMUDriverConfigPtr cfg =3D virQEMUDriverGetConfig(priv->driver); + return cfg->maxQueuedJobs; +} + static qemuDomainObjPrivateJobCallbacks qemuPrivateJobCallbacks =3D { .allocJobPrivate =3D qemuJobAllocPrivate, .freeJobPrivate =3D qemuJobFreePrivate, @@ -809,6 +817,7 @@ static qemuDomainObjPrivateJobCallbacks qemuPrivateJobC= allbacks =3D { .getJobsQueued =3D qemuDomainGetJobsQueued, .increaseJobsQueued =3D qemuDomainIncreaseJobsQueued, .decreaseJobsQueued =3D qemuDomainDecreaseJobsQueued, + .getMaxQueuedJobs =3D qemuDomainGetMaxQueuedJobs, }; =20 /** @@ -2256,6 +2265,8 @@ static void * qemuDomainObjPrivateAlloc(void *opaque) { qemuDomainObjPrivatePtr priv; + virQEMUDriverPtr driver =3D opaque; + g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); =20 if (VIR_ALLOC(priv) < 0) return NULL; diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c index 4c7492813a..dbc9c06d33 100644 --- a/src/qemu/qemu_domainjob.c +++ b/src/qemu/qemu_domainjob.c @@ -344,7 +344,6 @@ qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, unsigned long long then; bool nested =3D job =3D=3D QEMU_JOB_ASYNC_NESTED; bool async =3D job =3D=3D QEMU_JOB_ASYNC; - g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); const char *blocker =3D NULL; const char *agentBlocker =3D NULL; int ret =3D -1; @@ -370,8 +369,8 @@ qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, =20 retry: if ((!async && job !=3D QEMU_JOB_DESTROY) && - cfg->maxQueuedJobs && - priv->job.cb->getJobsQueued(obj) > cfg->maxQueuedJobs) { + priv->job.cb->getMaxQueuedJobs(obj) && + priv->job.cb->getJobsQueued(obj) > priv->job.cb->getMaxQueuedJobs(= obj)) { goto error; } =20 @@ -501,8 +500,8 @@ qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, _("cannot acquire state change lock")); } ret =3D -2; - } else if (cfg->maxQueuedJobs && - priv->job.cb->getJobsQueued(obj) > cfg->maxQueuedJobs) { + } else if (priv->job.cb->getMaxQueuedJobs(obj) && + priv->job.cb->getJobsQueued(obj) > priv->job.cb->getMaxQueu= edJobs(obj)) { if (blocker && agentBlocker) { virReportError(VIR_ERR_OPERATION_FAILED, _("cannot acquire state change " diff --git a/src/qemu/qemu_domainjob.h b/src/qemu/qemu_domainjob.h index d3bc59cbcb..f3d9218ec0 100644 --- a/src/qemu/qemu_domainjob.h +++ b/src/qemu/qemu_domainjob.h @@ -116,6 +116,7 @@ typedef void (*qemuDomainObjCurrentJobInfoInit)(qemuDom= ainJobObjPtr, typedef int (*qemuDomainObjGetJobsQueued)(virDomainObjPtr); typedef void (*qemuDomainObjIncreaseJobsQueued)(virDomainObjPtr); typedef void (*qemuDomainObjDecreaseJobsQueued)(virDomainObjPtr); +typedef int (*qemuDomainObjGetMaxQueuedJobs)(virDomainObjPtr); =20 typedef struct _qemuDomainObjPrivateJobCallbacks qemuDomainObjPrivateJobCa= llbacks; typedef qemuDomainObjPrivateJobCallbacks *qemuDomainObjPrivateJobCallbacks= Ptr; @@ -130,6 +131,7 @@ struct _qemuDomainObjPrivateJobCallbacks { qemuDomainObjGetJobsQueued getJobsQueued; qemuDomainObjIncreaseJobsQueued increaseJobsQueued; qemuDomainObjDecreaseJobsQueued decreaseJobsQueued; + qemuDomainObjGetMaxQueuedJobs getMaxQueuedJobs; }; =20 struct _qemuDomainJobObj { --=20 2.25.1 From nobody Tue Apr 30 06:12:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.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=1598422222; cv=none; d=zohomail.com; s=zohoarc; b=OLlk2HV9ziTklKrSidZ9yGEQ8pVQ2IE0IY6Pv1Zahp7OfrzbxZj2iYID/nmJStxY3GYm14VAjk9PeNI5vecnTeUhqPa5GeGxiFho3cF75kOiCegqKsg+i1k17eGNDI2yJpWmArDQtpXP/32I5fYd//Vi+8pLx4lWpBEbQcgdjZ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598422221; 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=vh9RWZrS5fVzn8ZvEAUcT8/MxVCFiMYJxa3iq2YQyNs=; b=m/Jw8F83qUHmIf/OprMVDIPh02GIMDldrgCuJyi0zgUeHcgqgMKz2qHu8LYjfI6ToAPCMRNc3EVkBeo0LQ8cSovlTsYyWqHtNgTqIsnkrKXKsKxlCGp6fJLq23F+ZXG8wJKPpIpt9/T92iZZcB5Q60oiEDNRgLp+M1PoCqAxmSM= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.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 [205.139.110.120]) by mx.zohomail.com with SMTPS id 1598422221995898.4016430233002; Tue, 25 Aug 2020 23:10:21 -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-174-YLEjXaVdMsi25lq6Zfw77g-1; Wed, 26 Aug 2020 02:10:18 -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 727711009445; Wed, 26 Aug 2020 06:10:12 +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 4F7345C1BB; Wed, 26 Aug 2020 06:10:12 +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 16754180B655; Wed, 26 Aug 2020 06:10:12 +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 07Q6AARP008925 for ; Wed, 26 Aug 2020 02:10:10 -0400 Received: by smtp.corp.redhat.com (Postfix) id 2BD9FCF60A; Wed, 26 Aug 2020 06:10:10 +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 E9DE0D016B for ; Wed, 26 Aug 2020 06:10:09 +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 8FB8C901842 for ; Wed, 26 Aug 2020 06:10:09 +0000 (UTC) Received: from mail-pl1-f195.google.com (mail-pl1-f195.google.com [209.85.214.195]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-349-E2TSz5F3NU2d0hecjTkDog-1; Wed, 26 Aug 2020 02:10:05 -0400 Received: by mail-pl1-f195.google.com with SMTP id b11so393155pld.7; Tue, 25 Aug 2020 23:10:04 -0700 (PDT) Received: from localhost.localdomain ([116.72.86.23]) by smtp.gmail.com with ESMTPSA id hr13sm924745pjb.38.2020.08.25.23.10.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Aug 2020 23:10:02 -0700 (PDT) X-MC-Unique: YLEjXaVdMsi25lq6Zfw77g-1 X-MC-Unique: E2TSz5F3NU2d0hecjTkDog-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=vh9RWZrS5fVzn8ZvEAUcT8/MxVCFiMYJxa3iq2YQyNs=; b=qr02hQrAbB4D67T1lAo6HdlJXKAdAysT9CkCFI8zi0reHi3Ypswk36UW1KLVKrKhoz 75Ady2misuwcbNOKhC4y2hfpY2kyovf56IezRSlNfailYXe1zEk2XvEiL24V3Ul7TJAh ibYJqGM6bMehQEwTZGM1JZSj7i62+8hGwyBPQuLXSgMXcevZhLLNuSKu4yfbSqnqlXQv YzjtIlVSR3+ySTT9GIIqiQx5v5sHJ0vexKEaMx+AyzMZwCbKPtfPQov5maLFAfbjZBjc Z2NTtuwA+M0Zhsc0lJLYwtjK3ZObFTx9UJRjBlm07uDMYwyLdRdTWY4fBH0H+Wt3Qswi MKOg== X-Gm-Message-State: AOAM532/YdoqHQ5IaW0eyUFqqnfpBDoDN/V1WLlALj7Pdj/Ie+XPbAhP 15ixxmyMzXBNrhxjEEPdYbREqh101uoh6g== X-Google-Smtp-Source: ABdhPJx6Ce57fPq81Tt9VTeGRK2I6xgGUWVpkNoKvBUEUSo3Mt5cT7/uLBo8QGlXCpEos/M6dDyv4w== X-Received: by 2002:a17:90b:128a:: with SMTP id fw10mr4847976pjb.4.1598422203337; Tue, 25 Aug 2020 23:10:03 -0700 (PDT) From: Prathamesh Chavan To: libvir-list@redhat.com Subject: [GSoC][PATCH v4 5/8] qemu_domainjob: `qemuDomainJobPrivateJobCallbacks` structure nested Date: Wed, 26 Aug 2020 11:39:39 +0530 Message-Id: <20200826060942.17320-6-pc44800@gmail.com> In-Reply-To: <20200826060942.17320-1-pc44800@gmail.com> References: <20200826060942.17320-1-pc44800@gmail.com> MIME-Version: 1.0 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-loop: libvir-list@redhat.com Cc: mkletzan@redhat.com, mprivozn@redhat.com, Prathamesh Chavan , eskultet@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.003 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" `qemuDomainJobPrivateJobCallbacks` structure was nested inside `qemuDomainJobPrivateCallbacks` structure, so that in future we may add generic callbacks that we can't really categorize into the later callback structure. Signed-off-by: Prathamesh Chavan --- src/qemu/qemu_domain.c | 8 ++++++-- src/qemu/qemu_domainjob.c | 40 +++++++++++++++++++-------------------- src/qemu/qemu_domainjob.h | 39 ++++++++++++++++++++++---------------- 3 files changed, 49 insertions(+), 38 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index d64c262971..82638cfcd9 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -806,7 +806,7 @@ qemuDomainGetMaxQueuedJobs(virDomainObjPtr vm) return cfg->maxQueuedJobs; } =20 -static qemuDomainObjPrivateJobCallbacks qemuPrivateJobCallbacks =3D { +static qemuDomainJobPrivateJobCallbacks qemuJobPrivateJobCallbacks =3D { .allocJobPrivate =3D qemuJobAllocPrivate, .freeJobPrivate =3D qemuJobFreePrivate, .resetJobPrivate =3D qemuJobResetPrivate, @@ -820,6 +820,10 @@ static qemuDomainObjPrivateJobCallbacks qemuPrivateJob= Callbacks =3D { .getMaxQueuedJobs =3D qemuDomainGetMaxQueuedJobs, }; =20 +static qemuDomainJobPrivateCallbacks qemuJobPrivateCallbacks =3D { + .jobcb =3D &qemuJobPrivateJobCallbacks, +}; + /** * qemuDomainObjFromDomain: * @domain: Domain pointer that has to be looked up @@ -2271,7 +2275,7 @@ qemuDomainObjPrivateAlloc(void *opaque) if (VIR_ALLOC(priv) < 0) return NULL; =20 - if (qemuDomainObjInitJob(&priv->job, &qemuPrivateJobCallbacks) < 0) { + if (qemuDomainObjInitJob(&priv->job, &qemuJobPrivateCallbacks) < 0) { virReportSystemError(errno, "%s", _("Unable to init qemu driver mutexes")); goto error; diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c index dbc9c06d33..6405a6ffc1 100644 --- a/src/qemu/qemu_domainjob.c +++ b/src/qemu/qemu_domainjob.c @@ -117,21 +117,21 @@ qemuDomainAsyncJobPhaseFromString(qemuDomainAsyncJob = job, =20 int qemuDomainObjInitJob(qemuDomainJobObjPtr job, - qemuDomainObjPrivateJobCallbacksPtr cb) + qemuDomainJobPrivateCallbacksPtr cb) { memset(job, 0, sizeof(*job)); job->cb =3D cb; =20 - if (!(job->privateData =3D job->cb->allocJobPrivate())) + if (!(job->privateData =3D job->cb->jobcb->allocJobPrivate())) return -1; =20 if (virCondInit(&job->cond) < 0) { - job->cb->freeJobPrivate(job->privateData); + job->cb->jobcb->freeJobPrivate(job->privateData); return -1; } =20 if (virCondInit(&job->asyncCond) < 0) { - job->cb->freeJobPrivate(job->privateData); + job->cb->jobcb->freeJobPrivate(job->privateData); virCondDestroy(&job->cond); return -1; } @@ -171,7 +171,7 @@ qemuDomainObjResetAsyncJob(qemuDomainJobObjPtr job) job->mask =3D QEMU_JOB_DEFAULT_MASK; job->abortJob =3D false; VIR_FREE(job->error); - job->cb->resetJobPrivate(job->privateData); + job->cb->jobcb->resetJobPrivate(job->privateData); job->apiFlags =3D 0; } =20 @@ -190,7 +190,7 @@ qemuDomainObjRestoreJob(virDomainObjPtr obj, job->privateData =3D g_steal_pointer(&priv->job.privateData); job->apiFlags =3D priv->job.apiFlags; =20 - if (!(priv->job.privateData =3D priv->job.cb->allocJobPrivate())) + if (!(priv->job.privateData =3D priv->job.cb->jobcb->allocJobPrivate()= )) return -1; job->cb =3D priv->job.cb; =20 @@ -204,7 +204,7 @@ qemuDomainObjFreeJob(qemuDomainJobObjPtr job) { qemuDomainObjResetJob(job); qemuDomainObjResetAsyncJob(job); - job->cb->freeJobPrivate(job->privateData); + job->cb->jobcb->freeJobPrivate(job->privateData); virCondDestroy(&job->cond); virCondDestroy(&job->asyncCond); } @@ -364,13 +364,13 @@ qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, if (virTimeMillisNow(&now) < 0) return -1; =20 - priv->job.cb->increaseJobsQueued(obj); + priv->job.cb->jobcb->increaseJobsQueued(obj); then =3D now + QEMU_JOB_WAIT_TIME; =20 retry: if ((!async && job !=3D QEMU_JOB_DESTROY) && - priv->job.cb->getMaxQueuedJobs(obj) && - priv->job.cb->getJobsQueued(obj) > priv->job.cb->getMaxQueuedJobs(= obj)) { + priv->job.cb->jobcb->getMaxQueuedJobs(obj) && + priv->job.cb->jobcb->getJobsQueued(obj) > priv->job.cb->jobcb->get= MaxQueuedJobs(obj)) { goto error; } =20 @@ -416,7 +416,7 @@ qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, qemuDomainAsyncJobTypeToString(asyncJob), obj, obj->def->name); qemuDomainObjResetAsyncJob(&priv->job); - priv->job.cb->currentJobInfoInit(&priv->job, now); + priv->job.cb->jobcb->currentJobInfoInit(&priv->job, now); priv->job.asyncJob =3D asyncJob; priv->job.asyncOwner =3D virThreadSelfID(); priv->job.asyncOwnerAPI =3D virThreadJobGet(); @@ -500,8 +500,8 @@ qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, _("cannot acquire state change lock")); } ret =3D -2; - } else if (priv->job.cb->getMaxQueuedJobs(obj) && - priv->job.cb->getJobsQueued(obj) > priv->job.cb->getMaxQueu= edJobs(obj)) { + } else if (priv->job.cb->jobcb->getMaxQueuedJobs(obj) && + priv->job.cb->jobcb->getJobsQueued(obj) > priv->job.cb->job= cb->getMaxQueuedJobs(obj)) { if (blocker && agentBlocker) { virReportError(VIR_ERR_OPERATION_FAILED, _("cannot acquire state change " @@ -531,7 +531,7 @@ qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, } =20 cleanup: - priv->job.cb->decreaseJobsQueued(obj); + priv->job.cb->jobcb->decreaseJobsQueued(obj); return ret; } =20 @@ -586,7 +586,7 @@ int qemuDomainObjBeginAsyncJob(virQEMUDriverPtr driver, return -1; =20 priv =3D obj->privateData; - priv->job.cb->setJobInfoOperation(&priv->job, operation); + priv->job.cb->jobcb->setJobInfoOperation(&priv->job, operation); priv->job.apiFlags =3D apiFlags; return 0; } @@ -652,7 +652,7 @@ qemuDomainObjEndJob(virQEMUDriverPtr driver, virDomainO= bjPtr obj) qemuDomainObjPrivatePtr priv =3D obj->privateData; qemuDomainJob job =3D priv->job.active; =20 - priv->job.cb->decreaseJobsQueued(obj); + priv->job.cb->jobcb->decreaseJobsQueued(obj); =20 VIR_DEBUG("Stopping job: %s (async=3D%s vm=3D%p name=3D%s)", qemuDomainJobTypeToString(job), @@ -673,7 +673,7 @@ qemuDomainObjEndAgentJob(virDomainObjPtr obj) qemuDomainObjPrivatePtr priv =3D obj->privateData; qemuDomainAgentJob agentJob =3D priv->job.agentActive; =20 - priv->job.cb->decreaseJobsQueued(obj); + priv->job.cb->jobcb->decreaseJobsQueued(obj); =20 VIR_DEBUG("Stopping agent job: %s (async=3D%s vm=3D%p name=3D%s)", qemuDomainAgentJobTypeToString(agentJob), @@ -691,7 +691,7 @@ qemuDomainObjEndAsyncJob(virQEMUDriverPtr driver, virDo= mainObjPtr obj) { qemuDomainObjPrivatePtr priv =3D obj->privateData; =20 - priv->job.cb->decreaseJobsQueued(obj); + priv->job.cb->jobcb->decreaseJobsQueued(obj); =20 VIR_DEBUG("Stopping async job: %s (vm=3D%p name=3D%s)", qemuDomainAsyncJobTypeToString(priv->job.asyncJob), @@ -744,7 +744,7 @@ qemuDomainObjPrivateXMLFormatJob(virBufferPtr buf, if (priv->job.asyncJob !=3D QEMU_ASYNC_JOB_NONE) virBufferAsprintf(&attrBuf, " flags=3D'0x%lx'", priv->job.apiFlags= ); =20 - if (priv->job.cb->formatJob(&childBuf, &priv->job, vm) < 0) + if (priv->job.cb->jobcb->formatJob(&childBuf, &priv->job, vm) < 0) return -1; =20 virXMLFormatElement(buf, "job", &attrBuf, &childBuf); @@ -804,7 +804,7 @@ qemuDomainObjPrivateXMLParseJob(virDomainObjPtr vm, return -1; } =20 - if (priv->job.cb->parseJob(ctxt, job, vm) < 0) + if (priv->job.cb->jobcb->parseJob(ctxt, job, vm) < 0) return -1; =20 return 0; diff --git a/src/qemu/qemu_domainjob.h b/src/qemu/qemu_domainjob.h index f3d9218ec0..211503b439 100644 --- a/src/qemu/qemu_domainjob.h +++ b/src/qemu/qemu_domainjob.h @@ -118,20 +118,27 @@ typedef void (*qemuDomainObjIncreaseJobsQueued)(virDo= mainObjPtr); typedef void (*qemuDomainObjDecreaseJobsQueued)(virDomainObjPtr); typedef int (*qemuDomainObjGetMaxQueuedJobs)(virDomainObjPtr); =20 -typedef struct _qemuDomainObjPrivateJobCallbacks qemuDomainObjPrivateJobCa= llbacks; -typedef qemuDomainObjPrivateJobCallbacks *qemuDomainObjPrivateJobCallbacks= Ptr; -struct _qemuDomainObjPrivateJobCallbacks { - qemuDomainObjPrivateJobAlloc allocJobPrivate; - qemuDomainObjPrivateJobFree freeJobPrivate; - qemuDomainObjPrivateJobReset resetJobPrivate; - qemuDomainObjPrivateJobFormat formatJob; - qemuDomainObjPrivateJobParse parseJob; - qemuDomainObjJobInfoSetOperation setJobInfoOperation; - qemuDomainObjCurrentJobInfoInit currentJobInfoInit; - qemuDomainObjGetJobsQueued getJobsQueued; - qemuDomainObjIncreaseJobsQueued increaseJobsQueued; - qemuDomainObjDecreaseJobsQueued decreaseJobsQueued; - qemuDomainObjGetMaxQueuedJobs getMaxQueuedJobs; +typedef struct _qemuDomainJobPrivateJobCallbacks qemuDomainJobPrivateJobCa= llbacks; +typedef qemuDomainJobPrivateJobCallbacks *qemuDomainJobPrivateJobCallbacks= Ptr; +struct _qemuDomainJobPrivateJobCallbacks { + qemuDomainObjPrivateJobAlloc allocJobPrivate; + qemuDomainObjPrivateJobFree freeJobPrivate; + qemuDomainObjPrivateJobReset resetJobPrivate; + qemuDomainObjPrivateJobFormat formatJob; + qemuDomainObjPrivateJobParse parseJob; + qemuDomainObjJobInfoSetOperation setJobInfoOperation; + qemuDomainObjCurrentJobInfoInit currentJobInfoInit; + qemuDomainObjGetJobsQueued getJobsQueued; + qemuDomainObjIncreaseJobsQueued increaseJobsQueued; + qemuDomainObjDecreaseJobsQueued decreaseJobsQueued; + qemuDomainObjGetMaxQueuedJobs getMaxQueuedJobs; +}; + +typedef struct _qemuDomainJobPrivateCallbacks qemuDomainJobPrivateCallback= s; +typedef qemuDomainJobPrivateCallbacks *qemuDomainJobPrivateCallbacksPtr; +struct _qemuDomainJobPrivateCallbacks { + /* Job related callbacks */ + qemuDomainJobPrivateJobCallbacksPtr jobcb; }; =20 struct _qemuDomainJobObj { @@ -162,7 +169,7 @@ struct _qemuDomainJobObj { unsigned long apiFlags; /* flags passed to the API which started the a= sync job */ =20 void *privateData; /* job specific collection of data= */ - qemuDomainObjPrivateJobCallbacksPtr cb; + qemuDomainJobPrivateCallbacksPtr cb; }; =20 const char *qemuDomainAsyncJobPhaseToString(qemuDomainAsyncJob job, @@ -216,7 +223,7 @@ void qemuDomainObjFreeJob(qemuDomainJobObjPtr job); =20 int qemuDomainObjInitJob(qemuDomainJobObjPtr job, - qemuDomainObjPrivateJobCallbacksPtr cb); + qemuDomainJobPrivateCallbacksPtr cb); =20 bool qemuDomainJobAllowed(qemuDomainJobObjPtr jobs, qemuDomainJob newJob); =20 --=20 2.25.1 From nobody Tue Apr 30 06:12:00 2024 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; 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=1598422235; cv=none; d=zohomail.com; s=zohoarc; b=gb497utqHYu6RElGYN3oZ5VQ19b1HxLgw/Bt2Q8ECCjSVeL52JdMTwPLa2WofiQVf2DBc2taujQ9TtF1gcMEUbIFe0kCp2chTD5iusb6lkpzcgIWfavUVYlV/D9E8afet5c7OwCU825k3KyQy8PvLG8MtjaMFJZx2bJ634gDsoU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598422235; 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=u/VuzDalsiTTp8+TasOkZ3VmFEqB/ytjFKQNJ56rCyg=; b=QB9TVy5rJO6faD6dRe8/e/thNHHPWGW6VEYmmJReKey30V5w3EJo0n9UNlGupn2JFwYxfRMaEsUU4VhoXk4sWW8IyuNAEEcDdDvPgOT2ogAi4O0PvsbJ4DaPQvIOV6q2OxzKrf9vj/tFi47Hh6M6y1Hrq3OPlTcMsL3F0w5iHeI= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 1598422235127353.65618771797494; Tue, 25 Aug 2020 23:10:35 -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-575-u2J6Gm4qOO6HH9m8J4eL3A-1; Wed, 26 Aug 2020 02:10:29 -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 7A59B1009443; Wed, 26 Aug 2020 06:10:24 +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 4C7105D9E8; Wed, 26 Aug 2020 06:10:24 +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 161221800B71; Wed, 26 Aug 2020 06:10:24 +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 07Q6ALWR008973 for ; Wed, 26 Aug 2020 02:10:21 -0400 Received: by smtp.corp.redhat.com (Postfix) id D6CCA2166BCC; Wed, 26 Aug 2020 06:10:20 +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 9D1BC2157F23 for ; Wed, 26 Aug 2020 06:10:17 +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-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id ADFA2888BE6 for ; Wed, 26 Aug 2020 06:10:17 +0000 (UTC) Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-390-TdpvhkH2NnC2ELIpDth8ug-1; Wed, 26 Aug 2020 02:10:11 -0400 Received: by mail-pl1-f178.google.com with SMTP id v16so393442plo.1; Tue, 25 Aug 2020 23:10:10 -0700 (PDT) Received: from localhost.localdomain ([116.72.86.23]) by smtp.gmail.com with ESMTPSA id hr13sm924745pjb.38.2020.08.25.23.10.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Aug 2020 23:10:06 -0700 (PDT) X-MC-Unique: u2J6Gm4qOO6HH9m8J4eL3A-1 X-MC-Unique: TdpvhkH2NnC2ELIpDth8ug-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=u/VuzDalsiTTp8+TasOkZ3VmFEqB/ytjFKQNJ56rCyg=; b=Fm+UhZ+ZImghTxAwW2Y6KGTFZPDgzu0GShACETbAti+RT+PbWfOn7NiWKpPIYrzcnf I2UB0Spsvv0AiPiQ/asLkptbXeuiezajGF6UXxtqiZGfspT5lKQ35qTGZiBo9A9EcW3/ 5c6zkWwWR2wlSiYb2OGilKn77EenBQFYqj7tzN8wRn4nDojexvvmbwV2lUBcT9EFtCF5 whpMeC9eFeU/l/L2vLx4keJjUmrWVpPNelBZnpUBxnwpLLY4NLr37seqPwxRc/RpA1B2 9kjqEY+ha/KDVLuE1hl+DIhlp9glu4skWrT/JecOfKKXFZsbb0fyGwKhN5I2cti+uydq G5/w== X-Gm-Message-State: AOAM533nekiBq8G7L9/xpyTuAu0aOATtpsTBwzmihNjZ/RHQV1IPzhvU rB0UMgUaf2iNOWpSsk3fvkUaMUk+h+bJrg== X-Google-Smtp-Source: ABdhPJwgUDqUtSshDij4eF+vD3VrpTICOtXbLvLpso0u15gARZZ2TIJCA0XSPxc5foNzJXLGX+mERw== X-Received: by 2002:a17:90a:2b87:: with SMTP id u7mr4804973pjd.49.1598422208113; Tue, 25 Aug 2020 23:10:08 -0700 (PDT) From: Prathamesh Chavan To: libvir-list@redhat.com Subject: [GSoC][PATCH v4 6/8] qemu_domainjob: add `saveDomainStatus` as a callback function to jobs Date: Wed, 26 Aug 2020 11:39:40 +0530 Message-Id: <20200826060942.17320-7-pc44800@gmail.com> In-Reply-To: <20200826060942.17320-1-pc44800@gmail.com> References: <20200826060942.17320-1-pc44800@gmail.com> MIME-Version: 1.0 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-Mimecast-Bulk-Signature: yes X-Mimecast-Spam-Signature: bulk X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: libvir-list@redhat.com Cc: mkletzan@redhat.com, mprivozn@redhat.com, Prathamesh Chavan , eskultet@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.008 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The function `qemuDomainObjSaveStatus` required an access to `virQEMUDriverPtr`. To make jobs hypervisor-agnostic we remove this funciton and replace it with a callback function from `qemuDomainJob` Removal of `virQEMUDriverPtr` as parameter resulted in removal of the same from function, where it was pass. All of such references were removed as the variable was no longer required. Signed-off-by: Prathamesh Chavan --- src/qemu/qemu_backup.c | 41 +- src/qemu/qemu_backup.h | 3 +- src/qemu/qemu_block.c | 45 +- src/qemu/qemu_block.h | 6 +- src/qemu/qemu_blockjob.c | 45 +- src/qemu/qemu_blockjob.h | 3 +- src/qemu/qemu_checkpoint.c | 29 +- src/qemu/qemu_domain.c | 78 ++- src/qemu/qemu_domain.h | 24 +- src/qemu/qemu_domainjob.c | 63 ++- src/qemu/qemu_domainjob.h | 31 +- src/qemu/qemu_driver.c | 800 ++++++++++++++----------------- src/qemu/qemu_hotplug.c | 319 ++++++------ src/qemu/qemu_hotplug.h | 30 +- src/qemu/qemu_migration.c | 313 ++++++------ src/qemu/qemu_migration.h | 12 +- src/qemu/qemu_migration_cookie.c | 7 +- src/qemu/qemu_migration_params.c | 48 +- src/qemu/qemu_migration_params.h | 15 +- src/qemu/qemu_process.c | 258 +++++----- src/qemu/qemu_process.h | 15 +- src/qemu/qemu_snapshot.c | 48 +- tests/qemuhotplugtest.c | 2 +- 23 files changed, 999 insertions(+), 1236 deletions(-) diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c index 1822c6f267..7e5926250a 100644 --- a/src/qemu/qemu_backup.c +++ b/src/qemu/qemu_backup.c @@ -127,9 +127,9 @@ qemuBackupDiskDataCleanupOne(virDomainObjPtr vm, =20 if (!dd->started) { if (dd->added) { - qemuDomainObjEnterMonitor(priv->driver, vm); + qemuDomainObjEnterMonitor(vm); qemuBlockStorageSourceAttachRollback(priv->mon, dd->crdata->sr= cdata[0]); - ignore_value(qemuDomainObjExitMonitor(priv->driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); } =20 if (dd->created) { @@ -439,12 +439,12 @@ qemuBackupDiskPrepareOneStorage(virDomainObjPtr vm, QEMU_ASYNC_JOB_BACKUP) < 0) return -1; } else { - if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, QEMU_ASYNC_JO= B_BACKUP) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_BACKUP) < 0) return -1; =20 rc =3D qemuBlockStorageSourceAttachApply(priv->mon, dd->crdata->sr= cdata[0]); =20 - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) return -1; } =20 @@ -572,7 +572,7 @@ qemuBackupJobTerminate(virDomainObjPtr vm, =20 virDomainBackupDefFree(priv->backup); priv->backup =3D NULL; - qemuDomainObjEndAsyncJob(priv->driver, vm); + qemuDomainObjEndAsyncJob(vm); } =20 =20 @@ -625,12 +625,12 @@ qemuBackupJobCancelBlockjobs(virDomainObjPtr vm, if (backupdisk->state !=3D VIR_DOMAIN_BACKUP_DISK_STATE_RUNNING) continue; =20 - if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return; =20 rc =3D qemuMonitorJobCancel(priv->mon, job->name, false); =20 - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return; =20 if (rc =3D=3D 0) { @@ -740,7 +740,7 @@ qemuBackupBegin(virDomainObjPtr vm, * infrastructure for async jobs. We'll allow standard modify-type jobs * as the interlocking of conflicting operations is handled on the blo= ck * job level */ - if (qemuDomainObjBeginAsyncJob(priv->driver, vm, QEMU_ASYNC_JOB_BACKUP, + if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_BACKUP, VIR_DOMAIN_JOB_OPERATION_BACKUP, flags)= < 0) return -1; =20 @@ -804,7 +804,7 @@ qemuBackupBegin(virDomainObjPtr vm, =20 priv->backup =3D g_steal_pointer(&def); =20 - if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, QEMU_ASYNC_JOB_BA= CKUP) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_BACKUP) < 0) goto endjob; =20 /* TODO: TLS is a must-have for the modern age */ @@ -824,7 +824,7 @@ qemuBackupBegin(virDomainObjPtr vm, if (rc =3D=3D 0) rc =3D qemuMonitorTransaction(priv->mon, &actions); =20 - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto endjob; =20 job_started =3D true; @@ -837,12 +837,12 @@ qemuBackupBegin(virDomainObjPtr vm, } =20 if (pull) { - if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, QEMU_ASYNC_JO= B_BACKUP) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_BACKUP) < 0) goto endjob; /* note that if the export fails we've already created the checkpo= int * and we will not delete it */ rc =3D qemuBackupBeginPullExportDisks(vm, dd, ndd); - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto endjob; =20 if (rc < 0) { @@ -863,14 +863,14 @@ qemuBackupBegin(virDomainObjPtr vm, qemuCheckpointRollbackMetadata(vm, chk); =20 if (!job_started && (nbd_running || tlsAlias || tlsSecretAlias) && - qemuDomainObjEnterMonitorAsync(priv->driver, vm, QEMU_ASYNC_JOB_BA= CKUP) =3D=3D 0) { + qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_BACKUP) =3D=3D 0= ) { if (nbd_running) ignore_value(qemuMonitorNBDServerStop(priv->mon)); if (tlsAlias) ignore_value(qemuMonitorDelObject(priv->mon, tlsAlias, false)); if (tlsSecretAlias) ignore_value(qemuMonitorDelObject(priv->mon, tlsSecretAlias, f= alse)); - ignore_value(qemuDomainObjExitMonitor(priv->driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); } =20 if (ret < 0 && !job_started && priv->backup) @@ -879,7 +879,7 @@ qemuBackupBegin(virDomainObjPtr vm, if (ret =3D=3D 0) qemuDomainObjReleaseAsyncJob(vm); else - qemuDomainObjEndAsyncJob(priv->driver, vm); + qemuDomainObjEndAsyncJob(vm); =20 return ret; } @@ -929,14 +929,14 @@ qemuBackupNotifyBlockjobEnd(virDomainObjPtr vm, return; =20 if (backup->type =3D=3D VIR_DOMAIN_BACKUP_TYPE_PULL) { - if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return; ignore_value(qemuMonitorNBDServerStop(priv->mon)); if (backup->tlsAlias) ignore_value(qemuMonitorDelObject(priv->mon, backup->tlsAlias,= false)); if (backup->tlsSecretAlias) ignore_value(qemuMonitorDelObject(priv->mon, backup->tlsSecret= Alias, false)); - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return; =20 /* update the final statistics with the current job's data */ @@ -1067,8 +1067,7 @@ qemuBackupGetJobInfoStatsUpdateOne(virDomainObjPtr vm, =20 =20 int -qemuBackupGetJobInfoStats(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuBackupGetJobInfoStats(virDomainObjPtr vm, qemuDomainJobInfoPtr jobInfo) { qemuDomainBackupStats *stats =3D &jobInfo->stats.backup; @@ -1090,11 +1089,11 @@ qemuBackupGetJobInfoStats(virQEMUDriverPtr driver, =20 jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_ACTIVE; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 rc =3D qemuMonitorGetJobInfo(priv->mon, &blockjobs, &nblockjobs); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto cleanup; =20 /* count in completed jobs */ diff --git a/src/qemu/qemu_backup.h b/src/qemu/qemu_backup.h index 075fde709b..9925fddbf9 100644 --- a/src/qemu/qemu_backup.h +++ b/src/qemu/qemu_backup.h @@ -48,8 +48,7 @@ qemuBackupJobTerminate(virDomainObjPtr vm, qemuDomainJobStatus jobstatus); =20 int -qemuBackupGetJobInfoStats(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuBackupGetJobInfoStats(virDomainObjPtr vm, qemuDomainJobInfoPtr jobInfo); =20 /* exported for testing */ diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 26c1b42428..23b60e73ec 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -320,8 +320,7 @@ qemuBlockDiskDetectNodes(virDomainDiskDefPtr disk, =20 =20 int -qemuBlockNodeNamesDetect(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuBlockNodeNamesDetect(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -334,13 +333,13 @@ qemuBlockNodeNamesDetect(virQEMUDriverPtr driver, if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_QUERY_NAMED_BLOCK_NODES)) return 0; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 data =3D qemuMonitorQueryNamedBlockNodes(qemuDomainGetMonitor(vm)); blockstats =3D qemuMonitorQueryBlockstats(qemuDomainGetMonitor(vm)); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || !data || !blockstats) + if (qemuDomainObjExitMonitor(vm) < 0 || !data || !blockstats) return -1; =20 if (!(disktable =3D qemuBlockNodeNameGetBackingChain(data, blockstats)= )) @@ -1976,7 +1975,6 @@ qemuBlockStorageSourceChainDetach(qemuMonitorPtr mon, =20 /** * qemuBlockStorageSourceDetachOneBlockdev: - * @driver: qemu driver object * @vm: domain object * @asyncJob: currently running async job * @src: storage source to detach @@ -1986,14 +1984,13 @@ qemuBlockStorageSourceChainDetach(qemuMonitorPtr mo= n, * monitor internally. */ int -qemuBlockStorageSourceDetachOneBlockdev(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuBlockStorageSourceDetachOneBlockdev(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, virStorageSourcePtr src) { int ret; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 ret =3D qemuMonitorBlockdevDel(qemuDomainGetMonitor(vm), src->nodeform= at); @@ -2001,7 +1998,7 @@ qemuBlockStorageSourceDetachOneBlockdev(virQEMUDriver= Ptr driver, if (ret =3D=3D 0) ret =3D qemuMonitorBlockdevDel(qemuDomainGetMonitor(vm), src->node= storage); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 return ret; @@ -2561,13 +2558,13 @@ qemuBlockStorageSourceCreateGeneric(virDomainObjPtr= vm, =20 qemuBlockJobSyncBegin(job); =20 - if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; =20 rc =3D qemuMonitorBlockdevCreate(priv->mon, job->name, props); props =3D NULL; =20 - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto cleanup; =20 qemuBlockJobStarted(job, vm); @@ -2708,18 +2705,18 @@ qemuBlockStorageSourceCreate(virDomainObjPtr vm, false, true) < 0) return -1; =20 - if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; =20 rc =3D qemuBlockStorageSourceAttachApplyStorageDeps(priv->mon, data); =20 - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto cleanup; =20 if (qemuBlockStorageSourceCreateStorage(vm, src, chain, asyncJob) < 0) goto cleanup; =20 - if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; =20 rc =3D qemuBlockStorageSourceAttachApplyStorage(priv->mon, data); @@ -2727,7 +2724,7 @@ qemuBlockStorageSourceCreate(virDomainObjPtr vm, if (rc =3D=3D 0) rc =3D qemuBlockStorageSourceAttachApplyFormatDeps(priv->mon, data= ); =20 - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto cleanup; =20 if (qemuBlockStorageSourceCreateFormat(vm, src, backingStore, chain, @@ -2740,12 +2737,12 @@ qemuBlockStorageSourceCreate(virDomainObjPtr vm, false, true) < 0) goto cleanup; =20 - if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; =20 rc =3D qemuBlockStorageSourceAttachApplyFormat(priv->mon, data); =20 - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto cleanup; =20 ret =3D 0; @@ -2753,10 +2750,10 @@ qemuBlockStorageSourceCreate(virDomainObjPtr vm, cleanup: if (ret < 0 && virDomainObjIsActive(vm) && - qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) =3D=3D = 0) { + qemuDomainObjEnterMonitorAsync(vm, asyncJob) =3D=3D 0) { =20 qemuBlockStorageSourceAttachRollback(priv->mon, data); - ignore_value(qemuDomainObjExitMonitor(priv->driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); } =20 return ret; @@ -2861,17 +2858,16 @@ qemuBlockGetNamedNodeData(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - virQEMUDriverPtr driver =3D priv->driver; g_autoptr(virHashTable) blockNamedNodeData =3D NULL; bool supports_flat =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_QMP_QUERY_NAMED_BLOCK_NO= DES_FLAT); =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return NULL; =20 blockNamedNodeData =3D qemuMonitorBlockGetNamedNodeData(priv->mon, sup= ports_flat); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || !blockNamedNodeData) + if (qemuDomainObjExitMonitor(vm) < 0 || !blockNamedNodeData) return NULL; =20 return g_steal_pointer(&blockNamedNodeData); @@ -3185,7 +3181,6 @@ qemuBlockReopenFormat(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - virQEMUDriverPtr driver =3D priv->driver; g_autoptr(virJSONValue) reopenprops =3D NULL; int rc; =20 @@ -3200,12 +3195,12 @@ qemuBlockReopenFormat(virDomainObjPtr vm, if (!(reopenprops =3D qemuBlockStorageSourceGetBlockdevProps(src, src-= >backingStore))) return -1; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 rc =3D qemuMonitorBlockdevReopen(priv->mon, &reopenprops); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) return -1; =20 return 0; diff --git a/src/qemu/qemu_block.h b/src/qemu/qemu_block.h index 9aab620947..35148ea2ba 100644 --- a/src/qemu/qemu_block.h +++ b/src/qemu/qemu_block.h @@ -46,8 +46,7 @@ qemuBlockNodeNameGetBackingChain(virJSONValuePtr namednod= esdata, virJSONValuePtr blockstats); =20 int -qemuBlockNodeNamesDetect(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuBlockNodeNamesDetect(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob); =20 virHashTablePtr @@ -140,8 +139,7 @@ qemuBlockStorageSourceAttachRollback(qemuMonitorPtr mon, qemuBlockStorageSourceAttachDataPtr d= ata); =20 int -qemuBlockStorageSourceDetachOneBlockdev(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuBlockStorageSourceDetachOneBlockdev(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, virStorageSourcePtr src); =20 diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c index c49c98e547..265f449b7a 100644 --- a/src/qemu/qemu_blockjob.c +++ b/src/qemu/qemu_blockjob.c @@ -491,8 +491,7 @@ qemuBlockJobRefreshJobsFindInactive(const void *payload, =20 =20 int -qemuBlockJobRefreshJobs(virQEMUDriverPtr driver, - virDomainObjPtr vm) +qemuBlockJobRefreshJobs(virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; qemuMonitorJobInfoPtr *jobinfo =3D NULL; @@ -503,11 +502,11 @@ qemuBlockJobRefreshJobs(virQEMUDriverPtr driver, int ret =3D -1; int rc; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 rc =3D qemuMonitorGetJobInfo(priv->mon, &jobinfo, &njobinfo); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto cleanup; =20 for (i =3D 0; i < njobinfo; i++) { @@ -524,13 +523,13 @@ qemuBlockJobRefreshJobs(virQEMUDriverPtr driver, =20 qemuBlockJobMarkBroken(job); =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 rc =3D qemuMonitorJobCancel(priv->mon, job->name, true); if (rc =3D=3D -1 && jobinfo[i]->status =3D=3D QEMU_MONITOR_JOB= _STATUS_CONCLUDED) VIR_WARN("can't cancel job '%s' with invalid data", job->n= ame); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; =20 if (rc < 0) @@ -757,7 +756,7 @@ qemuBlockJobEventProcessLegacyCompleted(virQEMUDriverPt= r driver, disk->src->id =3D 0; virStorageSourceBackingStoreClear(disk->src); ignore_value(qemuDomainDetermineDiskChain(driver, vm, disk, NULL, true= )); - ignore_value(qemuBlockNodeNamesDetect(driver, vm, asyncJob)); + ignore_value(qemuBlockNodeNamesDetect(vm, asyncJob)); qemuBlockJobUnregister(job, vm); qemuDomainSaveConfig(vm); } @@ -843,11 +842,11 @@ qemuBlockJobEventProcessConcludedRemoveChain(virQEMUD= riverPtr driver, if (!(data =3D qemuBlockStorageSourceChainDetachPrepareBlockdev(chain)= )) return; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return; =20 qemuBlockStorageSourceChainDetach(qemuDomainGetMonitor(vm), data); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return; =20 qemuDomainStorageSourceChainAccessRevoke(driver, vm, chain); @@ -959,12 +958,12 @@ qemuBlockJobProcessEventCompletedPullBitmaps(virDomai= nObjPtr vm, if (!actions) return 0; =20 - if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 qemuMonitorTransaction(priv->mon, &actions); =20 - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 return 0; @@ -1123,12 +1122,12 @@ qemuBlockJobProcessEventCompletedCommitBitmaps(virD= omainObjPtr vm, return -1; } =20 - if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 qemuMonitorTransaction(priv->mon, &actions); =20 - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 if (!active) { @@ -1346,12 +1345,12 @@ qemuBlockJobProcessEventCompletedCopyBitmaps(virDom= ainObjPtr vm, if (!actions) return 0; =20 - if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 qemuMonitorTransaction(priv->mon, &actions); =20 - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 return 0; @@ -1431,12 +1430,12 @@ qemuBlockJobProcessEventFailedActiveCommit(virQEMUD= riverPtr driver, ignore_value(qemuMonitorTransactionBitmapRemove(actions, disk->mirror-= >nodeformat, "libvirt-tmp-activewri= te")); =20 - if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return; =20 qemuMonitorTransaction(priv->mon, &actions); =20 - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return; =20 /* Ideally, we would make the backing chain read only again (yes, SELi= nux @@ -1480,12 +1479,12 @@ qemuBlockJobProcessEventConcludedCreate(virQEMUDriv= erPtr driver, VIR_FREE(backend->encryptsecretAlias); } =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return; =20 qemuBlockStorageSourceAttachRollback(qemuDomainGetMonitor(vm), backend= ); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return; =20 qemuDomainStorageSourceAccessRevoke(driver, vm, job->data.create.src); @@ -1520,7 +1519,7 @@ qemuBlockJobProcessEventConcludedBackup(virQEMUDriver= Ptr driver, return; } =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return; =20 if (backend) @@ -1529,7 +1528,7 @@ qemuBlockJobProcessEventConcludedBackup(virQEMUDriver= Ptr driver, if (actions) qemuMonitorTransaction(qemuDomainGetMonitor(vm), &actions); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return; =20 if (job->data.backup.store) @@ -1610,7 +1609,7 @@ qemuBlockJobEventProcessConcluded(qemuBlockJobDataPtr= job, unsigned long long progressCurrent =3D 0; unsigned long long progressTotal =3D 0; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; =20 /* we need to fetch the error state as the event does not propagate it= */ @@ -1643,7 +1642,7 @@ qemuBlockJobEventProcessConcluded(qemuBlockJobDataPtr= job, /* dismiss job in qemu */ ignore_value(qemuMonitorJobDismiss(qemuDomainGetMonitor(vm), job->name= )); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; =20 if ((job->newstate =3D=3D QEMU_BLOCKJOB_STATE_COMPLETED || diff --git a/src/qemu/qemu_blockjob.h b/src/qemu/qemu_blockjob.h index 9f73a3547c..bdf4787eb0 100644 --- a/src/qemu/qemu_blockjob.h +++ b/src/qemu/qemu_blockjob.h @@ -226,8 +226,7 @@ qemuBlockJobStartupFinalize(virDomainObjPtr vm, qemuBlockJobDataPtr job); =20 int -qemuBlockJobRefreshJobs(virQEMUDriverPtr driver, - virDomainObjPtr vm); +qemuBlockJobRefreshJobs(virDomainObjPtr vm); =20 void qemuBlockJobUpdate(virDomainObjPtr vm, diff --git a/src/qemu/qemu_checkpoint.c b/src/qemu/qemu_checkpoint.c index f45ab29d4c..b90410aa20 100644 --- a/src/qemu/qemu_checkpoint.c +++ b/src/qemu/qemu_checkpoint.c @@ -198,9 +198,9 @@ qemuCheckpointDiscardBitmaps(virDomainObjPtr vm, relabelimages =3D g_slist_prepend(relabelimages, src); } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorTransaction(priv->mon, &actions); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 relabel: @@ -457,9 +457,9 @@ qemuCheckpointCreate(virQEMUDriverPtr driver, if (qemuCheckpointCreateCommon(driver, vm, def, &actions, &chk) < 0) return NULL; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorTransaction(qemuDomainGetMonitor(vm), &actions); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) { + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) { qemuCheckpointRollbackMetadata(vm, chk); return NULL; } @@ -539,7 +539,7 @@ qemuCheckpointCreateXML(virDomainPtr domain, /* Unlike snapshots, the RNG schema already ensured a sane filename. */ =20 /* We are going to modify the domain below. */ - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) return NULL; =20 if (redefine) { @@ -561,7 +561,7 @@ qemuCheckpointCreateXML(virDomainPtr domain, checkpoint =3D virGetDomainCheckpoint(domain, chk->def->name); =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 return checkpoint; } @@ -578,7 +578,6 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObjPtr vm, virDomainCheckpointDefPtr chkdef) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - virQEMUDriverPtr driver =3D priv->driver; g_autoptr(virHashTable) blockNamedNodeData =3D NULL; g_autofree struct qemuCheckpointDiskMap *diskmap =3D NULL; g_autoptr(virJSONValue) recoveractions =3D NULL; @@ -589,7 +588,7 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObjPtr vm, size_t i; int ret =3D -1; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -659,7 +658,7 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObjPtr vm, goto endjob; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (rc =3D=3D 0 && recoveractions) rc =3D qemuMonitorTransaction(priv->mon, &recoveractions); @@ -667,7 +666,7 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObjPtr vm, if (rc =3D=3D 0) rc =3D qemuMonitorTransaction(priv->mon, &mergeactions); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto endjob; =20 /* now do a final refresh */ @@ -675,11 +674,11 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObjPtr vm, if (!(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, QEMU_ASYNC_= JOB_NONE))) goto endjob; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 rc =3D qemuMonitorTransaction(priv->mon, &cleanupactions); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto endjob; =20 /* update disks */ @@ -698,7 +697,7 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObjPtr vm, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); return ret; } =20 @@ -782,7 +781,7 @@ qemuCheckpointDelete(virDomainObjPtr vm, VIR_DOMAIN_CHECKPOINT_DELETE_METADATA_ONLY | VIR_DOMAIN_CHECKPOINT_DELETE_CHILDREN_ONLY, -1); =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) return -1; =20 if (!metadata_only) { @@ -850,6 +849,6 @@ qemuCheckpointDelete(virDomainObjPtr vm, } =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); return ret; } diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 82638cfcd9..7f56720011 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -821,6 +821,7 @@ static qemuDomainJobPrivateJobCallbacks qemuJobPrivateJ= obCallbacks =3D { }; =20 static qemuDomainJobPrivateCallbacks qemuJobPrivateCallbacks =3D { + .saveStatus =3D qemuDomainSaveStatus, .jobcb =3D &qemuJobPrivateJobCallbacks, }; =20 @@ -6089,20 +6090,19 @@ qemuDomainSaveConfig(virDomainObjPtr obj) * To be followed with qemuDomainObjExitMonitor() once complete */ static int -qemuDomainObjEnterMonitorInternal(virQEMUDriverPtr driver, - virDomainObjPtr obj, +qemuDomainObjEnterMonitorInternal(virDomainObjPtr obj, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D obj->privateData; =20 if (asyncJob !=3D QEMU_ASYNC_JOB_NONE) { int ret; - if ((ret =3D qemuDomainObjBeginNestedJob(driver, obj, asyncJob)) <= 0) + if ((ret =3D qemuDomainObjBeginNestedJob(obj, asyncJob)) < 0) return ret; if (!virDomainObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_FAILED, "%s", _("domain is no longer running")); - qemuDomainObjEndJob(driver, obj); + qemuDomainObjEndJob(obj); return -1; } } else if (priv->job.asyncOwner =3D=3D virThreadSelfID()) { @@ -6126,8 +6126,7 @@ qemuDomainObjEnterMonitorInternal(virQEMUDriverPtr dr= iver, } =20 static void ATTRIBUTE_NONNULL(1) -qemuDomainObjExitMonitorInternal(virQEMUDriverPtr driver, - virDomainObjPtr obj) +qemuDomainObjExitMonitorInternal(virDomainObjPtr obj) { qemuDomainObjPrivatePtr priv =3D obj->privateData; bool hasRefs; @@ -6148,14 +6147,12 @@ qemuDomainObjExitMonitorInternal(virQEMUDriverPtr d= river, priv->mon =3D NULL; =20 if (priv->job.active =3D=3D QEMU_JOB_ASYNC_NESTED) - qemuDomainObjEndJob(driver, obj); + qemuDomainObjEndJob(obj); } =20 -void qemuDomainObjEnterMonitor(virQEMUDriverPtr driver, - virDomainObjPtr obj) +void qemuDomainObjEnterMonitor(virDomainObjPtr obj) { - ignore_value(qemuDomainObjEnterMonitorInternal(driver, obj, - QEMU_ASYNC_JOB_NONE)); + ignore_value(qemuDomainObjEnterMonitorInternal(obj, QEMU_ASYNC_JOB_NON= E)); } =20 /* obj must NOT be locked before calling @@ -6168,10 +6165,9 @@ void qemuDomainObjEnterMonitor(virQEMUDriverPtr driv= er, * and replaced by the persistent definition, so pointers stolen * from the live definition could no longer be valid. */ -int qemuDomainObjExitMonitor(virQEMUDriverPtr driver, - virDomainObjPtr obj) +int qemuDomainObjExitMonitor(virDomainObjPtr obj) { - qemuDomainObjExitMonitorInternal(driver, obj); + qemuDomainObjExitMonitorInternal(obj); if (!virDomainObjIsActive(obj)) { if (virGetLastErrorCode() =3D=3D VIR_ERR_OK) virReportError(VIR_ERR_OPERATION_FAILED, "%s", @@ -6196,11 +6192,10 @@ int qemuDomainObjExitMonitor(virQEMUDriverPtr drive= r, * in the meantime). */ int -qemuDomainObjEnterMonitorAsync(virQEMUDriverPtr driver, - virDomainObjPtr obj, +qemuDomainObjEnterMonitorAsync(virDomainObjPtr obj, qemuDomainAsyncJob asyncJob) { - return qemuDomainObjEnterMonitorInternal(driver, obj, asyncJob); + return qemuDomainObjEnterMonitorInternal(obj, asyncJob); } =20 =20 @@ -7134,10 +7129,10 @@ qemuDomainSnapshotDiscard(virQEMUDriverPtr driver, return -1; } else { priv =3D vm->privateData; - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); /* we continue on even in the face of error */ qemuMonitorDeleteSnapshot(priv->mon, snap->def->name); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); } } =20 @@ -7297,12 +7292,12 @@ qemuDomainRemoveInactiveJob(virQEMUDriverPtr driver, { bool haveJob; =20 - haveJob =3D qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) >=3D 0; + haveJob =3D qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) >=3D 0; =20 qemuDomainRemoveInactive(driver, vm); =20 if (haveJob) - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); } =20 =20 @@ -7318,12 +7313,12 @@ qemuDomainRemoveInactiveJobLocked(virQEMUDriverPtr = driver, { bool haveJob; =20 - haveJob =3D qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) >=3D 0; + haveJob =3D qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) >=3D 0; =20 qemuDomainRemoveInactiveLocked(driver, vm); =20 if (haveJob) - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); } =20 =20 @@ -8338,18 +8333,17 @@ qemuDomainHasBlockjob(virDomainObjPtr vm, =20 =20 int -qemuDomainUpdateDeviceList(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainUpdateDeviceList(virDomainObjPtr vm, int asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; char **aliases; int rc; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; rc =3D qemuMonitorGetDeviceAliases(priv->mon, &aliases); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; if (rc < 0) return -1; @@ -8361,8 +8355,7 @@ qemuDomainUpdateDeviceList(virQEMUDriverPtr driver, =20 =20 int -qemuDomainUpdateMemoryDeviceInfo(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainUpdateMemoryDeviceInfo(virDomainObjPtr vm, int asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -8373,12 +8366,12 @@ qemuDomainUpdateMemoryDeviceInfo(virQEMUDriverPtr d= river, if (vm->def->nmems =3D=3D 0) return 0; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 rc =3D qemuMonitorGetMemoryDeviceInfo(priv->mon, &meminfo); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { virHashFree(meminfo); return -1; } @@ -9599,7 +9592,6 @@ qemuDomainSupportsNewVcpuHotplug(virDomainObjPtr vm) =20 /** * qemuDomainRefreshVcpuInfo: - * @driver: qemu driver data * @vm: domain object * @asyncJob: current asynchronous job type * @state: refresh vcpu state @@ -9612,8 +9604,7 @@ qemuDomainSupportsNewVcpuHotplug(virDomainObjPtr vm) * Returns 0 on success and -1 on fatal error. */ int -qemuDomainRefreshVcpuInfo(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainRefreshVcpuInfo(virDomainObjPtr vm, int asyncJob, bool state) { @@ -9634,13 +9625,13 @@ qemuDomainRefreshVcpuInfo(virQEMUDriverPtr driver, =20 VIR_DEBUG("Maxvcpus %zu hotplug %d fast query %d", maxvcpus, hotplug, = fast); =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 rc =3D qemuMonitorGetCPUInfo(qemuDomainGetMonitor(vm), &info, maxvcpus, hotplug, fast); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; =20 if (rc < 0) @@ -9752,7 +9743,6 @@ qemuDomainGetVcpuHalted(virDomainObjPtr vm, =20 /** * qemuDomainRefreshVcpuHalted: - * @driver: qemu driver data * @vm: domain object * @asyncJob: current asynchronous job type * @@ -9761,8 +9751,7 @@ qemuDomainGetVcpuHalted(virDomainObjPtr vm, * Returns 0 on success and -1 on error */ int -qemuDomainRefreshVcpuHalted(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainRefreshVcpuHalted(virDomainObjPtr vm, int asyncJob) { virDomainVcpuDefPtr vcpu; @@ -9787,14 +9776,14 @@ qemuDomainRefreshVcpuHalted(virQEMUDriverPtr driver, QEMU_CAPS_QUERY_CPUS_FAST)) return 0; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 fast =3D virQEMUCapsGet(QEMU_DOMAIN_PRIVATE(vm)->qemuCaps, QEMU_CAPS_QUERY_CPUS_FAST); haltedmap =3D qemuMonitorGetCpuHalted(qemuDomainGetMonitor(vm), maxvcp= us, fast); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || !haltedmap) + if (qemuDomainObjExitMonitor(vm) < 0 || !haltedmap) goto cleanup; =20 for (i =3D 0; i < maxvcpus; i++) { @@ -10218,19 +10207,18 @@ qemuDomainVcpuPersistOrder(virDomainDefPtr def) =20 =20 int -qemuDomainCheckMonitor(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainCheckMonitor(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 ret =3D qemuMonitorCheck(priv->mon); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 return ret; diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index f77a377e30..43fb37e786 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -578,15 +578,12 @@ void qemuDomainEventFlush(int timer, void *opaque); =20 qemuMonitorPtr qemuDomainGetMonitor(virDomainObjPtr vm) ATTRIBUTE_NONNULL(1); -void qemuDomainObjEnterMonitor(virQEMUDriverPtr driver, - virDomainObjPtr obj) +void qemuDomainObjEnterMonitor(virDomainObjPtr obj) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); -int qemuDomainObjExitMonitor(virQEMUDriverPtr driver, - virDomainObjPtr obj) +int qemuDomainObjExitMonitor(virDomainObjPtr obj) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT; -int qemuDomainObjEnterMonitorAsync(virQEMUDriverPtr driver, - virDomainObjPtr obj, +int qemuDomainObjEnterMonitorAsync(virDomainObjPtr obj, qemuDomainAsyncJob asyncJob) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT; =20 @@ -802,11 +799,9 @@ extern virDomainDefParserConfig virQEMUDriverDomainDef= ParserConfig; extern virDomainABIStability virQEMUDriverDomainABIStability; extern virSaveCookieCallbacks virQEMUDriverDomainSaveCookie; =20 -int qemuDomainUpdateDeviceList(virQEMUDriverPtr driver, - virDomainObjPtr vm, int asyncJob); +int qemuDomainUpdateDeviceList(virDomainObjPtr vm, int asyncJob); =20 -int qemuDomainUpdateMemoryDeviceInfo(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuDomainUpdateMemoryDeviceInfo(virDomainObjPtr vm, int asyncJob); =20 bool qemuDomainDefCheckABIStability(virQEMUDriverPtr driver, @@ -872,13 +867,11 @@ bool qemuDomainSupportsNewVcpuHotplug(virDomainObjPtr= vm); bool qemuDomainHasVcpuPids(virDomainObjPtr vm); pid_t qemuDomainGetVcpuPid(virDomainObjPtr vm, unsigned int vcpuid); int qemuDomainValidateVcpuInfo(virDomainObjPtr vm); -int qemuDomainRefreshVcpuInfo(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuDomainRefreshVcpuInfo(virDomainObjPtr vm, int asyncJob, bool state); bool qemuDomainGetVcpuHalted(virDomainObjPtr vm, unsigned int vcpu); -int qemuDomainRefreshVcpuHalted(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuDomainRefreshVcpuHalted(virDomainObjPtr vm, int asyncJob); =20 bool qemuDomainSupportsNicdev(virDomainDefPtr def, @@ -973,8 +966,7 @@ bool qemuDomainVcpuHotplugIsInOrder(virDomainDefPtr def) void qemuDomainVcpuPersistOrder(virDomainDefPtr def) ATTRIBUTE_NONNULL(1); =20 -int qemuDomainCheckMonitor(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuDomainCheckMonitor(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob); =20 bool qemuDomainSupportsVideoVga(virDomainVideoDefPtr video, diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c index 6405a6ffc1..bb260ccb2e 100644 --- a/src/qemu/qemu_domainjob.c +++ b/src/qemu/qemu_domainjob.c @@ -217,8 +217,7 @@ qemuDomainTrackJob(qemuDomainJob job) =20 =20 void -qemuDomainObjSetJobPhase(virQEMUDriverPtr driver, - virDomainObjPtr obj, +qemuDomainObjSetJobPhase(virDomainObjPtr obj, int phase) { qemuDomainObjPrivatePtr priv =3D obj->privateData; @@ -239,7 +238,7 @@ qemuDomainObjSetJobPhase(virQEMUDriverPtr driver, =20 priv->job.phase =3D phase; priv->job.asyncOwner =3D me; - qemuDomainObjSaveStatus(driver, obj); + priv->job.cb->saveStatus(obj); } =20 void @@ -255,14 +254,13 @@ qemuDomainObjSetAsyncJobMask(virDomainObjPtr obj, } =20 void -qemuDomainObjDiscardAsyncJob(virQEMUDriverPtr driver, virDomainObjPtr obj) +qemuDomainObjDiscardAsyncJob(virDomainObjPtr obj) { qemuDomainObjPrivatePtr priv =3D obj->privateData; - if (priv->job.active =3D=3D QEMU_JOB_ASYNC_NESTED) qemuDomainObjResetJob(&priv->job); qemuDomainObjResetAsyncJob(&priv->job); - qemuDomainObjSaveStatus(driver, obj); + priv->job.cb->saveStatus(obj); } =20 void @@ -311,7 +309,6 @@ qemuDomainObjCanSetJob(qemuDomainJobObjPtr job, =20 /** * qemuDomainObjBeginJobInternal: - * @driver: qemu driver * @obj: domain object * @job: qemuDomainJob to start * @asyncJob: qemuDomainAsyncJob to start @@ -332,8 +329,8 @@ qemuDomainObjCanSetJob(qemuDomainJobObjPtr job, * -1 otherwise. */ static int ATTRIBUTE_NONNULL(1) -qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, - virDomainObjPtr obj, +qemuDomainObjBeginJobInternal(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj, qemuDomainJob job, qemuDomainAgentJob agentJob, qemuDomainAsyncJob asyncJob, @@ -439,7 +436,7 @@ qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, } =20 if (qemuDomainTrackJob(job)) - qemuDomainObjSaveStatus(driver, obj); + jobObj->cb->saveStatus(obj); =20 return 0; =20 @@ -543,11 +540,13 @@ qemuDomainObjBeginJobInternal(virQEMUDriverPtr driver, * * Successful calls must be followed by EndJob eventually */ -int qemuDomainObjBeginJob(virQEMUDriverPtr driver, - virDomainObjPtr obj, +int qemuDomainObjBeginJob(virDomainObjPtr obj, qemuDomainJob job) { - if (qemuDomainObjBeginJobInternal(driver, obj, job, + qemuDomainObjPrivatePtr priv =3D obj->privateData; + qemuDomainJobObjPtr jobObj =3D &priv->job; + + if (qemuDomainObjBeginJobInternal(obj, jobObj, job, QEMU_AGENT_JOB_NONE, QEMU_ASYNC_JOB_NONE, false) < 0) return -1; @@ -563,37 +562,36 @@ int qemuDomainObjBeginJob(virQEMUDriverPtr driver, * To end job call qemuDomainObjEndAgentJob. */ int -qemuDomainObjBeginAgentJob(virQEMUDriverPtr driver, - virDomainObjPtr obj, +qemuDomainObjBeginAgentJob(virDomainObjPtr obj, qemuDomainAgentJob agentJob) { - return qemuDomainObjBeginJobInternal(driver, obj, QEMU_JOB_NONE, + qemuDomainObjPrivatePtr priv =3D obj->privateData; + qemuDomainJobObjPtr jobObj =3D &priv->job; + + return qemuDomainObjBeginJobInternal(obj, jobObj, QEMU_JOB_NONE, agentJob, QEMU_ASYNC_JOB_NONE, false); } =20 -int qemuDomainObjBeginAsyncJob(virQEMUDriverPtr driver, - virDomainObjPtr obj, +int qemuDomainObjBeginAsyncJob(virDomainObjPtr obj, qemuDomainAsyncJob asyncJob, virDomainJobOperation operation, unsigned long apiFlags) { - qemuDomainObjPrivatePtr priv; + qemuDomainObjPrivatePtr priv =3D obj->privateData; =20 - if (qemuDomainObjBeginJobInternal(driver, obj, QEMU_JOB_ASYNC, + if (qemuDomainObjBeginJobInternal(obj, &priv->job, QEMU_JOB_ASYNC, QEMU_AGENT_JOB_NONE, asyncJob, false) < 0) return -1; =20 - priv =3D obj->privateData; priv->job.cb->jobcb->setJobInfoOperation(&priv->job, operation); priv->job.apiFlags =3D apiFlags; return 0; } =20 int -qemuDomainObjBeginNestedJob(virQEMUDriverPtr driver, - virDomainObjPtr obj, +qemuDomainObjBeginNestedJob(virDomainObjPtr obj, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D obj->privateData; @@ -610,7 +608,7 @@ qemuDomainObjBeginNestedJob(virQEMUDriverPtr driver, priv->job.asyncOwner); } =20 - return qemuDomainObjBeginJobInternal(driver, obj, + return qemuDomainObjBeginJobInternal(obj, &priv->job, QEMU_JOB_ASYNC_NESTED, QEMU_AGENT_JOB_NONE, QEMU_ASYNC_JOB_NONE, @@ -620,7 +618,6 @@ qemuDomainObjBeginNestedJob(virQEMUDriverPtr driver, /** * qemuDomainObjBeginJobNowait: * - * @driver: qemu driver * @obj: domain object * @job: qemuDomainJob to start * @@ -631,11 +628,13 @@ qemuDomainObjBeginNestedJob(virQEMUDriverPtr driver, * Returns: see qemuDomainObjBeginJobInternal */ int -qemuDomainObjBeginJobNowait(virQEMUDriverPtr driver, - virDomainObjPtr obj, +qemuDomainObjBeginJobNowait(virDomainObjPtr obj, qemuDomainJob job) { - return qemuDomainObjBeginJobInternal(driver, obj, job, + qemuDomainObjPrivatePtr priv =3D obj->privateData; + qemuDomainJobObjPtr jobObj =3D &priv->job; + + return qemuDomainObjBeginJobInternal(obj, jobObj, job, QEMU_AGENT_JOB_NONE, QEMU_ASYNC_JOB_NONE, true); } @@ -647,7 +646,7 @@ qemuDomainObjBeginJobNowait(virQEMUDriverPtr driver, * earlier qemuDomainBeginJob() call */ void -qemuDomainObjEndJob(virQEMUDriverPtr driver, virDomainObjPtr obj) +qemuDomainObjEndJob(virDomainObjPtr obj) { qemuDomainObjPrivatePtr priv =3D obj->privateData; qemuDomainJob job =3D priv->job.active; @@ -661,7 +660,7 @@ qemuDomainObjEndJob(virQEMUDriverPtr driver, virDomainO= bjPtr obj) =20 qemuDomainObjResetJob(&priv->job); if (qemuDomainTrackJob(job)) - qemuDomainObjSaveStatus(driver, obj); + priv->job.cb->saveStatus(obj); /* We indeed need to wake up ALL threads waiting because * grabbing a job requires checking more variables. */ virCondBroadcast(&priv->job.cond); @@ -687,7 +686,7 @@ qemuDomainObjEndAgentJob(virDomainObjPtr obj) } =20 void -qemuDomainObjEndAsyncJob(virQEMUDriverPtr driver, virDomainObjPtr obj) +qemuDomainObjEndAsyncJob(virDomainObjPtr obj) { qemuDomainObjPrivatePtr priv =3D obj->privateData; =20 @@ -698,7 +697,7 @@ qemuDomainObjEndAsyncJob(virQEMUDriverPtr driver, virDo= mainObjPtr obj) obj, obj->def->name); =20 qemuDomainObjResetAsyncJob(&priv->job); - qemuDomainObjSaveStatus(driver, obj); + priv->job.cb->saveStatus(obj); virCondBroadcast(&priv->job.asyncCond); } =20 diff --git a/src/qemu/qemu_domainjob.h b/src/qemu/qemu_domainjob.h index 211503b439..32ff01009d 100644 --- a/src/qemu/qemu_domainjob.h +++ b/src/qemu/qemu_domainjob.h @@ -104,6 +104,7 @@ typedef qemuDomainJobObj *qemuDomainJobObjPtr; typedef void *(*qemuDomainObjPrivateJobAlloc)(void); typedef void (*qemuDomainObjPrivateJobFree)(void *); typedef void (*qemuDomainObjPrivateJobReset)(void *); +typedef void (*qemuDomainObjPrivateSaveStatus)(virDomainObjPtr); typedef int (*qemuDomainObjPrivateJobFormat)(virBufferPtr, qemuDomainJobObjPtr, virDomainObjPtr); @@ -137,6 +138,9 @@ struct _qemuDomainJobPrivateJobCallbacks { typedef struct _qemuDomainJobPrivateCallbacks qemuDomainJobPrivateCallback= s; typedef qemuDomainJobPrivateCallbacks *qemuDomainJobPrivateCallbacksPtr; struct _qemuDomainJobPrivateCallbacks { + /* generic callbacks that we can't really categorize */ + qemuDomainObjPrivateSaveStatus saveStatus; + /* Job related callbacks */ qemuDomainJobPrivateJobCallbacksPtr jobcb; }; @@ -177,44 +181,35 @@ const char *qemuDomainAsyncJobPhaseToString(qemuDomai= nAsyncJob job, int qemuDomainAsyncJobPhaseFromString(qemuDomainAsyncJob job, const char *phase); =20 -int qemuDomainObjBeginJob(virQEMUDriverPtr driver, - virDomainObjPtr obj, +int qemuDomainObjBeginJob(virDomainObjPtr obj, qemuDomainJob job) G_GNUC_WARN_UNUSED_RESULT; -int qemuDomainObjBeginAgentJob(virQEMUDriverPtr driver, - virDomainObjPtr obj, +int qemuDomainObjBeginAgentJob(virDomainObjPtr obj, qemuDomainAgentJob agentJob) G_GNUC_WARN_UNUSED_RESULT; -int qemuDomainObjBeginAsyncJob(virQEMUDriverPtr driver, - virDomainObjPtr obj, +int qemuDomainObjBeginAsyncJob(virDomainObjPtr obj, qemuDomainAsyncJob asyncJob, virDomainJobOperation operation, unsigned long apiFlags) G_GNUC_WARN_UNUSED_RESULT; -int qemuDomainObjBeginNestedJob(virQEMUDriverPtr driver, - virDomainObjPtr obj, +int qemuDomainObjBeginNestedJob(virDomainObjPtr obj, qemuDomainAsyncJob asyncJob) G_GNUC_WARN_UNUSED_RESULT; -int qemuDomainObjBeginJobNowait(virQEMUDriverPtr driver, - virDomainObjPtr obj, +int qemuDomainObjBeginJobNowait(virDomainObjPtr obj, qemuDomainJob job) G_GNUC_WARN_UNUSED_RESULT; =20 -void qemuDomainObjEndJob(virQEMUDriverPtr driver, - virDomainObjPtr obj); +void qemuDomainObjEndJob(virDomainObjPtr obj); void qemuDomainObjEndAgentJob(virDomainObjPtr obj); -void qemuDomainObjEndAsyncJob(virQEMUDriverPtr driver, - virDomainObjPtr obj); +void qemuDomainObjEndAsyncJob(virDomainObjPtr obj); void qemuDomainObjAbortAsyncJob(virDomainObjPtr obj); -void qemuDomainObjSetJobPhase(virQEMUDriverPtr driver, - virDomainObjPtr obj, +void qemuDomainObjSetJobPhase(virDomainObjPtr obj, int phase); void qemuDomainObjSetAsyncJobMask(virDomainObjPtr obj, unsigned long long allowedJobs); int qemuDomainObjRestoreJob(virDomainObjPtr obj, qemuDomainJobObjPtr job); -void qemuDomainObjDiscardAsyncJob(virQEMUDriverPtr driver, - virDomainObjPtr obj); +void qemuDomainObjDiscardAsyncJob(virDomainObjPtr obj); void qemuDomainObjReleaseAsyncJob(virDomainObjPtr obj); =20 bool qemuDomainTrackJob(qemuDomainJob job); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 806577a70a..974f71b22f 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -191,8 +191,7 @@ qemuAutostartDomain(virDomainObjPtr vm, virResetLastError(); if (vm->autostart && !virDomainObjIsActive(vm)) { - if (qemuProcessBeginJob(driver, vm, - VIR_DOMAIN_JOB_OPERATION_START, flags) < 0= ) { + if (qemuProcessBeginJob(vm, VIR_DOMAIN_JOB_OPERATION_START, flags)= < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to start job on VM '%s': %s"), vm->def->name, virGetLastErrorMessage()); @@ -206,7 +205,7 @@ qemuAutostartDomain(virDomainObjPtr vm, vm->def->name, virGetLastErrorMessage()); } =20 - qemuProcessEndJob(driver, vm); + qemuProcessEndJob(vm); } =20 ret =3D 0; @@ -1748,7 +1747,7 @@ static virDomainPtr qemuDomainCreateXML(virConnectPtr= conn, goto cleanup; def =3D NULL; =20 - if (qemuProcessBeginJob(driver, vm, VIR_DOMAIN_JOB_OPERATION_START, + if (qemuProcessBeginJob(vm, VIR_DOMAIN_JOB_OPERATION_START, flags) < 0) { qemuDomainRemoveInactiveJob(driver, vm); goto cleanup; @@ -1760,7 +1759,7 @@ static virDomainPtr qemuDomainCreateXML(virConnectPtr= conn, start_flags) < 0) { virDomainAuditStart(vm, "booted", false); qemuDomainRemoveInactive(driver, vm); - qemuProcessEndJob(driver, vm); + qemuProcessEndJob(vm); goto cleanup; } =20 @@ -1781,7 +1780,7 @@ static virDomainPtr qemuDomainCreateXML(virConnectPtr= conn, =20 dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 - qemuProcessEndJob(driver, vm); + qemuProcessEndJob(vm); =20 cleanup: virDomainDefFree(def); @@ -1812,7 +1811,7 @@ static int qemuDomainSuspend(virDomainPtr dom) cfg =3D virQEMUDriverGetConfig(driver); priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_SUSPEND) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_SUSPEND) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -1839,7 +1838,7 @@ static int qemuDomainSuspend(virDomainPtr dom) ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -1865,7 +1864,7 @@ static int qemuDomainResume(virDomainPtr dom) if (virDomainResumeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -1897,7 +1896,7 @@ static int qemuDomainResume(virDomainPtr dom) ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -1916,8 +1915,7 @@ qemuDomainShutdownFlagsAgent(virQEMUDriverPtr driver, int agentFlag =3D isReboot ? QEMU_AGENT_SHUTDOWN_REBOOT : QEMU_AGENT_SHUTDOWN_POWERDOWN; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, - QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjGetState(vm, NULL) !=3D VIR_DOMAIN_RUNNING) { @@ -1950,7 +1948,7 @@ qemuDomainShutdownFlagsMonitor(virQEMUDriverPtr drive= r, =20 priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjGetState(vm, NULL) !=3D VIR_DOMAIN_RUNNING) { @@ -1960,13 +1958,13 @@ qemuDomainShutdownFlagsMonitor(virQEMUDriverPtr dri= ver, } =20 qemuDomainSetFakeReboot(driver, vm, isReboot); - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorSystemPowerdown(priv->mon); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); return ret; } =20 @@ -2049,8 +2047,7 @@ qemuDomainRebootAgent(virQEMUDriverPtr driver, if (!isReboot) agentFlag =3D QEMU_AGENT_SHUTDOWN_POWERDOWN; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, - QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) return -1; =20 if (!qemuDomainAgentAvailable(vm, agentForced)) @@ -2078,21 +2075,20 @@ qemuDomainRebootMonitor(virQEMUDriverPtr driver, qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; =20 - if (qemuDomainObjBeginJob(driver, vm, - QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 qemuDomainSetFakeReboot(driver, vm, isReboot); - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorSystemPowerdown(priv->mon); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); return ret; } =20 @@ -2155,7 +2151,6 @@ qemuDomainReboot(virDomainPtr dom, unsigned int flags) static int qemuDomainReset(virDomainPtr dom, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; int ret =3D -1; qemuDomainObjPrivatePtr priv; @@ -2169,16 +2164,16 @@ qemuDomainReset(virDomainPtr dom, unsigned int flag= s) if (virDomainResetEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 priv =3D vm->privateData; - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorSystemReset(priv->mon); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 priv->fakeReboot =3D false; @@ -2188,7 +2183,7 @@ qemuDomainReset(virDomainPtr dom, unsigned int flags) virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_CRAS= HED); =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2228,7 +2223,7 @@ qemuDomainDestroyFlags(virDomainPtr dom, reason =3D=3D VIR_DOMAIN_PAUSED_STARTING_UP && !priv->beingDestroyed); =20 - if (qemuProcessBeginStopJob(driver, vm, QEMU_JOB_DESTROY, + if (qemuProcessBeginStopJob(vm, QEMU_JOB_DESTROY, !(flags & VIR_DOMAIN_DESTROY_GRACEFUL)) < = 0) goto cleanup; =20 @@ -2259,7 +2254,7 @@ qemuDomainDestroyFlags(virDomainPtr dom, endjob: if (ret =3D=3D 0) qemuDomainRemoveInactive(driver, vm); - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2333,7 +2328,7 @@ static int qemuDomainSetMemoryFlags(virDomainPtr dom,= unsigned long newmem, if (virDomainSetMemoryFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -2396,9 +2391,9 @@ static int qemuDomainSetMemoryFlags(virDomainPtr dom,= unsigned long newmem, =20 if (def) { priv =3D vm->privateData; - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); r =3D qemuMonitorSetBalloon(priv->mon, newmem); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || r < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || r < 0) goto endjob; =20 /* Lack of balloon support is a fatal error */ @@ -2420,7 +2415,7 @@ static int qemuDomainSetMemoryFlags(virDomainPtr dom,= unsigned long newmem, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2459,7 +2454,7 @@ static int qemuDomainSetMemoryStatsPeriod(virDomainPt= r dom, int period, if (virDomainSetMemoryStatsPeriodEnsureACL(dom->conn, vm->def, flags) = < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -2476,9 +2471,9 @@ static int qemuDomainSetMemoryStatsPeriod(virDomainPt= r dom, int period, goto endjob; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); r =3D qemuMonitorSetMemoryStatsPeriod(priv->mon, def->memballoon, = period); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto endjob; if (r < 0) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", @@ -2505,7 +2500,7 @@ static int qemuDomainSetMemoryStatsPeriod(virDomainPt= r dom, int period, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2514,7 +2509,6 @@ static int qemuDomainSetMemoryStatsPeriod(virDomainPt= r dom, int period, =20 static int qemuDomainInjectNMI(virDomainPtr domain, unsigned int flags) { - virQEMUDriverPtr driver =3D domain->conn->privateData; virDomainObjPtr vm =3D NULL; int ret =3D -1; qemuDomainObjPrivatePtr priv; @@ -2529,19 +2523,19 @@ static int qemuDomainInjectNMI(virDomainPtr domain,= unsigned int flags) =20 priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorInjectNMI(priv->mon); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2555,7 +2549,6 @@ static int qemuDomainSendKey(virDomainPtr domain, int nkeycodes, unsigned int flags) { - virQEMUDriverPtr driver =3D domain->conn->privateData; virDomainObjPtr vm =3D NULL; int ret =3D -1; qemuDomainObjPrivatePtr priv; @@ -2589,19 +2582,19 @@ static int qemuDomainSendKey(virDomainPtr domain, if (virDomainSendKeyEnsureACL(domain->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorSendKey(priv->mon, holdtime, keycodes, nkeycodes); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2771,7 +2764,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, if (!qemuMigrationSrcIsAllowed(driver, vm, false, 0)) goto cleanup; =20 - if (qemuDomainObjBeginAsyncJob(driver, vm, QEMU_ASYNC_JOB_SAVE, + if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_SAVE, VIR_DOMAIN_JOB_OPERATION_SAVE, flags) <= 0) goto cleanup; =20 @@ -2865,7 +2858,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, virErrorRestore(&save_err); } } - qemuDomainObjEndAsyncJob(driver, vm); + qemuDomainObjEndAsyncJob(vm); if (ret =3D=3D 0) qemuDomainRemoveInactiveJob(driver, vm); =20 @@ -3130,7 +3123,7 @@ qemuDumpToFd(virQEMUDriverPtr driver, else g_clear_pointer(&jobPriv->current, qemuDomainJobInfoFree); =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 if (dumpformat) { @@ -3141,14 +3134,14 @@ qemuDumpToFd(virQEMUDriverPtr driver, _("unsupported dumpformat '%s' " "for this QEMU binary"), dumpformat); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); return -1; } } =20 ret =3D qemuMonitorDumpToFd(priv->mon, fd, dumpformat, detach); =20 - if ((qemuDomainObjExitMonitor(driver, vm) < 0) || ret < 0) + if ((qemuDomainObjExitMonitor(vm) < 0) || ret < 0) return -1; =20 if (detach) @@ -3281,8 +3274,7 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, if (virDomainCoreDumpWithFormatEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAsyncJob(driver, vm, - QEMU_ASYNC_JOB_DUMP, + if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_DUMP, VIR_DOMAIN_JOB_OPERATION_DUMP, flags) < 0) goto cleanup; @@ -3329,9 +3321,9 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, } else if (((resume && paused) || (flags & VIR_DUMP_RESET)) && virDomainObjIsActive(vm)) { if ((ret =3D=3D 0) && (flags & VIR_DUMP_RESET)) { - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorSystemReset(priv->mon); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; } =20 @@ -3349,7 +3341,7 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, } } =20 - qemuDomainObjEndAsyncJob(driver, vm); + qemuDomainObjEndAsyncJob(vm); if (ret =3D=3D 0 && flags & VIR_DUMP_CRASH) qemuDomainRemoveInactiveJob(driver, vm); =20 @@ -3399,7 +3391,7 @@ qemuDomainScreenshot(virDomainPtr dom, if (virDomainScreenshotEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -3447,12 +3439,12 @@ qemuDomainScreenshot(virDomainPtr dom, =20 qemuSecurityDomainSetPathLabel(driver, vm, tmp, false); =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); if (qemuMonitorScreendump(priv->mon, videoAlias, screen, tmp) < 0) { - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); goto endjob; } - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto endjob; =20 if (VIR_CLOSE(tmp_fd) < 0) { @@ -3473,7 +3465,7 @@ qemuDomainScreenshot(virDomainPtr dom, if (unlink_tmp) unlink(tmp); =20 - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -3520,8 +3512,7 @@ processWatchdogEvent(virQEMUDriverPtr driver, =20 switch (action) { case VIR_DOMAIN_WATCHDOG_ACTION_DUMP: - if (qemuDomainObjBeginAsyncJob(driver, vm, - QEMU_ASYNC_JOB_DUMP, + if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_DUMP, VIR_DOMAIN_JOB_OPERATION_DUMP, flags) < 0) { return; @@ -3549,7 +3540,7 @@ processWatchdogEvent(virQEMUDriverPtr driver, } =20 endjob: - qemuDomainObjEndAsyncJob(driver, vm); + qemuDomainObjEndAsyncJob(vm); } =20 static int @@ -3598,7 +3589,7 @@ processGuestPanicEvent(virQEMUDriverPtr driver, bool removeInactive =3D false; unsigned long flags =3D VIR_DUMP_MEMORY_ONLY; =20 - if (qemuDomainObjBeginAsyncJob(driver, vm, QEMU_ASYNC_JOB_DUMP, + if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_DUMP, VIR_DOMAIN_JOB_OPERATION_DUMP, flags) <= 0) return; =20 @@ -3664,7 +3655,7 @@ processGuestPanicEvent(virQEMUDriverPtr driver, } =20 endjob: - qemuDomainObjEndAsyncJob(driver, vm); + qemuDomainObjEndAsyncJob(vm); if (removeInactive) qemuDomainRemoveInactiveJob(driver, vm); } @@ -3681,7 +3672,7 @@ processDeviceDeletedEvent(virQEMUDriverPtr driver, VIR_DEBUG("Removing device %s from domain %p %s", devAlias, vm, vm->def->name); =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -3690,7 +3681,7 @@ processDeviceDeletedEvent(virQEMUDriverPtr driver, } =20 if (STRPREFIX(devAlias, "vcpu")) { - qemuDomainRemoveVcpuAlias(driver, vm, devAlias); + qemuDomainRemoveVcpuAlias(vm, devAlias); } else { if (virDomainDefFindDevice(vm->def, devAlias, &dev, true) < 0) goto endjob; @@ -3704,7 +3695,7 @@ processDeviceDeletedEvent(virQEMUDriverPtr driver, devAlias); =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); } =20 =20 @@ -3905,8 +3896,7 @@ syncNicRxFilterMulticast(char *ifname, } =20 static void -processNicRxFilterChangedEvent(virQEMUDriverPtr driver, - virDomainObjPtr vm, +processNicRxFilterChangedEvent(virDomainObjPtr vm, const char *devAlias) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -3920,7 +3910,7 @@ processNicRxFilterChangedEvent(virQEMUDriverPtr drive= r, "from domain %p %s", devAlias, vm, vm->def->name); =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -3957,9 +3947,9 @@ processNicRxFilterChangedEvent(virQEMUDriverPtr drive= r, VIR_DEBUG("process NIC_RX_FILTER_CHANGED event for network " "device %s in domain %s", def->info.alias, vm->def->name); =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorQueryRxFilter(priv->mon, devAlias, &guestFilter); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; if (ret < 0) goto endjob; @@ -4002,7 +3992,7 @@ processNicRxFilterChangedEvent(virQEMUDriverPtr drive= r, } =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virNetDevRxFilterFree(hostFilter); @@ -4048,7 +4038,7 @@ processSerialChangedEvent(virQEMUDriverPtr driver, memset(&dev, 0, sizeof(dev)); } =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -4089,13 +4079,12 @@ processSerialChangedEvent(virQEMUDriverPtr driver, } =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); } =20 =20 static void -processBlockJobEvent(virQEMUDriverPtr driver, - virDomainObjPtr vm, +processBlockJobEvent(virDomainObjPtr vm, const char *diskAlias, int type, int status) @@ -4103,7 +4092,7 @@ processBlockJobEvent(virQEMUDriverPtr driver, virDomainDiskDefPtr disk; g_autoptr(qemuBlockJobData) job =3D NULL; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -4128,16 +4117,15 @@ processBlockJobEvent(virQEMUDriverPtr driver, qemuBlockJobUpdate(vm, job, QEMU_ASYNC_JOB_NONE); =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); } =20 =20 static void -processJobStatusChangeEvent(virQEMUDriverPtr driver, - virDomainObjPtr vm, +processJobStatusChangeEvent(virDomainObjPtr vm, qemuBlockJobDataPtr job) { - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -4148,7 +4136,7 @@ processJobStatusChangeEvent(virQEMUDriverPtr driver, qemuBlockJobUpdate(vm, job, QEMU_ASYNC_JOB_NONE); =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); } =20 =20 @@ -4163,7 +4151,7 @@ processMonitorEOFEvent(virQEMUDriverPtr driver, unsigned int stopFlags =3D 0; virObjectEventPtr event =3D NULL; =20 - if (qemuProcessBeginStopJob(driver, vm, QEMU_JOB_DESTROY, true) < 0) + if (qemuProcessBeginStopJob(vm, QEMU_JOB_DESTROY, true) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -4194,7 +4182,7 @@ processMonitorEOFEvent(virQEMUDriverPtr driver, =20 endjob: qemuDomainRemoveInactive(driver, vm); - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); } =20 =20 @@ -4292,20 +4280,19 @@ static void qemuProcessEventHandler(void *data, voi= d *opaque) processDeviceDeletedEvent(driver, vm, processEvent->data); break; case QEMU_PROCESS_EVENT_NIC_RX_FILTER_CHANGED: - processNicRxFilterChangedEvent(driver, vm, processEvent->data); + processNicRxFilterChangedEvent(vm, processEvent->data); break; case QEMU_PROCESS_EVENT_SERIAL_CHANGED: processSerialChangedEvent(driver, vm, processEvent->data, processEvent->action); break; case QEMU_PROCESS_EVENT_BLOCK_JOB: - processBlockJobEvent(driver, vm, - processEvent->data, + processBlockJobEvent(vm, processEvent->data, processEvent->action, processEvent->status); break; case QEMU_PROCESS_EVENT_JOB_STATUS_CHANGE: - processJobStatusChangeEvent(driver, vm, processEvent->data); + processJobStatusChangeEvent(vm, processEvent->data); break; case QEMU_PROCESS_EVENT_MONITOR_EOF: processMonitorEOFEvent(driver, vm); @@ -4449,10 +4436,10 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, =20 =20 if (useAgent) { - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_MODIFY) = < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; } else { - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; } =20 @@ -4471,7 +4458,7 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, if (useAgent) qemuDomainObjEndAgentJob(vm); else - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -4594,7 +4581,7 @@ qemuDomainPinVcpuFlags(virDomainPtr dom, if (virDomainPinVcpuFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -4633,7 +4620,7 @@ qemuDomainPinVcpuFlags(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -4722,7 +4709,7 @@ qemuDomainPinEmulator(virDomainPtr dom, if (virDomainPinEmulatorEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -4789,7 +4776,7 @@ qemuDomainPinEmulator(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: if (cgroup_emulator) @@ -4884,7 +4871,6 @@ qemuDomainGetVcpus(virDomainPtr dom, static int qemuDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; virDomainDefPtr def; int ret =3D -1; @@ -4908,7 +4894,7 @@ qemuDomainGetVcpusFlags(virDomainPtr dom, unsigned in= t flags) goto cleanup; =20 if (flags & VIR_DOMAIN_VCPU_GUEST) { - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_QUERY) <= 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -4965,16 +4951,15 @@ qemuDomainGetMaxVcpus(virDomainPtr dom) =20 =20 static int -qemuDomainGetIOThreadsMon(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainGetIOThreadsMon(virDomainObjPtr vm, qemuMonitorIOThreadInfoPtr **iothreads) { qemuDomainObjPrivatePtr priv =3D vm->privateData; int niothreads =3D 0; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); niothreads =3D qemuMonitorGetIOThreads(priv->mon, iothreads); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || niothreads < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || niothreads < 0) return -1; =20 return niothreads; @@ -4982,8 +4967,7 @@ qemuDomainGetIOThreadsMon(virQEMUDriverPtr driver, =20 =20 static int -qemuDomainGetIOThreadsLive(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainGetIOThreadsLive(virDomainObjPtr vm, virDomainIOThreadInfoPtr **info) { qemuDomainObjPrivatePtr priv; @@ -4993,7 +4977,7 @@ qemuDomainGetIOThreadsLive(virQEMUDriverPtr driver, size_t i; int ret =3D -1; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -5009,7 +4993,7 @@ qemuDomainGetIOThreadsLive(virQEMUDriverPtr driver, goto endjob; } =20 - if ((niothreads =3D qemuDomainGetIOThreadsMon(driver, vm, &iothreads))= < 0) + if ((niothreads =3D qemuDomainGetIOThreadsMon(vm, &iothreads)) < 0) goto endjob; =20 /* Nothing to do */ @@ -5043,7 +5027,7 @@ qemuDomainGetIOThreadsLive(virQEMUDriverPtr driver, ret =3D niothreads; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: if (info_ret) { @@ -5120,7 +5104,6 @@ qemuDomainGetIOThreadInfo(virDomainPtr dom, virDomainIOThreadInfoPtr **info, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; virDomainDefPtr targetDef =3D NULL; int ret =3D -1; @@ -5138,7 +5121,7 @@ qemuDomainGetIOThreadInfo(virDomainPtr dom, goto cleanup; =20 if (!targetDef) - ret =3D qemuDomainGetIOThreadsLive(driver, vm, info); + ret =3D qemuDomainGetIOThreadsLive(vm, info); else ret =3D qemuDomainGetIOThreadsConfig(targetDef, info); =20 @@ -5182,7 +5165,7 @@ qemuDomainPinIOThread(virDomainPtr dom, if (virDomainPinIOThreadEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -5271,7 +5254,7 @@ qemuDomainPinIOThread(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: if (cgroup_iothread) @@ -5283,8 +5266,7 @@ qemuDomainPinIOThread(virDomainPtr dom, } =20 static int -qemuDomainHotplugAddIOThread(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainHotplugAddIOThread(virDomainObjPtr vm, unsigned int iothread_id) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -5304,7 +5286,7 @@ qemuDomainHotplugAddIOThread(virQEMUDriverPtr driver, if (qemuMonitorCreateObjectProps(&props, "iothread", alias, NULL) < 0) goto cleanup; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (qemuMonitorAddObject(priv->mon, &props, NULL) < 0) goto exit_monitor; @@ -5319,7 +5301,7 @@ qemuDomainHotplugAddIOThread(virQEMUDriverPtr driver, &new_iothreads)) < 0) goto exit_monitor; =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; =20 if (new_niothreads !=3D exp_niothreads) { @@ -5368,14 +5350,13 @@ qemuDomainHotplugAddIOThread(virQEMUDriverPtr drive= r, return ret; =20 exit_monitor: - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); goto cleanup; } =20 =20 static int -qemuDomainHotplugModIOThread(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainHotplugModIOThread(virDomainObjPtr vm, qemuMonitorIOThreadInfo iothread) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -5387,11 +5368,11 @@ qemuDomainHotplugModIOThread(virQEMUDriverPtr drive= r, return -1; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 rc =3D qemuMonitorSetIOThread(priv->mon, &iothread); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 if (rc < 0) @@ -5402,8 +5383,7 @@ qemuDomainHotplugModIOThread(virQEMUDriverPtr driver, =20 =20 static int -qemuDomainHotplugDelIOThread(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainHotplugDelIOThread(virDomainObjPtr vm, unsigned int iothread_id) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -5419,7 +5399,7 @@ qemuDomainHotplugDelIOThread(virQEMUDriverPtr driver, if (!(alias =3D g_strdup_printf("iothread%u", iothread_id))) return -1; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 rc =3D qemuMonitorDelObject(priv->mon, alias, true); exp_niothreads--; @@ -5430,7 +5410,7 @@ qemuDomainHotplugDelIOThread(virQEMUDriverPtr driver, &new_iothreads)) < 0) goto exit_monitor; =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; =20 if (new_niothreads !=3D exp_niothreads) { @@ -5460,7 +5440,7 @@ qemuDomainHotplugDelIOThread(virQEMUDriverPtr driver, return ret; =20 exit_monitor: - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); goto cleanup; } =20 @@ -5635,7 +5615,7 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, =20 priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -5653,7 +5633,7 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, if (qemuDomainAddIOThreadCheck(def, iothread.iothread_id) < 0) goto endjob; =20 - if (qemuDomainHotplugAddIOThread(driver, vm, iothread.iothread= _id) < 0) + if (qemuDomainHotplugAddIOThread(vm, iothread.iothread_id) < 0) goto endjob; =20 break; @@ -5662,7 +5642,7 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, if (qemuDomainDelIOThreadCheck(def, iothread.iothread_id) < 0) goto endjob; =20 - if (qemuDomainHotplugDelIOThread(driver, vm, iothread.iothread= _id) < 0) + if (qemuDomainHotplugDelIOThread(vm, iothread.iothread_id) < 0) goto endjob; =20 break; @@ -5675,7 +5655,7 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, goto endjob; } =20 - if (qemuDomainHotplugModIOThread(driver, vm, iothread) < 0) + if (qemuDomainHotplugModIOThread(vm, iothread) < 0) goto endjob; =20 break; @@ -5722,7 +5702,7 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 return ret; } @@ -6066,14 +6046,14 @@ qemuDomainRestoreFlags(virConnectPtr conn, priv->hookRun =3D true; } =20 - if (qemuProcessBeginJob(driver, vm, VIR_DOMAIN_JOB_OPERATION_RESTORE, + if (qemuProcessBeginJob(vm, VIR_DOMAIN_JOB_OPERATION_RESTORE, flags) < 0) goto cleanup; =20 ret =3D qemuSaveImageStartVM(conn, driver, vm, &fd, data, path, false, QEMU_ASYNC_JOB_START); =20 - qemuProcessEndJob(driver, vm); + qemuProcessEndJob(vm); =20 cleanup: virDomainDefFree(def); @@ -6595,7 +6575,7 @@ qemuDomainCreateWithFlags(virDomainPtr dom, unsigned = int flags) if (virDomainCreateWithFlagsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuProcessBeginJob(driver, vm, VIR_DOMAIN_JOB_OPERATION_START, + if (qemuProcessBeginJob(vm, VIR_DOMAIN_JOB_OPERATION_START, flags) < 0) goto cleanup; =20 @@ -6613,7 +6593,7 @@ qemuDomainCreateWithFlags(virDomainPtr dom, unsigned = int flags) ret =3D 0; =20 endjob: - qemuProcessEndJob(driver, vm); + qemuProcessEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -6743,7 +6723,7 @@ qemuDomainUndefineFlags(virDomainPtr dom, if (virDomainUndefineFlagsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (!vm->persistent) { @@ -6839,7 +6819,7 @@ qemuDomainUndefineFlags(virDomainPtr dom, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -6872,7 +6852,7 @@ qemuDomainAttachDeviceLive(virDomainObjPtr vm, break; =20 case VIR_DOMAIN_DEVICE_CONTROLLER: - ret =3D qemuDomainAttachControllerDevice(driver, vm, dev->data.con= troller); + ret =3D qemuDomainAttachControllerDevice(vm, dev->data.controller); if (!ret) { alias =3D dev->data.controller->info.alias; dev->data.controller =3D NULL; @@ -6959,7 +6939,7 @@ qemuDomainAttachDeviceLive(virDomainObjPtr vm, break; =20 case VIR_DOMAIN_DEVICE_INPUT: - ret =3D qemuDomainAttachInputDevice(driver, vm, dev->data.input); + ret =3D qemuDomainAttachInputDevice(vm, dev->data.input); if (ret =3D=3D 0) { alias =3D dev->data.input->info.alias; dev->data.input =3D NULL; @@ -6967,7 +6947,7 @@ qemuDomainAttachDeviceLive(virDomainObjPtr vm, break; =20 case VIR_DOMAIN_DEVICE_VSOCK: - ret =3D qemuDomainAttachVsockDevice(driver, vm, dev->data.vsock); + ret =3D qemuDomainAttachVsockDevice(vm, dev->data.vsock); if (ret =3D=3D 0) { alias =3D dev->data.vsock->info.alias; dev->data.vsock =3D NULL; @@ -7004,7 +6984,7 @@ qemuDomainAttachDeviceLive(virDomainObjPtr vm, } =20 if (ret =3D=3D 0) - ret =3D qemuDomainUpdateDeviceList(driver, vm, QEMU_ASYNC_JOB_NONE= ); + ret =3D qemuDomainUpdateDeviceList(vm, QEMU_ASYNC_JOB_NONE); =20 return ret; } @@ -7096,7 +7076,7 @@ qemuDomainUpdateDeviceLive(virDomainObjPtr vm, return -1; } =20 - ret =3D qemuDomainChangeNet(driver, vm, dev); + ret =3D qemuDomainChangeNet(vm, dev); break; =20 case VIR_DOMAIN_DEVICE_FS: @@ -7816,7 +7796,7 @@ qemuDomainAttachDeviceFlags(virDomainPtr dom, if (virDomainAttachDeviceFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjUpdateModificationImpact(vm, &flags) < 0) @@ -7828,7 +7808,7 @@ qemuDomainAttachDeviceFlags(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -7873,7 +7853,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr d= om, if (virDomainUpdateDeviceFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjUpdateModificationImpact(vm, &flags) < 0) @@ -7942,7 +7922,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr d= om, } =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainDefFree(vmdef); @@ -8012,7 +7992,7 @@ qemuDomainDetachDeviceLiveAndConfig(virQEMUDriverPtr = driver, if ((rc =3D qemuDomainDetachDeviceLive(vm, dev_copy, driver, false= )) < 0) goto cleanup; =20 - if (rc =3D=3D 0 && qemuDomainUpdateDeviceList(driver, vm, QEMU_ASY= NC_JOB_NONE) < 0) + if (rc =3D=3D 0 && qemuDomainUpdateDeviceList(vm, QEMU_ASYNC_JOB_N= ONE) < 0) goto cleanup; =20 /* @@ -8095,7 +8075,7 @@ qemuDomainDetachDeviceAliasLiveAndConfig(virQEMUDrive= rPtr driver, if ((rc =3D qemuDomainDetachDeviceLive(vm, &dev, driver, true)) < = 0) goto cleanup; =20 - if (rc =3D=3D 0 && qemuDomainUpdateDeviceList(driver, vm, QEMU_ASY= NC_JOB_NONE) < 0) + if (rc =3D=3D 0 && qemuDomainUpdateDeviceList(vm, QEMU_ASYNC_JOB_N= ONE) < 0) goto cleanup; } =20 @@ -8128,7 +8108,7 @@ qemuDomainDetachDeviceFlags(virDomainPtr dom, if (virDomainDetachDeviceFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjUpdateModificationImpact(vm, &flags) < 0) @@ -8140,7 +8120,7 @@ qemuDomainDetachDeviceFlags(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -8163,7 +8143,7 @@ qemuDomainDetachDeviceAlias(virDomainPtr dom, if (virDomainDetachDeviceAliasEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjUpdateModificationImpact(vm, &flags) < 0) @@ -8175,7 +8155,7 @@ qemuDomainDetachDeviceAlias(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -8236,7 +8216,7 @@ static int qemuDomainSetAutostart(virDomainPtr dom, autostart =3D (autostart !=3D 0); =20 if (vm->autostart !=3D autostart) { - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (!(configFile =3D virDomainConfigFile(cfg->configDir, vm->def->= name))) @@ -8274,7 +8254,7 @@ static int qemuDomainSetAutostart(virDomainPtr dom, vm->autostart =3D autostart; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); } ret =3D 0; =20 @@ -8382,7 +8362,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, goto cleanup; } =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -8416,7 +8396,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, } =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -8558,7 +8538,7 @@ qemuDomainSetMemoryParameters(virDomainPtr dom, goto cleanup; } =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 /* QEMU and LXC implementation are identical */ @@ -8589,7 +8569,7 @@ qemuDomainSetMemoryParameters(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -8812,7 +8792,7 @@ qemuDomainSetNumaParameters(virDomainPtr dom, } } =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -8867,7 +8847,7 @@ qemuDomainSetNumaParameters(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virBitmapFree(nodeset); @@ -9021,7 +9001,7 @@ qemuDomainSetPerfEvents(virDomainPtr dom, if (virDomainSetPerfEventsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -9063,7 +9043,7 @@ qemuDomainSetPerfEvents(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -9076,7 +9056,6 @@ qemuDomainGetPerfEvents(virDomainPtr dom, int *nparams, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; qemuDomainObjPrivatePtr priv; virDomainDefPtr def; @@ -9096,7 +9075,7 @@ qemuDomainGetPerfEvents(virDomainPtr dom, if (virDomainGetPerfEventsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (!(def =3D virDomainObjGetOneDef(vm, flags))) @@ -9125,7 +9104,7 @@ qemuDomainGetPerfEvents(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -9299,7 +9278,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr do= m, goto cleanup; } =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -9533,7 +9512,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr do= m, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainDefFree(persistentDefCopy); @@ -9799,7 +9778,6 @@ qemuDomainBlockResize(virDomainPtr dom, unsigned long long size, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuDomainObjPrivatePtr priv; int ret =3D -1; @@ -9828,7 +9806,7 @@ qemuDomainBlockResize(virDomainPtr dom, if (virDomainBlockResizeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -9862,18 +9840,18 @@ qemuDomainBlockResize(virDomainPtr dom, goto endjob; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); if (qemuMonitorBlockResize(priv->mon, device, nodename, size) < 0) { - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); goto endjob; } - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto endjob; =20 ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -9898,7 +9876,6 @@ qemuDomainBlockStatsGatherTotals(qemuBlockStatsPtr da= ta, =20 /** * qemuDomainBlocksStatsGather: - * @driver: driver object * @vm: domain object * @path: to gather the statistics for * @capacity: refresh capacity of the backing image @@ -9909,8 +9886,7 @@ qemuDomainBlockStatsGatherTotals(qemuBlockStatsPtr da= ta, * Returns -1 on error; number of filled block statistics on success. */ static int -qemuDomainBlocksStatsGather(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainBlocksStatsGather(virDomainObjPtr vm, const char *path, bool capacity, qemuBlockStatsPtr *retstats) @@ -9945,7 +9921,7 @@ qemuDomainBlocksStatsGather(virQEMUDriverPtr driver, } } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); nstats =3D qemuMonitorGetAllBlockStatsInfo(priv->mon, &blockstats, fal= se); =20 if (capacity && nstats >=3D 0) { @@ -9955,7 +9931,7 @@ qemuDomainBlocksStatsGather(virQEMUDriverPtr driver, rc =3D qemuMonitorBlockStatsUpdateCapacity(priv->mon, blocksta= ts, false); } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || nstats < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || nstats < 0 || rc < 0) goto cleanup; =20 if (VIR_ALLOC(*retstats) < 0) @@ -10017,7 +9993,6 @@ qemuDomainBlockStats(virDomainPtr dom, const char *path, virDomainBlockStatsPtr stats) { - virQEMUDriverPtr driver =3D dom->conn->privateData; qemuBlockStatsPtr blockstats =3D NULL; int ret =3D -1; virDomainObjPtr vm; @@ -10028,13 +10003,13 @@ qemuDomainBlockStats(virDomainPtr dom, if (virDomainBlockStatsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - if (qemuDomainBlocksStatsGather(driver, vm, path, false, &blockstats) = < 0) + if (qemuDomainBlocksStatsGather(vm, path, false, &blockstats) < 0) goto endjob; =20 if (VIR_ASSIGN_IS_OVERFLOW(stats->rd_req, blockstats->rd_req) || @@ -10051,7 +10026,7 @@ qemuDomainBlockStats(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -10067,7 +10042,6 @@ qemuDomainBlockStatsFlags(virDomainPtr dom, int *nparams, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuBlockStatsPtr blockstats =3D NULL; int nstats; @@ -10086,13 +10060,13 @@ qemuDomainBlockStatsFlags(virDomainPtr dom, if (virDomainBlockStatsFlagsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - if ((nstats =3D qemuDomainBlocksStatsGather(driver, vm, path, false, + if ((nstats =3D qemuDomainBlocksStatsGather(vm, path, false, &blockstats)) < 0) goto endjob; =20 @@ -10139,7 +10113,7 @@ qemuDomainBlockStatsFlags(virDomainPtr dom, *nparams =3D nstats; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: VIR_FREE(blockstats); @@ -10231,7 +10205,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom, if (virDomainSetInterfaceParametersEnsureACL(dom->conn, vm->def, flags= ) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -10405,7 +10379,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virNetDevBandwidthFree(bandwidth); @@ -10525,8 +10499,7 @@ qemuDomainGetInterfaceParameters(virDomainPtr dom, =20 /* This functions assumes that job QEMU_JOB_QUERY is started by a caller */ static int -qemuDomainMemoryStatsInternal(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainMemoryStatsInternal(virDomainObjPtr vm, virDomainMemoryStatPtr stats, unsigned int nr_stats) =20 @@ -10538,10 +10511,10 @@ qemuDomainMemoryStatsInternal(virQEMUDriverPtr dr= iver, return -1; =20 if (virDomainDefHasMemballoon(vm->def)) { - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorGetMemoryStats(qemuDomainGetMonitor(vm), vm->def->memballoon, stats, nr_sta= ts); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 if (ret < 0 || ret >=3D nr_stats) @@ -10568,7 +10541,6 @@ qemuDomainMemoryStats(virDomainPtr dom, unsigned int nr_stats, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; int ret =3D -1; =20 @@ -10580,12 +10552,12 @@ qemuDomainMemoryStats(virDomainPtr dom, if (virDomainMemoryStatsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 - ret =3D qemuDomainMemoryStatsInternal(driver, vm, stats, nr_stats); + ret =3D qemuDomainMemoryStatsInternal(vm, stats, nr_stats); =20 - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -10685,7 +10657,7 @@ qemuDomainMemoryPeek(virDomainPtr dom, goto cleanup; } =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -10704,19 +10676,19 @@ qemuDomainMemoryPeek(virDomainPtr dom, qemuSecurityDomainSetPathLabel(driver, vm, tmp, false); =20 priv =3D vm->privateData; - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); if (flags =3D=3D VIR_MEMORY_VIRTUAL) { if (qemuMonitorSaveVirtualMemory(priv->mon, offset, size, tmp) < 0= ) { - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); goto endjob; } } else { if (qemuMonitorSavePhysicalMemory(priv->mon, offset, size, tmp) < = 0) { - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); goto endjob; } } - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto endjob; =20 /* Read the memory file into buffer. */ @@ -10730,7 +10702,7 @@ qemuDomainMemoryPeek(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: VIR_FORCE_CLOSE(fd); @@ -10965,7 +10937,7 @@ qemuDomainGetBlockInfo(virDomainPtr dom, if (virDomainGetBlockInfoEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (!(disk =3D virDomainDiskByName(vm->def, path, false))) { @@ -10994,7 +10966,7 @@ qemuDomainGetBlockInfo(virDomainPtr dom, goto endjob; } =20 - if (qemuDomainBlocksStatsGather(driver, vm, path, true, &entry) < 0) + if (qemuDomainBlocksStatsGather(vm, path, true, &entry) < 0) goto endjob; =20 if (!entry->wr_highest_offset_valid) { @@ -11037,7 +11009,7 @@ qemuDomainGetBlockInfo(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); cleanup: VIR_FREE(entry); virDomainObjEndAPI(&vm); @@ -12518,8 +12490,7 @@ qemuConnectBaselineHypervisorCPU(virConnectPtr conn, =20 =20 static int -qemuDomainGetJobInfoMigrationStats(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainGetJobInfoMigrationStats(virDomainObjPtr vm, qemuDomainJobInfoPtr jobInfo) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -12531,13 +12502,13 @@ qemuDomainGetJobInfoMigrationStats(virQEMUDriverP= tr driver, jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_POSTCOPY) { if (events && jobInfo->status !=3D QEMU_DOMAIN_JOB_STATUS_ACTIVE && - qemuMigrationAnyFetchStats(driver, vm, QEMU_ASYNC_JOB_NONE, + qemuMigrationAnyFetchStats(vm, QEMU_ASYNC_JOB_NONE, jobInfo, NULL) < 0) return -1; =20 if (jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_ACTIVE && jobInfo->statsType =3D=3D QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION= && - qemuMigrationSrcFetchMirrorStats(driver, vm, QEMU_ASYNC_JOB_NO= NE, + qemuMigrationSrcFetchMirrorStats(vm, QEMU_ASYNC_JOB_NONE, jobInfo) < 0) return -1; =20 @@ -12550,20 +12521,19 @@ qemuDomainGetJobInfoMigrationStats(virQEMUDriverP= tr driver, =20 =20 static int -qemuDomainGetJobInfoDumpStats(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainGetJobInfoDumpStats(virDomainObjPtr vm, qemuDomainJobInfoPtr jobInfo) { qemuDomainObjPrivatePtr priv =3D vm->privateData; qemuMonitorDumpStats stats =3D { 0 }; int rc; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, QEMU_ASYNC_JOB_NONE) < = 0) + if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_NONE) < 0) return -1; =20 rc =3D qemuMonitorQueryDump(priv->mon, &stats); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) return -1; =20 jobInfo->stats.dump =3D stats; @@ -12601,8 +12571,7 @@ qemuDomainGetJobInfoDumpStats(virQEMUDriverPtr driv= er, =20 =20 static int -qemuDomainGetJobStatsInternal(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainGetJobStatsInternal(virDomainObjPtr vm, bool completed, qemuDomainJobInfoPtr *jobInfo) { @@ -12626,7 +12595,7 @@ qemuDomainGetJobStatsInternal(virQEMUDriverPtr driv= er, return -1; } =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -12641,17 +12610,17 @@ qemuDomainGetJobStatsInternal(virQEMUDriverPtr dr= iver, switch ((*jobInfo)->statsType) { case QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION: case QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP: - if (qemuDomainGetJobInfoMigrationStats(driver, vm, *jobInfo) < 0) + if (qemuDomainGetJobInfoMigrationStats(vm, *jobInfo) < 0) goto cleanup; break; =20 case QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUMP: - if (qemuDomainGetJobInfoDumpStats(driver, vm, *jobInfo) < 0) + if (qemuDomainGetJobInfoDumpStats(vm, *jobInfo) < 0) goto cleanup; break; =20 case QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP: - if (qemuBackupGetJobInfoStats(driver, vm, *jobInfo) < 0) + if (qemuBackupGetJobInfoStats(vm, *jobInfo) < 0) goto cleanup; break; =20 @@ -12662,7 +12631,7 @@ qemuDomainGetJobStatsInternal(virQEMUDriverPtr driv= er, ret =3D 0; =20 cleanup: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); return ret; } =20 @@ -12671,7 +12640,6 @@ static int qemuDomainGetJobInfo(virDomainPtr dom, virDomainJobInfoPtr info) { - virQEMUDriverPtr driver =3D dom->conn->privateData; g_autoptr(qemuDomainJobInfo) jobInfo =3D NULL; virDomainObjPtr vm; int ret =3D -1; @@ -12684,7 +12652,7 @@ qemuDomainGetJobInfo(virDomainPtr dom, if (virDomainGetJobInfoEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainGetJobStatsInternal(driver, vm, false, &jobInfo) < 0) + if (qemuDomainGetJobStatsInternal(vm, false, &jobInfo) < 0) goto cleanup; =20 if (!jobInfo || @@ -12708,7 +12676,6 @@ qemuDomainGetJobStats(virDomainPtr dom, int *nparams, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuDomainObjPrivatePtr priv; qemuDomainJobPrivatePtr jobPriv; @@ -12727,7 +12694,7 @@ qemuDomainGetJobStats(virDomainPtr dom, =20 priv =3D vm->privateData; jobPriv =3D priv->job.privateData; - if (qemuDomainGetJobStatsInternal(driver, vm, completed, &jobInfo) < 0) + if (qemuDomainGetJobStatsInternal(vm, completed, &jobInfo) < 0) goto cleanup; =20 if (!jobInfo || @@ -12759,9 +12726,9 @@ qemuDomainAbortJobMigration(virDomainObjPtr vm) VIR_DEBUG("Cancelling migration job at client request"); =20 qemuDomainObjAbortAsyncJob(vm); - qemuDomainObjEnterMonitor(priv->driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorMigrateCancel(priv->mon); - if (qemuDomainObjExitMonitor(priv->driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 return ret; @@ -12770,7 +12737,6 @@ qemuDomainAbortJobMigration(virDomainObjPtr vm) =20 static int qemuDomainAbortJob(virDomainPtr dom) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; int ret =3D -1; qemuDomainObjPrivatePtr priv; @@ -12783,7 +12749,7 @@ static int qemuDomainAbortJob(virDomainPtr dom) if (virDomainAbortJobEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_ABORT) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_ABORT) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -12852,7 +12818,7 @@ static int qemuDomainAbortJob(virDomainPtr dom) } =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -12865,7 +12831,6 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom, unsigned long long downtime, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuDomainObjPrivatePtr priv; g_autoptr(qemuMigrationParams) migParams =3D NULL; @@ -12880,7 +12845,7 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom, if (virDomainMigrateSetMaxDowntimeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MIGRATION_OP) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MIGRATION_OP) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -12899,20 +12864,20 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom, downtime) < 0) goto endjob; =20 - if (qemuMigrationParamsApply(driver, vm, QEMU_ASYNC_JOB_NONE, + if (qemuMigrationParamsApply(vm, QEMU_ASYNC_JOB_NONE, migParams) < 0) goto endjob; } else { - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorSetMigrationDowntime(priv->mon, downtime); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto endjob; } =20 ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -12925,7 +12890,6 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom, unsigned long long *downtime, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuMigrationParamsPtr migParams =3D NULL; int ret =3D -1; @@ -12939,13 +12903,13 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom, if (virDomainMigrateGetMaxDowntimeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - if (qemuMigrationParamsFetch(driver, vm, QEMU_ASYNC_JOB_NONE, + if (qemuMigrationParamsFetch(vm, QEMU_ASYNC_JOB_NONE, &migParams) < 0) goto endjob; =20 @@ -12965,7 +12929,7 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: qemuMigrationParamsFree(migParams); @@ -12979,7 +12943,6 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr d= om, unsigned long long *cacheSize, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuDomainObjPrivatePtr priv; g_autoptr(qemuMigrationParams) migParams =3D NULL; @@ -12994,7 +12957,7 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr d= om, if (virDomainMigrateGetCompressionCacheEnsureACL(dom->conn, vm->def) <= 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -13010,7 +12973,7 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr d= om, } =20 if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_PARAM_XBZRLE_CA= CHE_SIZE)) { - if (qemuMigrationParamsFetch(driver, vm, QEMU_ASYNC_JOB_NONE, + if (qemuMigrationParamsFetch(vm, QEMU_ASYNC_JOB_NONE, &migParams) < 0) goto endjob; =20 @@ -13019,16 +12982,16 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr= dom, cacheSize) < 0) goto endjob; } else { - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorGetMigrationCacheSize(priv->mon, cacheSize); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto endjob; } =20 ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -13040,7 +13003,6 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr d= om, unsigned long long cacheSize, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuDomainObjPrivatePtr priv; g_autoptr(qemuMigrationParams) migParams =3D NULL; @@ -13055,7 +13017,7 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr d= om, if (virDomainMigrateSetCompressionCacheEnsureACL(dom->conn, vm->def) <= 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MIGRATION_OP) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MIGRATION_OP) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -13080,20 +13042,20 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr= dom, cacheSize) < 0) goto endjob; =20 - if (qemuMigrationParamsApply(driver, vm, QEMU_ASYNC_JOB_NONE, + if (qemuMigrationParamsApply(vm, QEMU_ASYNC_JOB_NONE, migParams) < 0) goto endjob; } else { - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorSetMigrationCacheSize(priv->mon, cacheSize); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto endjob; } =20 ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -13105,7 +13067,6 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, unsigned long bandwidth, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuDomainObjPrivatePtr priv; bool postcopy =3D !!(flags & VIR_DOMAIN_MIGRATE_MAX_SPEED_POSTCOPY); @@ -13141,7 +13102,7 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, goto cleanup; } =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MIGRATION_OP) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MIGRATION_OP) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -13166,15 +13127,15 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, bandwidth * 1024 * 1024) < 0) goto endjob; =20 - if (qemuMigrationParamsApply(driver, vm, QEMU_ASYNC_JOB_NONE, + if (qemuMigrationParamsApply(vm, QEMU_ASYNC_JOB_NONE, migParams) < 0) goto endjob; } else { int rc; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorSetMigrationSpeed(priv->mon, bandwidth); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto endjob; } =20 @@ -13184,7 +13145,7 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -13193,8 +13154,7 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, =20 =20 static int -qemuDomainMigrationGetPostcopyBandwidth(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainMigrationGetPostcopyBandwidth(virDomainObjPtr vm, unsigned long *bandwidth) { g_autoptr(qemuMigrationParams) migParams =3D NULL; @@ -13202,13 +13162,13 @@ qemuDomainMigrationGetPostcopyBandwidth(virQEMUDr= iverPtr driver, int rc; int ret =3D -1; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) goto cleanup; =20 - if (qemuMigrationParamsFetch(driver, vm, QEMU_ASYNC_JOB_NONE, + if (qemuMigrationParamsFetch(vm, QEMU_ASYNC_JOB_NONE, &migParams) < 0) goto cleanup; =20 @@ -13239,7 +13199,7 @@ qemuDomainMigrationGetPostcopyBandwidth(virQEMUDriv= erPtr driver, ret =3D 0; =20 cleanup: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); return ret; } =20 @@ -13249,7 +13209,6 @@ qemuDomainMigrateGetMaxSpeed(virDomainPtr dom, unsigned long *bandwidth, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuDomainObjPrivatePtr priv; bool postcopy =3D !!(flags & VIR_DOMAIN_MIGRATE_MAX_SPEED_POSTCOPY); @@ -13266,7 +13225,7 @@ qemuDomainMigrateGetMaxSpeed(virDomainPtr dom, goto cleanup; =20 if (postcopy) { - if (qemuDomainMigrationGetPostcopyBandwidth(driver, vm, bandwidth)= < 0) + if (qemuDomainMigrationGetPostcopyBandwidth(vm, bandwidth) < 0) goto cleanup; } else { *bandwidth =3D priv->migMaxBandwidth; @@ -13284,7 +13243,6 @@ static int qemuDomainMigrateStartPostCopy(virDomainPtr dom, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuDomainObjPrivatePtr priv; int ret =3D -1; @@ -13297,7 +13255,7 @@ qemuDomainMigrateStartPostCopy(virDomainPtr dom, if (virDomainMigrateStartPostCopyEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MIGRATION_OP) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MIGRATION_OP) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -13320,13 +13278,13 @@ qemuDomainMigrateStartPostCopy(virDomainPtr dom, } =20 VIR_DEBUG("Starting post-copy"); - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorMigrateStartPostCopy(priv->mon); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14023,7 +13981,7 @@ static int qemuDomainQemuMonitorCommand(virDomainPt= r domain, const char *cmd, if (virDomainQemuMonitorCommandEnsureACL(domain->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14035,13 +13993,13 @@ static int qemuDomainQemuMonitorCommand(virDomain= Ptr domain, const char *cmd, =20 hmp =3D !!(flags & VIR_DOMAIN_QEMU_MONITOR_COMMAND_HMP); =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorArbitraryCommand(priv->mon, cmd, result, hmp); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14203,8 +14161,7 @@ qemuDomainOpenChannel(virDomainPtr dom, * abort with pivot; this updates the VM definition as appropriate, on * either success or failure. */ static int -qemuDomainBlockPivot(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainBlockPivot(virDomainObjPtr vm, qemuBlockJobDataPtr job, virDomainDiskDefPtr disk) { @@ -14294,7 +14251,7 @@ qemuDomainBlockPivot(virQEMUDriverPtr driver, break; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); if (blockdev) { int rc =3D 0; =20 @@ -14314,7 +14271,7 @@ qemuDomainBlockPivot(virQEMUDriverPtr driver, } else { ret =3D qemuMonitorDrivePivot(priv->mon, job->name); } - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 /* The pivot failed. The block job in QEMU remains in the synchronised= state */ @@ -14339,7 +14296,6 @@ qemuDomainBlockPullCommon(virDomainObjPtr vm, unsigned int flags) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - virQEMUDriverPtr driver =3D priv->driver; const char *device =3D NULL; const char *jobname =3D NULL; virDomainDiskDefPtr disk; @@ -14361,7 +14317,7 @@ qemuDomainBlockPullCommon(virDomainObjPtr vm, goto cleanup; } =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14439,7 +14395,7 @@ qemuDomainBlockPullCommon(virDomainObjPtr vm, device =3D job->name; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); if (!blockdev && baseSource) basePath =3D qemuMonitorDiskNameLookup(priv->mon, device, disk->sr= c, baseSource); @@ -14448,7 +14404,7 @@ qemuDomainBlockPullCommon(virDomainObjPtr vm, (!baseSource || basePath)) ret =3D qemuMonitorBlockStream(priv->mon, device, jobname, persist= job, basePath, nodebase, backingPath, speed); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 if (ret < 0) @@ -14457,7 +14413,7 @@ qemuDomainBlockPullCommon(virDomainObjPtr vm, qemuBlockJobStarted(job, vm); =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: qemuBlockJobStartupFinalize(vm, job); @@ -14491,7 +14447,7 @@ qemuDomainBlockJobAbort(virDomainPtr dom, if (virDomainBlockJobAbortEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14521,15 +14477,15 @@ qemuDomainBlockJobAbort(virDomainPtr dom, qemuBlockJobSyncBegin(job); =20 if (pivot) { - if ((ret =3D qemuDomainBlockPivot(driver, vm, job, disk)) < 0) + if ((ret =3D qemuDomainBlockPivot(vm, job, disk)) < 0) goto endjob; } else { - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); if (blockdev) ret =3D qemuMonitorJobCancel(priv->mon, job->name, false); else ret =3D qemuMonitorBlockJobCancel(priv->mon, job->name); - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { ret =3D -1; goto endjob; } @@ -14574,7 +14530,7 @@ qemuDomainBlockJobAbort(virDomainPtr dom, endjob: if (job && !async) qemuBlockJobSyncEnd(vm, job, QEMU_ASYNC_JOB_NONE); - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14636,7 +14592,6 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom, virDomainBlockJobInfoPtr info, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; virDomainDiskDefPtr disk; int ret =3D -1; @@ -14652,7 +14607,7 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom, goto cleanup; =20 =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14666,9 +14621,9 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom, goto endjob; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorGetBlockJobInfo(qemuDomainGetMonitor(vm), job->name= , &rawInfo); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; if (ret <=3D 0) goto endjob; @@ -14680,7 +14635,7 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom, } =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14694,7 +14649,6 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom, unsigned long bandwidth, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainDiskDefPtr disk; int ret =3D -1; virDomainObjPtr vm; @@ -14720,7 +14674,7 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom, if (virDomainBlockJobSetSpeedEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14735,15 +14689,15 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom, goto endjob; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorBlockJobSetSpeed(qemuDomainGetMonitor(vm), job->name, speed); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14922,7 +14876,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, return -1; } =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -15130,9 +15084,9 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, } =20 if (data) { - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuBlockStorageSourceChainAttach(priv->mon, data); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto endjob; =20 if (rc < 0) @@ -15151,7 +15105,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, disk->mirrorState =3D VIR_DOMAIN_DISK_MIRROR_STATE_NONE; =20 /* Actually start the mirroring */ - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (blockdev) { ret =3D qemuMonitorBlockdevMirror(priv->mon, job->name, true, @@ -15167,7 +15121,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, } =20 virDomainAuditDisk(vm, NULL, mirror, "mirror", ret >=3D 0); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; if (ret < 0) { qemuDomainStorageSourceChainAccessRevoke(driver, vm, mirror); @@ -15185,12 +15139,12 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, if (ret < 0 && virDomainObjIsActive(vm)) { if (data || crdata) { - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); if (data) qemuBlockStorageSourceChainDetach(priv->mon, data); if (crdata) qemuBlockStorageSourceAttachRollback(priv->mon, crdata->sr= cdata[0]); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); } if (need_revoke) qemuDomainStorageSourceChainAccessRevoke(driver, vm, mirror); @@ -15198,7 +15152,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, if (need_unlink && virStorageFileUnlink(mirror) < 0) VIR_WARN("%s", _("unable to remove just-created copy target")); virStorageFileDeinit(mirror); - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); qemuBlockJobStartupFinalize(vm, job); =20 return ret; @@ -15422,7 +15376,7 @@ qemuDomainBlockCommit(virDomainPtr dom, if (virDomainBlockCommitEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -15599,7 +15553,7 @@ qemuDomainBlockCommit(virDomainPtr dom, device =3D job->name; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (!blockdev) { basePath =3D qemuMonitorDiskNameLookup(priv->mon, device, disk->sr= c, @@ -15613,7 +15567,7 @@ qemuDomainBlockCommit(virDomainPtr dom, topPath, nodetop, basePath, nodebase, backingPath, speed); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || ret < 0) { + if (qemuDomainObjExitMonitor(vm) < 0 || ret < 0) { ret =3D -1; goto endjob; } @@ -15638,7 +15592,7 @@ qemuDomainBlockCommit(virDomainPtr dom, virErrorRestore(&orig_err); } qemuBlockJobStartupFinalize(vm, job); - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -15665,7 +15619,7 @@ qemuDomainOpenGraphics(virDomainPtr dom, if (virDomainOpenGraphicsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -15703,14 +15657,14 @@ qemuDomainOpenGraphics(virDomainPtr dom, if (qemuSecuritySetImageFDLabel(driver->securityManager, vm->def, fd) = < 0) goto endjob; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorOpenGraphics(priv->mon, protocol, fd, "graphicsfd", (flags & VIR_DOMAIN_OPEN_GRAPHICS_SKIPAU= TH) !=3D 0); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -15778,14 +15732,14 @@ qemuDomainOpenGraphicsFD(virDomainPtr dom, if (qemuSecurityClearSocketLabel(driver->securityManager, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorOpenGraphics(priv->mon, protocol, pair[1], "graphic= sfd", (flags & VIR_DOMAIN_OPEN_GRAPHICS_SKIPAU= TH)); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); if (ret < 0) goto cleanup; =20 @@ -16024,7 +15978,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, =20 cfg =3D virQEMUDriverGetConfig(driver); =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 priv =3D vm->privateData; @@ -16235,12 +16189,12 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, /* NB: Let's let QEMU decide how to handle issues with _length * via the JSON error code from the block_set_io_throttle call */ =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorSetBlockIoThrottle(priv->mon, drivealias, qdevi= d, &info, supportMaxOptions, set_fields & QEMU_BLOCK_IOTUNE= _SET_GROUP_NAME, supportMaxLengthOptions); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; if (ret < 0) goto endjob; @@ -16290,7 +16244,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: VIR_FREE(info.group_name); @@ -16309,7 +16263,6 @@ qemuDomainGetBlockIoTune(virDomainPtr dom, unsigned int flags) { virDomainDiskDefPtr disk; - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; qemuDomainObjPrivatePtr priv =3D NULL; virDomainDefPtr def =3D NULL; @@ -16335,7 +16288,7 @@ qemuDomainGetBlockIoTune(virDomainPtr dom, if (virDomainGetBlockIoTuneEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 /* the API check guarantees that only one of the definitions will be s= et */ @@ -16377,9 +16330,9 @@ qemuDomainGetBlockIoTune(virDomainPtr dom, if (!(drivealias =3D qemuAliasDiskDriveFromDisk(disk))) goto endjob; } - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorGetBlockIoThrottle(priv->mon, drivealias, qdevi= d, &reply); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto endjob; if (ret < 0) goto endjob; @@ -16448,7 +16401,7 @@ qemuDomainGetBlockIoTune(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: VIR_FREE(reply.group_name); @@ -16462,7 +16415,6 @@ qemuDomainGetDiskErrors(virDomainPtr dom, unsigned int nerrors, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; qemuDomainObjPrivatePtr priv; virHashTablePtr table =3D NULL; @@ -16482,7 +16434,7 @@ qemuDomainGetDiskErrors(virDomainPtr dom, if (virDomainGetDiskErrorsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -16493,9 +16445,9 @@ qemuDomainGetDiskErrors(virDomainPtr dom, goto endjob; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); table =3D qemuMonitorGetBlockInfo(priv->mon); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto endjob; if (!table) goto endjob; @@ -16523,7 +16475,7 @@ qemuDomainGetDiskErrors(virDomainPtr dom, ret =3D n; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -16559,7 +16511,7 @@ qemuDomainSetMetadata(virDomainPtr dom, if (virDomainSetMetadataEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 ret =3D virDomainObjSetMetadata(vm, type, metadata, key, uri, @@ -16572,7 +16524,7 @@ qemuDomainSetMetadata(virDomainPtr dom, virObjectEventStateQueue(driver->domainEventState, ev); } =20 - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -16652,17 +16604,16 @@ qemuDomainGetCPUStats(virDomainPtr domain, =20 =20 static int -qemuDomainProbeQMPCurrentMachine(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainProbeQMPCurrentMachine(virDomainObjPtr vm, bool *wakeupSupported) { qemuDomainObjPrivatePtr priv =3D vm->privateData; qemuMonitorCurrentMachineInfo info =3D { 0 }; int rv; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rv =3D qemuMonitorGetCurrentMachineInfo(priv->mon, &info); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || + if (qemuDomainObjExitMonitor(vm) < 0 || rv < 0) return -1; =20 @@ -16673,8 +16624,7 @@ qemuDomainProbeQMPCurrentMachine(virQEMUDriverPtr d= river, =20 /* returns -1 on error, or if query is not supported, 0 if query was succe= ssful */ static int -qemuDomainQueryWakeupSuspendSupport(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainQueryWakeupSuspendSupport(virDomainObjPtr vm, bool *wakeupSupported) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -16683,29 +16633,28 @@ qemuDomainQueryWakeupSuspendSupport(virQEMUDriver= Ptr driver, if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_QUERY_CURRENT_MACHINE)) return -1; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) return -1; =20 if ((ret =3D virDomainObjCheckActive(vm)) < 0) goto endjob; =20 - ret =3D qemuDomainProbeQMPCurrentMachine(driver, vm, wakeupSupported); + ret =3D qemuDomainProbeQMPCurrentMachine(vm, wakeupSupported); =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); return ret; } =20 =20 static int -qemuDomainPMSuspendAgent(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainPMSuspendAgent(virDomainObjPtr vm, unsigned int target) { qemuAgentPtr agent; int ret =3D -1; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) return -1; =20 if ((ret =3D virDomainObjCheckActive(vm)) < 0) @@ -16730,7 +16679,6 @@ qemuDomainPMSuspendForDuration(virDomainPtr dom, unsigned long long duration, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; int ret =3D -1; bool wakeupSupported; @@ -16765,7 +16713,7 @@ qemuDomainPMSuspendForDuration(virDomainPtr dom, * that don't know about this cap, will keep their old behavior of * suspending 'in the dark'. */ - if (qemuDomainQueryWakeupSuspendSupport(driver, vm, &wakeupSupported) = =3D=3D 0) { + if (qemuDomainQueryWakeupSuspendSupport(vm, &wakeupSupported) =3D=3D 0= ) { if (!wakeupSupported) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("Domain does not have suspend support")); @@ -16790,7 +16738,7 @@ qemuDomainPMSuspendForDuration(virDomainPtr dom, } } =20 - ret =3D qemuDomainPMSuspendAgent(driver, vm, target); + ret =3D qemuDomainPMSuspendAgent(vm, target); =20 cleanup: virDomainObjEndAPI(&vm); @@ -16801,7 +16749,6 @@ static int qemuDomainPMWakeup(virDomainPtr dom, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; int ret =3D -1; qemuDomainObjPrivatePtr priv; @@ -16814,7 +16761,7 @@ qemuDomainPMWakeup(virDomainPtr dom, if (virDomainPMWakeupEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -16822,13 +16769,13 @@ qemuDomainPMWakeup(virDomainPtr dom, =20 priv =3D vm->privateData; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorSystemWakeup(priv->mon); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -16871,7 +16818,7 @@ qemuDomainQemuAgentCommand(virDomainPtr domain, if (virDomainQemuAgentCommandEnsureACL(domain->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -16946,7 +16893,6 @@ qemuDomainFSTrim(virDomainPtr dom, unsigned long long minimum, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuAgentPtr agent; int ret =3D -1; @@ -16966,7 +16912,7 @@ qemuDomainFSTrim(virDomainPtr dom, if (virDomainFSTrimEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -17130,14 +17076,13 @@ qemuConnectGetCPUModelNames(virConnectPtr conn, =20 =20 static int -qemuDomainGetHostnameAgent(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainGetHostnameAgent(virDomainObjPtr vm, char **hostname) { qemuAgentPtr agent; int ret =3D -1; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_QUERY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17158,8 +17103,7 @@ qemuDomainGetHostnameAgent(virQEMUDriverPtr driver, =20 =20 static int -qemuDomainGetHostnameLease(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainGetHostnameLease(virDomainObjPtr vm, char **hostname) { char macaddr[VIR_MAC_STRING_BUFLEN]; @@ -17169,7 +17113,7 @@ qemuDomainGetHostnameLease(virQEMUDriverPtr driver, size_t i, j; int ret =3D -1; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17211,7 +17155,7 @@ qemuDomainGetHostnameLease(virQEMUDriverPtr driver, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); return ret; } =20 @@ -17220,7 +17164,6 @@ static char * qemuDomainGetHostname(virDomainPtr dom, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; char *hostname =3D NULL; =20 @@ -17241,10 +17184,10 @@ qemuDomainGetHostname(virDomainPtr dom, goto cleanup; =20 if (flags & VIR_DOMAIN_GET_HOSTNAME_AGENT) { - if (qemuDomainGetHostnameAgent(driver, vm, &hostname) < 0) + if (qemuDomainGetHostnameAgent(vm, &hostname) < 0) goto cleanup; } else if (flags & VIR_DOMAIN_GET_HOSTNAME_LEASE) { - if (qemuDomainGetHostnameLease(driver, vm, &hostname) < 0) + if (qemuDomainGetHostnameLease(vm, &hostname) < 0) goto cleanup; } =20 @@ -17267,7 +17210,6 @@ qemuDomainGetTime(virDomainPtr dom, unsigned int *nseconds, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; qemuAgentPtr agent; int ret =3D -1; @@ -17281,7 +17223,7 @@ qemuDomainGetTime(virDomainPtr dom, if (virDomainGetTimeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_QUERY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17309,8 +17251,7 @@ qemuDomainGetTime(virDomainPtr dom, =20 =20 static int -qemuDomainSetTimeAgent(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainSetTimeAgent(virDomainObjPtr vm, long long seconds, unsigned int nseconds, bool rtcSync) @@ -17318,7 +17259,7 @@ qemuDomainSetTimeAgent(virQEMUDriverPtr driver, qemuAgentPtr agent; int ret =3D -1; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17343,7 +17284,6 @@ qemuDomainSetTime(virDomainPtr dom, unsigned int nseconds, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; qemuDomainObjPrivatePtr priv; virDomainObjPtr vm; bool rtcSync =3D flags & VIR_DOMAIN_TIME_SYNC; @@ -17372,10 +17312,10 @@ qemuDomainSetTime(virDomainPtr dom, goto cleanup; } =20 - if (qemuDomainSetTimeAgent(driver, vm, seconds, nseconds, rtcSync) < 0) + if (qemuDomainSetTimeAgent(vm, seconds, nseconds, rtcSync) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17383,9 +17323,9 @@ qemuDomainSetTime(virDomainPtr dom, =20 /* Don't try to call rtc-reset-reinjection if it's not available */ if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_RTC_RESET_REINJECTION)) { - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rv =3D qemuMonitorRTCResetReinjection(priv->mon); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto endjob; =20 if (rv < 0) @@ -17395,7 +17335,7 @@ qemuDomainSetTime(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -17409,7 +17349,6 @@ qemuDomainFSFreeze(virDomainPtr dom, unsigned int nmountpoints, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; int ret =3D -1; =20 @@ -17421,7 +17360,7 @@ qemuDomainFSFreeze(virDomainPtr dom, if (virDomainFSFreezeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17444,7 +17383,6 @@ qemuDomainFSThaw(virDomainPtr dom, unsigned int nmountpoints, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; int ret =3D -1; =20 @@ -17462,7 +17400,7 @@ qemuDomainFSThaw(virDomainPtr dom, if (virDomainFSThawEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17891,7 +17829,7 @@ qemuDomainGetStatsMemory(virQEMUDriverPtr driver, =20 =20 static int -qemuDomainGetStatsBalloon(virQEMUDriverPtr driver, +qemuDomainGetStatsBalloon(virQEMUDriverPtr driver G_GNUC_UNUSED, virDomainObjPtr dom, virTypedParamListPtr params, unsigned int privflags) @@ -17917,7 +17855,7 @@ qemuDomainGetStatsBalloon(virQEMUDriverPtr driver, if (!HAVE_JOB(privflags) || !virDomainObjIsActive(dom)) return 0; =20 - nr_stats =3D qemuDomainMemoryStatsInternal(driver, dom, stats, + nr_stats =3D qemuDomainMemoryStatsInternal(dom, stats, VIR_DOMAIN_MEMORY_STAT_NR); if (nr_stats < 0) return 0; @@ -17949,7 +17887,7 @@ qemuDomainGetStatsBalloon(virQEMUDriverPtr driver, =20 =20 static int -qemuDomainGetStatsVcpu(virQEMUDriverPtr driver, +qemuDomainGetStatsVcpu(virQEMUDriverPtr driver G_GNUC_UNUSED, virDomainObjPtr dom, virTypedParamListPtr params, unsigned int privflags) @@ -17974,7 +17912,7 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr driver, goto cleanup; =20 if (HAVE_JOB(privflags) && virDomainObjIsActive(dom) && - qemuDomainRefreshVcpuHalted(driver, dom, QEMU_ASYNC_JOB_NONE) < 0)= { + qemuDomainRefreshVcpuHalted(dom, QEMU_ASYNC_JOB_NONE) < 0) { /* it's ok to be silent and go ahead, because halted vcpu info * wasn't here from the beginning */ virResetLastError(); @@ -18395,7 +18333,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver, bool visitBacking =3D !!(privflags & QEMU_DOMAIN_STATS_BACKING); =20 if (HAVE_JOB(privflags) && virDomainObjIsActive(dom)) { - qemuDomainObjEnterMonitor(driver, dom); + qemuDomainObjEnterMonitor(dom); =20 rc =3D qemuMonitorGetAllBlockStatsInfo(priv->mon, &stats, visitBac= king); =20 @@ -18410,7 +18348,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver, if (fetchnodedata) nodedata =3D qemuMonitorQueryNamedBlockNodes(priv->mon); =20 - if (qemuDomainObjExitMonitor(driver, dom) < 0) + if (qemuDomainObjExitMonitor(dom) < 0) goto cleanup; =20 /* failure to retrieve stats is fine at this point */ @@ -18449,7 +18387,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver, =20 =20 static int -qemuDomainGetStatsIOThread(virQEMUDriverPtr driver, +qemuDomainGetStatsIOThread(virQEMUDriverPtr driver G_GNUC_UNUSED, virDomainObjPtr dom, virTypedParamListPtr params, unsigned int privflags) @@ -18466,7 +18404,7 @@ qemuDomainGetStatsIOThread(virQEMUDriverPtr driver, if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_IOTHREAD)) return 0; =20 - if ((niothreads =3D qemuDomainGetIOThreadsMon(driver, dom, &iothreads)= ) < 0) + if ((niothreads =3D qemuDomainGetIOThreadsMon(dom, &iothreads)) < 0) return -1; =20 /* qemuDomainGetIOThreadsMon returns a NULL-terminated list, so we mus= t free @@ -18713,9 +18651,9 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, int rv; =20 if (flags & VIR_CONNECT_GET_ALL_DOMAINS_STATS_NOWAIT) - rv =3D qemuDomainObjBeginJobNowait(driver, vm, QEMU_JOB_QU= ERY); + rv =3D qemuDomainObjBeginJobNowait(vm, QEMU_JOB_QUERY); else - rv =3D qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY); + rv =3D qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY); =20 if (rv =3D=3D 0) domflags |=3D QEMU_DOMAIN_STATS_HAVE_JOB; @@ -18726,7 +18664,7 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, domflags |=3D QEMU_DOMAIN_STATS_BACKING; if (qemuDomainGetStats(conn, vm, stats, &tmp, domflags) < 0) { if (HAVE_JOB(domflags) && vm) - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 virObjectUnlock(vm); goto cleanup; @@ -18736,7 +18674,7 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, tmpstats[nstats++] =3D tmp; =20 if (HAVE_JOB(domflags)) - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 virObjectUnlock(vm); } @@ -18777,15 +18715,13 @@ qemuNodeAllocPages(virConnectPtr conn, } =20 static int -qemuDomainGetFSInfoAgent(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainGetFSInfoAgent(virDomainObjPtr vm, qemuAgentFSInfoPtr **info) { int ret =3D -1; qemuAgentPtr agent; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, - QEMU_AGENT_JOB_QUERY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) return ret; =20 if (virDomainObjCheckActive(vm) < 0) @@ -18879,7 +18815,6 @@ qemuDomainGetFSInfo(virDomainPtr dom, virDomainFSInfoPtr **info, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuAgentFSInfoPtr *agentinfo =3D NULL; int ret =3D -1; @@ -18893,10 +18828,10 @@ qemuDomainGetFSInfo(virDomainPtr dom, if (virDomainGetFSInfoEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if ((nfs =3D qemuDomainGetFSInfoAgent(driver, vm, &agentinfo)) < 0) + if ((nfs =3D qemuDomainGetFSInfoAgent(vm, &agentinfo)) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -18905,7 +18840,7 @@ qemuDomainGetFSInfo(virDomainPtr dom, ret =3D virDomainFSInfoFormat(agentinfo, nfs, vm->def, info); =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: g_free(agentinfo); @@ -18920,7 +18855,6 @@ qemuDomainInterfaceAddresses(virDomainPtr dom, unsigned int source, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; qemuAgentPtr agent; int ret =3D -1; @@ -18942,7 +18876,7 @@ qemuDomainInterfaceAddresses(virDomainPtr dom, break; =20 case VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT: - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_QUERY) <= 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -18980,7 +18914,6 @@ qemuDomainSetUserPassword(virDomainPtr dom, const char *password, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; qemuAgentPtr agent; int ret =3D -1; @@ -18994,7 +18927,7 @@ qemuDomainSetUserPassword(virDomainPtr dom, if (virDomainSetUserPasswordEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -19146,7 +19079,7 @@ static int qemuDomainRename(virDomainPtr dom, if (virDomainRenameEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjIsActive(vm)) { @@ -19193,7 +19126,7 @@ static int qemuDomainRename(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -19269,7 +19202,6 @@ qemuDomainGetGuestVcpus(virDomainPtr dom, unsigned int *nparams, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; qemuAgentPtr agent; qemuAgentCPUInfoPtr info =3D NULL; @@ -19284,7 +19216,7 @@ qemuDomainGetGuestVcpus(virDomainPtr dom, if (virDomainGetGuestVcpusEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_QUERY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -19318,7 +19250,6 @@ qemuDomainSetGuestVcpus(virDomainPtr dom, int state, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; virBitmapPtr map =3D NULL; qemuAgentCPUInfoPtr info =3D NULL; @@ -19343,7 +19274,7 @@ qemuDomainSetGuestVcpus(virDomainPtr dom, if (virDomainSetGuestVcpusEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -19436,7 +19367,7 @@ qemuDomainSetVcpu(virDomainPtr dom, if (virDomainSetVcpuEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -19463,7 +19394,7 @@ qemuDomainSetVcpu(virDomainPtr dom, ret =3D qemuDomainSetVcpuInternal(driver, vm, def, persistentDef, map,= !!state); =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virBitmapFree(map); @@ -19478,7 +19409,6 @@ qemuDomainSetBlockThreshold(virDomainPtr dom, unsigned long long threshold, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; qemuDomainObjPrivatePtr priv; virDomainObjPtr vm =3D NULL; virStorageSourcePtr src; @@ -19496,7 +19426,7 @@ qemuDomainSetBlockThreshold(virDomainPtr dom, if (virDomainSetBlockThresholdEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -19513,7 +19443,7 @@ qemuDomainSetBlockThreshold(virDomainPtr dom, =20 if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV) && !src->nodestorage && - qemuBlockNodeNamesDetect(driver, vm, QEMU_ASYNC_JOB_NONE) < 0) + qemuBlockNodeNamesDetect(vm, QEMU_ASYNC_JOB_NONE) < 0) goto endjob; =20 if (!src->nodestorage) { @@ -19525,15 +19455,15 @@ qemuDomainSetBlockThreshold(virDomainPtr dom, =20 nodename =3D g_strdup(src->nodestorage); =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorSetBlockThreshold(priv->mon, nodename, threshold); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto endjob; =20 ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -19591,7 +19521,7 @@ qemuDomainSetLifecycleAction(virDomainPtr dom, if (virDomainSetLifecycleActionEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -19622,7 +19552,7 @@ qemuDomainSetLifecycleAction(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virDomainObjEndAPI(&vm); @@ -19703,8 +19633,7 @@ qemuNodeGetSEVInfo(virConnectPtr conn, =20 =20 static int -qemuDomainGetSEVMeasurement(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainGetSEVMeasurement(virDomainObjPtr vm, virTypedParameterPtr *params, int *nparams, unsigned int flags) @@ -19715,13 +19644,13 @@ qemuDomainGetSEVMeasurement(virQEMUDriverPtr driv= er, =20 virCheckFlags(VIR_TYPED_PARAM_STRING_OKAY, -1); =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) return -1; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); tmp =3D qemuMonitorGetSEVMeasurement(QEMU_DOMAIN_PRIVATE(vm)->mon); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto endjob; =20 if (!tmp) @@ -19735,7 +19664,7 @@ qemuDomainGetSEVMeasurement(virQEMUDriverPtr driver, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); return ret; } =20 @@ -19746,7 +19675,6 @@ qemuDomainGetLaunchSecurityInfo(virDomainPtr domain, int *nparams, unsigned int flags) { - virQEMUDriverPtr driver =3D domain->conn->privateData; virDomainObjPtr vm; int ret =3D -1; =20 @@ -19757,7 +19685,7 @@ qemuDomainGetLaunchSecurityInfo(virDomainPtr domain, goto cleanup; =20 if (vm->def->sev) { - if (qemuDomainGetSEVMeasurement(driver, vm, params, nparams, flags= ) < 0) + if (qemuDomainGetSEVMeasurement(vm, params, nparams, flags) < 0) goto cleanup; } =20 @@ -19893,7 +19821,6 @@ qemuDomainGetGuestInfo(virDomainPtr dom, int *nparams, unsigned int flags) { - virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; qemuAgentPtr agent; int ret =3D -1; @@ -19917,8 +19844,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom, if (virDomainGetGuestInfoEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, - QEMU_AGENT_JOB_QUERY) < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -19969,7 +19895,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom, qemuDomainObjEndAgentJob(vm); =20 if (nfs > 0) { - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -19980,7 +19906,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom, qemuAgentFSInfoFormatParams(agentfsinfo, nfs, vm->def, params, npa= rams, &maxparams); =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); } =20 cleanup: diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index e2c6e14c2e..7b626ee383 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -99,14 +99,13 @@ qemuDomainDeleteDevice(virDomainObjPtr vm, const char *alias) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - virQEMUDriverPtr driver =3D priv->driver; int rc; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 rc =3D qemuMonitorDelDevice(priv->mon, alias); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { /* Domain is no longer running. No cleanup needed. */ return -1; } @@ -231,7 +230,6 @@ qemuHotplugWaitForTrayEject(virDomainObjPtr vm, =20 /** * qemuDomainChangeMediaLegacy: - * @driver: qemu driver structure * @vm: domain definition * @disk: disk definition to change the source of * @newsrc: new disk source to change to @@ -245,8 +243,7 @@ qemuHotplugWaitForTrayEject(virDomainObjPtr vm, * Returns 0 on success, -1 on error and reports libvirt error */ static int -qemuDomainChangeMediaLegacy(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainChangeMediaLegacy(virDomainObjPtr vm, virDomainDiskDefPtr disk, virStorageSourcePtr newsrc, bool force) @@ -267,9 +264,9 @@ qemuDomainChangeMediaLegacy(virQEMUDriverPtr driver, if (!(driveAlias =3D qemuAliasDiskDriveFromDisk(disk))) return -1; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorEjectMedia(priv->mon, driveAlias, force); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 /* If the tray is present wait for it to open. */ @@ -279,9 +276,9 @@ qemuDomainChangeMediaLegacy(virQEMUDriverPtr driver, return -1; =20 /* re-issue ejection command to pop out the media */ - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorEjectMedia(priv->mon, driveAlias, false); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) return -1; =20 } else { @@ -297,12 +294,12 @@ qemuDomainChangeMediaLegacy(virQEMUDriverPtr driver, if (virStorageSourceGetActualType(newsrc) !=3D VIR_STORAGE_TYPE_DI= R) format =3D virStorageFileFormatTypeToString(newsrc->format); =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorChangeMedia(priv->mon, driveAlias, sourcestr, format); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; } =20 @@ -343,7 +340,7 @@ qemuHotplugAttachDBusVMState(virQEMUDriverPtr driver, if (!(props =3D qemuBuildDBusVMStateInfoProps(driver, vm))) return -1; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 ret =3D qemuMonitorAddObject(priv->mon, &props, NULL); @@ -351,7 +348,7 @@ qemuHotplugAttachDBusVMState(virQEMUDriverPtr driver, if (ret =3D=3D 0) priv->dbusVMState =3D true; =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 return ret; @@ -370,8 +367,7 @@ qemuHotplugAttachDBusVMState(virQEMUDriverPtr driver, * Returns: 0 on success, -1 on error. */ int -qemuHotplugRemoveDBusVMState(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuHotplugRemoveDBusVMState(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -380,7 +376,7 @@ qemuHotplugRemoveDBusVMState(virQEMUDriverPtr driver, if (!priv->dbusVMState) return 0; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 ret =3D qemuMonitorDelObject(priv->mon, qemuDomainGetDBusVMStateAlias(= ), true); @@ -388,7 +384,7 @@ qemuHotplugRemoveDBusVMState(virQEMUDriverPtr driver, if (ret =3D=3D 0) priv->dbusVMState =3D false; =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 return ret; @@ -397,7 +393,6 @@ qemuHotplugRemoveDBusVMState(virQEMUDriverPtr driver, =20 /** * qemuHotplugAttachManagedPR: - * @driver: QEMU driver object * @vm: domain object * @src: new disk source to be attached to @vm * @asyncJob: asynchronous job identifier @@ -408,8 +403,7 @@ qemuHotplugRemoveDBusVMState(virQEMUDriverPtr driver, * Returns: 0 on success, -1 on error. */ static int -qemuHotplugAttachManagedPR(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuHotplugAttachManagedPR(virDomainObjPtr vm, virStorageSourcePtr src, qemuDomainAsyncJob asyncJob) { @@ -431,12 +425,12 @@ qemuHotplugAttachManagedPR(virQEMUDriverPtr driver, =20 daemonStarted =3D true; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; =20 rc =3D qemuMonitorAddObject(priv->mon, &props, NULL); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto cleanup; =20 ret =3D 0; @@ -451,7 +445,6 @@ qemuHotplugAttachManagedPR(virQEMUDriverPtr driver, =20 /** * qemuHotplugRemoveManagedPR: - * @driver: QEMU driver object * @vm: domain object * @asyncJob: asynchronous job identifier * @@ -459,8 +452,7 @@ qemuHotplugAttachManagedPR(virQEMUDriverPtr driver, * it any more. */ static int -qemuHotplugRemoveManagedPR(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuHotplugRemoveManagedPR(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -472,11 +464,11 @@ qemuHotplugRemoveManagedPR(virQEMUDriverPtr driver, =20 virErrorPreserveLast(&orig_err); =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; ignore_value(qemuMonitorDelObject(priv->mon, qemuDomainGetManagedPRAli= as(), false)); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; =20 qemuProcessKillManagedPRDaemon(vm); @@ -490,7 +482,6 @@ qemuHotplugRemoveManagedPR(virQEMUDriverPtr driver, =20 /** * qemuDomainChangeMediaBlockdev: - * @driver: qemu driver structure * @vm: domain definition * @disk: disk definition to change the source of * @oldsrc: old source definition @@ -505,8 +496,7 @@ qemuHotplugRemoveManagedPR(virQEMUDriverPtr driver, * Returns 0 on success, -1 on error and reports libvirt error */ static int -qemuDomainChangeMediaBlockdev(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainChangeMediaBlockdev(virDomainObjPtr vm, virDomainDiskDefPtr disk, virStorageSourcePtr oldsrc, virStorageSourcePtr newsrc, @@ -533,16 +523,16 @@ qemuDomainChangeMediaBlockdev(virQEMUDriverPtr driver, } =20 if (diskPriv->tray && disk->tray_status !=3D VIR_DOMAIN_DISK_TRAY_OPEN= ) { - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorBlockdevTrayOpen(priv->mon, diskPriv->qomName, f= orce); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) return -1; =20 if (!force && qemuHotplugWaitForTrayEject(vm, disk) < 0) return -1; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 rc =3D qemuMonitorBlockdevMediumRemove(priv->mon, diskPriv->qomName); =20 @@ -564,7 +554,7 @@ qemuDomainChangeMediaBlockdev(virQEMUDriverPtr driver, if (rc < 0 && newbackend) qemuBlockStorageSourceChainDetach(priv->mon, newbackend); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) return -1; =20 return 0; @@ -628,13 +618,13 @@ qemuDomainChangeEjectableMedia(virQEMUDriverPtr drive= r, if (qemuDomainStorageSourceChainAccessAllow(driver, vm, newsrc) < 0) goto cleanup; =20 - if (qemuHotplugAttachManagedPR(driver, vm, newsrc, QEMU_ASYNC_JOB_NONE= ) < 0) + if (qemuHotplugAttachManagedPR(vm, newsrc, QEMU_ASYNC_JOB_NONE) < 0) goto cleanup; =20 if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) - rc =3D qemuDomainChangeMediaBlockdev(driver, vm, disk, oldsrc, new= src, force); + rc =3D qemuDomainChangeMediaBlockdev(vm, disk, oldsrc, newsrc, for= ce); else - rc =3D qemuDomainChangeMediaLegacy(driver, vm, disk, newsrc, force= ); + rc =3D qemuDomainChangeMediaLegacy(vm, disk, newsrc, force); =20 virDomainAuditDisk(vm, oldsrc, newsrc, "update", rc >=3D 0); =20 @@ -664,7 +654,7 @@ qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver, =20 /* remove PR manager object if unneeded */ if (managedpr) - ignore_value(qemuHotplugRemoveManagedPR(driver, vm, QEMU_ASYNC_JOB= _NONE)); + ignore_value(qemuHotplugRemoveManagedPR(vm, QEMU_ASYNC_JOB_NONE)); =20 /* revert old image do the disk definition */ if (oldsrc) @@ -726,10 +716,10 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, if (VIR_REALLOC_N(vm->def->disks, vm->def->ndisks + 1) < 0) goto cleanup; =20 - if (qemuHotplugAttachManagedPR(driver, vm, disk->src, QEMU_ASYNC_JOB_N= ONE) < 0) + if (qemuHotplugAttachManagedPR(vm, disk->src, QEMU_ASYNC_JOB_NONE) < 0) goto cleanup; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (qemuBlockStorageSourceChainAttach(priv->mon, data) < 0) goto exit_monitor; @@ -764,7 +754,7 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, VIR_WARN("failed to set blkdeviotune for '%s' of '%s'", disk->= dst, vm->def->name); } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { ret =3D -2; goto cleanup; } @@ -785,11 +775,11 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, ignore_value(qemuMonitorBlockdevDel(priv->mon, corAlias)); qemuBlockStorageSourceChainDetach(priv->mon, data); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -2; =20 if (virStorageSourceChainHasManagedPR(disk->src) && - qemuHotplugRemoveManagedPR(driver, vm, QEMU_ASYNC_JOB_NONE) < 0) + qemuHotplugRemoveManagedPR(vm, QEMU_ASYNC_JOB_NONE) < 0) ret =3D -2; =20 virDomainAuditDisk(vm, NULL, disk->src, "attach", false); @@ -820,8 +810,7 @@ qemuDomainAttachVirtioDiskDevice(virQEMUDriverPtr drive= r, } =20 =20 -int qemuDomainAttachControllerDevice(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuDomainAttachControllerDevice(virDomainObjPtr vm, virDomainControllerDefPtr controller) { int ret =3D -1; @@ -869,7 +858,7 @@ int qemuDomainAttachControllerDevice(virQEMUDriverPtr d= river, if (VIR_REALLOC_N(vm->def->controllers, vm->def->ncontrollers+1) < 0) goto cleanup; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if ((ret =3D qemuDomainAttachExtensionDevice(priv->mon, &controller->info)) < 0) { @@ -880,7 +869,7 @@ int qemuDomainAttachControllerDevice(virQEMUDriverPtr d= river, ignore_value(qemuDomainDetachExtensionDevice(priv->mon, &controlle= r->info)); =20 exit_monitor: - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { releaseaddr =3D false; ret =3D -1; goto cleanup; @@ -897,8 +886,7 @@ int qemuDomainAttachControllerDevice(virQEMUDriverPtr d= river, } =20 static virDomainControllerDefPtr -qemuDomainFindOrCreateSCSIDiskController(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainFindOrCreateSCSIDiskController(virDomainObjPtr vm, int controller) { size_t i; @@ -939,7 +927,7 @@ qemuDomainFindOrCreateSCSIDiskController(virQEMUDriverP= tr driver, =20 VIR_INFO("No SCSI controller present, hotplugging one model=3D%s", virDomainControllerModelSCSITypeToString(cont->model)); - if (qemuDomainAttachControllerDevice(driver, vm, cont) < 0) { + if (qemuDomainAttachControllerDevice(vm, cont) < 0) { VIR_FREE(cont); return NULL; } @@ -985,7 +973,7 @@ qemuDomainAttachSCSIDisk(virQEMUDriverPtr driver, * exist; there must not be any missing index in between. */ for (i =3D 0; i <=3D disk->info.addr.drive.controller; i++) { - if (!qemuDomainFindOrCreateSCSIDiskController(driver, vm, i)) + if (!qemuDomainFindOrCreateSCSIDiskController(vm, i)) return -1; } =20 @@ -1391,11 +1379,11 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver, slirpfdName))) goto cleanup; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (actualType =3D=3D VIR_DOMAIN_NET_TYPE_VHOSTUSER) { if (qemuMonitorAttachCharDev(priv->mon, charDevAlias, net->data.vh= ostuser) < 0) { - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); virDomainAuditNet(vm, NULL, net, "attach", false); goto cleanup; } @@ -1406,13 +1394,13 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver, tapfd, tapfdName, tapfdSize, vhostfd, vhostfdName, vhostfdSize, slirpfd, slirpfdName) < 0) { - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); virDomainAuditNet(vm, NULL, net, "attach", false); goto try_remove; } netdevPlugged =3D true; =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; =20 for (i =3D 0; i < tapfdSize; i++) @@ -1424,21 +1412,21 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver, queueSize, priv->qemuCaps))) goto try_remove; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (qemuDomainAttachExtensionDevice(priv->mon, &net->info) < 0) { - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); virDomainAuditNet(vm, NULL, net, "attach", false); goto try_remove; } =20 if (qemuMonitorAddDevice(priv->mon, nicstr) < 0) { ignore_value(qemuDomainDetachExtensionDevice(priv->mon, &net->info= )); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); virDomainAuditNet(vm, NULL, net, "attach", false); goto try_remove; } - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; =20 /* set link state */ @@ -1447,15 +1435,15 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver, virReportError(VIR_ERR_OPERATION_FAILED, "%s", _("device alias not found: cannot set link stat= e to down")); } else { - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (qemuMonitorSetLink(priv->mon, net->info.alias, VIR_DOMAIN_= NET_INTERFACE_LINK_STATE_DOWN) < 0) { - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); virDomainAuditNet(vm, NULL, net, "attach", false); goto try_remove; } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; } /* link set to down */ @@ -1528,7 +1516,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver, netdev_name =3D g_strdup_printf("host%s", net->info.alias); if (QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp) qemuSlirpStop(QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp, vm, driver,= net); - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); if (charDevPlugged && qemuMonitorDetachCharDev(priv->mon, charDevAlias) < 0) VIR_WARN("Failed to remove associated chardev %s", charDevAlias); @@ -1536,7 +1524,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver, qemuMonitorRemoveNetdev(priv->mon, netdev_name) < 0) VIR_WARN("Failed to remove network backend for netdev %s", netdev_name); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); virErrorRestore(&originalError); goto cleanup; } @@ -1634,7 +1622,7 @@ qemuDomainAttachHostPCIDevice(virQEMUDriverPtr driver, if (!(devstr =3D qemuBuildPCIHostdevDevStr(vm->def, hostdev, 0, priv->= qemuCaps))) goto error; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if ((ret =3D qemuDomainAttachExtensionDevice(priv->mon, hostdev->info)= ) < 0) goto exit_monitor; @@ -1643,7 +1631,7 @@ qemuDomainAttachHostPCIDevice(virQEMUDriverPtr driver, ignore_value(qemuDomainDetachExtensionDevice(priv->mon, hostdev->i= nfo)); =20 exit_monitor: - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto error; =20 virDomainAuditHostdev(vm, hostdev, "attach", ret =3D=3D 0); @@ -1676,8 +1664,7 @@ qemuDomainAttachHostPCIDevice(virQEMUDriverPtr driver, =20 =20 void -qemuDomainDelTLSObjects(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainDelTLSObjects(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, const char *secAlias, const char *tlsAlias) @@ -1690,7 +1677,7 @@ qemuDomainDelTLSObjects(virQEMUDriverPtr driver, =20 virErrorPreserveLast(&orig_err); =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; =20 if (tlsAlias) @@ -1699,7 +1686,7 @@ qemuDomainDelTLSObjects(virQEMUDriverPtr driver, if (secAlias) ignore_value(qemuMonitorDelObject(priv->mon, secAlias, false)); =20 - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); =20 cleanup: virErrorRestore(&orig_err); @@ -1707,8 +1694,7 @@ qemuDomainDelTLSObjects(virQEMUDriverPtr driver, =20 =20 int -qemuDomainAddTLSObjects(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainAddTLSObjects(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, virJSONValuePtr *secProps, virJSONValuePtr *tlsProps) @@ -1720,7 +1706,7 @@ qemuDomainAddTLSObjects(virQEMUDriverPtr driver, if (!tlsProps && !secProps) return 0; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 if (secProps && *secProps && @@ -1731,13 +1717,13 @@ qemuDomainAddTLSObjects(virQEMUDriverPtr driver, qemuMonitorAddObject(priv->mon, tlsProps, NULL) < 0) goto error; =20 - return qemuDomainObjExitMonitor(driver, vm); + return qemuDomainObjExitMonitor(vm); =20 error: virErrorPreserveLast(&orig_err); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); virErrorRestore(&orig_err); - qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, NULL); + qemuDomainDelTLSObjects(vm, asyncJob, secAlias, NULL); =20 return -1; } @@ -1816,7 +1802,7 @@ qemuDomainAddChardevTLSObjects(virQEMUDriverPtr drive= r, goto cleanup; dev->data.tcp.tlscreds =3D true; =20 - if (qemuDomainAddTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE, + if (qemuDomainAddTLSObjects(vm, QEMU_ASYNC_JOB_NONE, &secProps, &tlsProps) < 0) goto cleanup; =20 @@ -1857,13 +1843,13 @@ qemuDomainDelChardevTLSObjects(virQEMUDriverPtr dri= ver, !(secAlias =3D qemuAliasForSecret(inAlias, NULL))) return -1; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 ignore_value(qemuMonitorDelObject(priv->mon, tlsAlias, false)); if (secAlias) ignore_value(qemuMonitorDelObject(priv->mon, secAlias, false)); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 return 0; @@ -1906,7 +1892,7 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr d= river, &tlsAlias, &secAlias) < 0) goto audit; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (qemuMonitorAttachCharDev(priv->mon, charAlias, @@ -1917,7 +1903,7 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr d= river, if (qemuMonitorAddDevice(priv->mon, devstr) < 0) goto exit_monitor; =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto audit; =20 def->redirdevs[def->nredirdevs++] =3D redirdev; @@ -1934,9 +1920,9 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr d= river, /* detach associated chardev on error */ if (chardevAdded) ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias)); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); virErrorRestore(&orig_err); - qemuDomainDelTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE, + qemuDomainDelTLSObjects(vm, QEMU_ASYNC_JOB_NONE, secAlias, tlsAlias); goto audit; } @@ -2169,7 +2155,7 @@ int qemuDomainAttachChrDevice(virQEMUDriverPtr driver, &tlsAlias, &secAlias) < 0) goto audit; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (qemuMonitorAttachCharDev(priv->mon, charAlias, chr->source) < 0) goto exit_monitor; @@ -2186,7 +2172,7 @@ int qemuDomainAttachChrDevice(virQEMUDriverPtr driver, goto exit_monitor; } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto audit; =20 qemuDomainChrInsertPreAlloced(vmdef, chr); @@ -2213,10 +2199,10 @@ int qemuDomainAttachChrDevice(virQEMUDriverPtr driv= er, /* detach associated chardev on error */ if (chardevAttached) qemuMonitorDetachCharDev(priv->mon, charAlias); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); virErrorRestore(&orig_err); =20 - qemuDomainDelTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE, + qemuDomainDelTLSObjects(vm, QEMU_ASYNC_JOB_NONE, secAlias, tlsAlias); goto audit; } @@ -2278,7 +2264,7 @@ qemuDomainAttachRNGDevice(virQEMUDriverPtr driver, goto audit; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (rng->backend =3D=3D VIR_DOMAIN_RNG_BACKEND_EGD && qemuMonitorAttachCharDev(priv->mon, charAlias, @@ -2297,7 +2283,7 @@ qemuDomainAttachRNGDevice(virQEMUDriverPtr driver, goto exit_monitor; } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { releaseaddr =3D false; goto cleanup; } @@ -2327,11 +2313,11 @@ qemuDomainAttachRNGDevice(virQEMUDriverPtr driver, ignore_value(qemuMonitorDelObject(priv->mon, objAlias, false)); if (rng->backend =3D=3D VIR_DOMAIN_RNG_BACKEND_EGD && chardevAdded) ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias)); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) releaseaddr =3D false; virErrorRestore(&orig_err); =20 - qemuDomainDelTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE, + qemuDomainDelTLSObjects(vm, QEMU_ASYNC_JOB_NONE, secAlias, tlsAlias); goto audit; } @@ -2411,7 +2397,7 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, if (qemuDomainAdjustMaxMemLock(vm, false) < 0) goto removedef; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); if (qemuMonitorAddObject(priv->mon, &props, NULL) < 0) goto exit_monitor; objAdded =3D true; @@ -2419,7 +2405,7 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, if (qemuMonitorAddDevice(priv->mon, devstr) < 0) goto exit_monitor; =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { /* we shouldn't touch mem now, as the def might be freed */ mem =3D NULL; goto audit; @@ -2429,14 +2415,13 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, virObjectEventStateQueue(driver->domainEventState, event); =20 /* fix the balloon size */ - ignore_value(qemuProcessRefreshBalloonState(driver, vm, QEMU_ASYNC_JOB= _NONE)); + ignore_value(qemuProcessRefreshBalloonState(vm, QEMU_ASYNC_JOB_NONE)); =20 /* mem is consumed by vm->def */ mem =3D NULL; =20 /* this step is best effort, removing the device would be so much trou= ble */ - ignore_value(qemuDomainUpdateMemoryDeviceInfo(driver, vm, - QEMU_ASYNC_JOB_NONE)); + ignore_value(qemuDomainUpdateMemoryDeviceInfo(vm, QEMU_ASYNC_JOB_NONE)= ); =20 ret =3D 0; =20 @@ -2461,7 +2446,7 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, virErrorPreserveLast(&orig_err); if (objAdded) ignore_value(qemuMonitorDelObject(priv->mon, objalias, false)); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) mem =3D NULL; =20 if (objAdded && mem) @@ -2527,9 +2512,9 @@ qemuDomainAttachHostUSBDevice(virQEMUDriverPtr driver, if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs+1) < 0) goto cleanup; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorAddDevice(priv->mon, devstr); - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { ret =3D -1; goto cleanup; } @@ -2582,7 +2567,7 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr drive= r, * exist; there must not be any missing index in between. */ for (i =3D 0; i <=3D hostdev->info->addr.drive.controller; i++) { - if (!qemuDomainFindOrCreateSCSIDiskController(driver, vm, i)) + if (!qemuDomainFindOrCreateSCSIDiskController(vm, i)) return -1; } =20 @@ -2617,7 +2602,7 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr drive= r, if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs + 1) < 0) goto cleanup; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (qemuBlockStorageSourceAttachApply(priv->mon, data) < 0) goto exit_monitor; @@ -2625,7 +2610,7 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr drive= r, if (qemuMonitorAddDevice(priv->mon, devstr) < 0) goto exit_monitor; =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; =20 virDomainAuditHostdev(vm, hostdev, "attach", true); @@ -2652,7 +2637,7 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr drive= r, exit_monitor: virErrorPreserveLast(&orig_err); qemuBlockStorageSourceAttachRollback(priv->mon, data); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); virErrorRestore(&orig_err); =20 virDomainAuditHostdev(vm, hostdev, "attach", false); @@ -2729,7 +2714,7 @@ qemuDomainAttachSCSIVHostDevice(virQEMUDriverPtr driv= er, if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs + 1) < 0) goto cleanup; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if ((ret =3D qemuDomainAttachExtensionDevice(priv->mon, hostdev->info)= ) < 0) goto exit_monitor; @@ -2741,7 +2726,7 @@ qemuDomainAttachSCSIVHostDevice(virQEMUDriverPtr driv= er, } =20 exit_monitor: - if (qemuDomainObjExitMonitor(driver, vm) < 0 || ret < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || ret < 0) goto audit; =20 vm->def->hostdevs[vm->def->nhostdevs++] =3D hostdev; @@ -2836,9 +2821,9 @@ qemuDomainAttachMediatedDevice(virQEMUDriverPtr drive= r, goto cleanup; teardownmemlock =3D true; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorAddDevice(priv->mon, devstr); - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { ret =3D -1; goto cleanup; } @@ -2977,7 +2962,7 @@ qemuDomainAttachShmemDevice(virQEMUDriverPtr driver, =20 } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (shmem->server.enabled) { if (qemuMonitorAttachCharDev(priv->mon, charAlias, @@ -2998,7 +2983,7 @@ qemuDomainAttachShmemDevice(virQEMUDriverPtr driver, goto exit_monitor; } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { release_address =3D false; goto cleanup; } @@ -3030,7 +3015,7 @@ qemuDomainAttachShmemDevice(virQEMUDriverPtr driver, ignore_value(qemuMonitorDelObject(priv->mon, memAlias, false)); } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) release_address =3D false; =20 virErrorRestore(&orig_err); @@ -3084,14 +3069,14 @@ qemuDomainAttachWatchdog(virQEMUDriverPtr driver, =20 actionStr =3D virDomainWatchdogActionTypeToString(actualAction); =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 rv =3D qemuMonitorSetWatchdogAction(priv->mon, actionStr); =20 if (rv >=3D 0) rv =3D qemuMonitorAddDevice(priv->mon, watchdogstr); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { releaseAddress =3D false; goto cleanup; } @@ -3111,8 +3096,7 @@ qemuDomainAttachWatchdog(virQEMUDriverPtr driver, =20 =20 int -qemuDomainAttachInputDevice(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainAttachInputDevice(virDomainObjPtr vm, virDomainInputDefPtr input) { int ret =3D -1; @@ -3164,7 +3148,7 @@ qemuDomainAttachInputDevice(virQEMUDriverPtr driver, if (VIR_REALLOC_N(vm->def->inputs, vm->def->ninputs + 1) < 0) goto cleanup; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (qemuDomainAttachExtensionDevice(priv->mon, &input->info) < 0) goto exit_monitor; @@ -3174,7 +3158,7 @@ qemuDomainAttachInputDevice(virQEMUDriverPtr driver, goto exit_monitor; } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { releaseaddr =3D false; goto cleanup; } @@ -3203,7 +3187,7 @@ qemuDomainAttachInputDevice(virQEMUDriverPtr driver, return ret; =20 exit_monitor: - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { releaseaddr =3D false; goto cleanup; } @@ -3212,8 +3196,7 @@ qemuDomainAttachInputDevice(virQEMUDriverPtr driver, =20 =20 int -qemuDomainAttachVsockDevice(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainAttachVsockDevice(virDomainObjPtr vm, virDomainVsockDefPtr vsock) { qemuDomainVsockPrivatePtr vsockPriv =3D (qemuDomainVsockPrivatePtr)vso= ck->privateData; @@ -3247,7 +3230,7 @@ qemuDomainAttachVsockDevice(virQEMUDriverPtr driver, if (!(devstr =3D qemuBuildVsockDevStr(vm->def, vsock, priv->qemuCaps, = fdprefix))) goto cleanup; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (qemuDomainAttachExtensionDevice(priv->mon, &vsock->info) < 0) goto exit_monitor; @@ -3257,7 +3240,7 @@ qemuDomainAttachVsockDevice(virQEMUDriverPtr driver, goto exit_monitor; } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) { + if (qemuDomainObjExitMonitor(vm) < 0) { releaseaddr =3D false; goto cleanup; } @@ -3277,7 +3260,7 @@ qemuDomainAttachVsockDevice(virQEMUDriverPtr driver, return ret; =20 exit_monitor: - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) releaseaddr =3D false; goto cleanup; } @@ -3420,8 +3403,7 @@ qemuDomainChangeNetFilter(virDomainObjPtr vm, return 0; } =20 -int qemuDomainChangeNetLinkState(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuDomainChangeNetLinkState(virDomainObjPtr vm, virDomainNetDefPtr dev, int linkstate) { @@ -3436,7 +3418,7 @@ int qemuDomainChangeNetLinkState(virQEMUDriverPtr dri= ver, =20 VIR_DEBUG("dev: %s, state: %d", dev->info.alias, linkstate); =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 ret =3D qemuMonitorSetLink(priv->mon, dev->info.alias, linkstate); if (ret < 0) @@ -3446,15 +3428,14 @@ int qemuDomainChangeNetLinkState(virQEMUDriverPtr d= river, dev->linkstate =3D linkstate; =20 cleanup: - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 return ret; } =20 int -qemuDomainChangeNet(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainChangeNet(virDomainObjPtr vm, virDomainDeviceDefPtr dev) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -3878,7 +3859,7 @@ qemuDomainChangeNet(virQEMUDriverPtr driver, } =20 if (needLinkStateChange && - qemuDomainChangeNetLinkState(driver, vm, olddev, newdev->linkstate= ) < 0) { + qemuDomainChangeNetLinkState(vm, olddev, newdev->linkstate) < 0) { goto cleanup; } =20 @@ -3969,8 +3950,7 @@ qemuDomainFindGraphicsIndex(virDomainDefPtr def, =20 =20 int -qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainChangeGraphicsPasswords(virDomainObjPtr vm, int type, virDomainGraphicsAuthDefPtr auth, const char *defaultPasswd, @@ -3992,7 +3972,7 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr dr= iver, if (auth->connected) connected =3D virDomainGraphicsAuthConnectedTypeToString(auth->con= nected); =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return ret; ret =3D qemuMonitorSetPassword(priv->mon, type, password, connected); =20 @@ -4012,7 +3992,7 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr dr= iver, ret =3D qemuMonitorExpirePassword(priv->mon, type, expire); =20 end_job: - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 return ret; @@ -4116,8 +4096,7 @@ qemuDomainChangeGraphics(virQEMUDriverPtr driver, dev->data.vnc.auth.passwd)) { VIR_DEBUG("Updating password on VNC server %p %p", dev->data.vnc.auth.passwd, cfg->vncPassword); - if (qemuDomainChangeGraphicsPasswords(driver, vm, - VIR_DOMAIN_GRAPHICS_TYPE= _VNC, + if (qemuDomainChangeGraphicsPasswords(vm, VIR_DOMAIN_GRAPHICS_= TYPE_VNC, &dev->data.vnc.auth, cfg->vncPassword, QEMU_ASYNC_JOB_NONE) < 0) @@ -4164,8 +4143,7 @@ qemuDomainChangeGraphics(virQEMUDriverPtr driver, dev->data.spice.auth.passwd)) { VIR_DEBUG("Updating password on SPICE server %p %p", dev->data.spice.auth.passwd, cfg->spicePassword); - if (qemuDomainChangeGraphicsPasswords(driver, vm, - VIR_DOMAIN_GRAPHICS_TYPE= _SPICE, + if (qemuDomainChangeGraphicsPasswords(vm, VIR_DOMAIN_GRAPHICS_= TYPE_SPICE, &dev->data.spice.auth, cfg->spicePassword, QEMU_ASYNC_JOB_NONE) < 0) @@ -4279,7 +4257,7 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver, } } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (corAlias) ignore_value(qemuMonitorBlockdevDel(priv->mon, corAlias)); @@ -4287,7 +4265,7 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver, if (diskBackend) qemuBlockStorageSourceChainDetach(priv->mon, diskBackend); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; =20 virDomainAuditDisk(vm, disk->src, NULL, "detach", true); @@ -4303,7 +4281,7 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver, ignore_value(qemuRemoveSharedDevice(driver, &dev, vm->def->name)); =20 if (virStorageSourceChainHasManagedPR(disk->src) && - qemuHotplugRemoveManagedPR(driver, vm, QEMU_ASYNC_JOB_NONE) < 0) + qemuHotplugRemoveManagedPR(vm, QEMU_ASYNC_JOB_NONE) < 0) goto cleanup; =20 ret =3D 0; @@ -4353,9 +4331,9 @@ qemuDomainRemoveMemoryDevice(virQEMUDriverPtr driver, =20 backendAlias =3D g_strdup_printf("mem%s", mem->info.alias); =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorDelObject(priv->mon, backendAlias, true); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) rc =3D -1; =20 virDomainAuditMemory(vm, oldmem, newmem, "update", rc =3D=3D 0); @@ -4380,7 +4358,7 @@ qemuDomainRemoveMemoryDevice(virQEMUDriverPtr driver, virDomainMemoryDefFree(mem); =20 /* fix the balloon size */ - ignore_value(qemuProcessRefreshBalloonState(driver, vm, QEMU_ASYNC_JOB= _NONE)); + ignore_value(qemuProcessRefreshBalloonState(vm, QEMU_ASYNC_JOB_NONE)); =20 /* decrease the mlock limit after memory unplug if necessary */ ignore_value(qemuDomainAdjustMaxMemLock(vm, false)); @@ -4451,9 +4429,9 @@ qemuDomainRemoveHostDevice(virQEMUDriverPtr driver, =20 detachscsi =3D qemuBuildHostdevSCSIDetachPrepare(hostdev, priv->qe= muCaps); =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); qemuBlockStorageSourceAttachRollback(priv->mon, detachscsi); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; } =20 @@ -4564,9 +4542,9 @@ qemuDomainRemoveNetDevice(virQEMUDriverPtr driver, */ ignore_value(qemuInterfaceStopDevice(net)); =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); if (qemuMonitorRemoveNetdev(priv->mon, hostnet_name) < 0) { - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; virDomainAuditNet(vm, net, NULL, "detach", false); return -1; @@ -4582,7 +4560,7 @@ qemuDomainRemoveNetDevice(virQEMUDriverPtr driver, } } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 if (QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp) @@ -4650,9 +4628,9 @@ qemuDomainRemoveChrDevice(virQEMUDriverPtr driver, return -1; =20 if (monitor) { - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorDetachCharDev(priv->mon, charAlias); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; } =20 @@ -4709,7 +4687,7 @@ qemuDomainRemoveRNGDevice(virQEMUDriverPtr driver, if (!(charAlias =3D qemuAliasChardevFromDevAlias(rng->info.alias))) return -1; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (qemuMonitorDelObject(priv->mon, objAlias, true) < 0) rc =3D -1; @@ -4719,7 +4697,7 @@ qemuDomainRemoveRNGDevice(virQEMUDriverPtr driver, qemuMonitorDetachCharDev(priv->mon, charAlias) < 0) rc =3D -1; =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 if (rng->backend =3D=3D VIR_DOMAIN_RNG_BACKEND_EGD && @@ -4748,8 +4726,7 @@ qemuDomainRemoveRNGDevice(virQEMUDriverPtr driver, =20 =20 static int -qemuDomainRemoveShmemDevice(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainRemoveShmemDevice(virDomainObjPtr vm, virDomainShmemDefPtr shmem) { int rc; @@ -4767,14 +4744,14 @@ qemuDomainRemoveShmemDevice(virQEMUDriverPtr driver, memAlias =3D g_strdup_printf("shmmem-%s", shmem->info.alias); } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (shmem->server.enabled) rc =3D qemuMonitorDetachCharDev(priv->mon, charAlias); else rc =3D qemuMonitorDelObject(priv->mon, memAlias, true); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 virDomainAuditShmem(vm, shmem, "detach", rc =3D=3D 0); @@ -4863,13 +4840,13 @@ qemuDomainRemoveRedirdevDevice(virQEMUDriverPtr dri= ver, if (!(charAlias =3D qemuAliasChardevFromDevAlias(dev->info.alias))) return -1; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); /* DeviceDel from Detach may remove chardev, * so we cannot rely on return status to delete TLS chardevs. */ ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias)); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 if (qemuDomainDelChardevTLSObjects(driver, vm, dev->source, charAlias)= < 0) @@ -5009,7 +4986,7 @@ qemuDomainRemoveDevice(virQEMUDriverPtr driver, return -1; break; case VIR_DOMAIN_DEVICE_SHMEM: - if (qemuDomainRemoveShmemDevice(driver, vm, dev->data.shmem) < 0) + if (qemuDomainRemoveShmemDevice(vm, dev->data.shmem) < 0) return -1; break; case VIR_DOMAIN_DEVICE_INPUT: @@ -5554,9 +5531,9 @@ qemuDomainDetachDeviceChr(virQEMUDriverPtr driver, =20 if (guestfwd) { int rc; - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorRemoveNetdev(priv->mon, tmpChr->info.alias); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) rc =3D -1; =20 if (rc < 0) @@ -5915,8 +5892,7 @@ qemuDomainDetachDeviceLive(virDomainObjPtr vm, =20 =20 static int -qemuDomainRemoveVcpu(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainRemoveVcpu(virDomainObjPtr vm, unsigned int vcpu) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -5927,7 +5903,7 @@ qemuDomainRemoveVcpu(virQEMUDriverPtr driver, virErrorPtr save_error =3D NULL; size_t i; =20 - if (qemuDomainRefreshVcpuInfo(driver, vm, QEMU_ASYNC_JOB_NONE, false) = < 0) + if (qemuDomainRefreshVcpuInfo(vm, QEMU_ASYNC_JOB_NONE, false) < 0) return -1; =20 /* validation requires us to set the expected state prior to calling i= t */ @@ -5961,8 +5937,7 @@ qemuDomainRemoveVcpu(virQEMUDriverPtr driver, =20 =20 void -qemuDomainRemoveVcpuAlias(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuDomainRemoveVcpuAlias(virDomainObjPtr vm, const char *alias) { virDomainVcpuDefPtr vcpu; @@ -5974,7 +5949,7 @@ qemuDomainRemoveVcpuAlias(virQEMUDriverPtr driver, vcpupriv =3D QEMU_DOMAIN_VCPU_PRIVATE(vcpu); =20 if (STREQ_NULLABLE(alias, vcpupriv->alias)) { - qemuDomainRemoveVcpu(driver, vm, i); + qemuDomainRemoveVcpu(vm, i); return; } } @@ -6017,7 +5992,7 @@ qemuDomainHotplugDelVcpu(virQEMUDriverPtr driver, goto cleanup; } =20 - if (qemuDomainRemoveVcpu(driver, vm, vcpu) < 0) + if (qemuDomainRemoveVcpu(vm, vcpu) < 0) goto cleanup; =20 qemuDomainVcpuPersistOrder(vm->def); @@ -6056,7 +6031,7 @@ qemuDomainHotplugAddVcpu(virQEMUDriverPtr driver, goto cleanup; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); =20 if (newhotplug) { rc =3D qemuMonitorAddDeviceArgs(qemuDomainGetMonitor(vm), vcpuprop= s); @@ -6065,7 +6040,7 @@ qemuDomainHotplugAddVcpu(virQEMUDriverPtr driver, rc =3D qemuMonitorSetCPU(qemuDomainGetMonitor(vm), vcpu, true); } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; =20 virDomainAuditVcpu(vm, oldvcpus, oldvcpus + nvcpus, "update", rc =3D= =3D 0); @@ -6077,7 +6052,7 @@ qemuDomainHotplugAddVcpu(virQEMUDriverPtr driver, if (newhotplug) vm->def->individualvcpus =3D true; =20 - if (qemuDomainRefreshVcpuInfo(driver, vm, QEMU_ASYNC_JOB_NONE, false) = < 0) + if (qemuDomainRefreshVcpuInfo(vm, QEMU_ASYNC_JOB_NONE, false) < 0) goto cleanup; =20 /* validation requires us to set the expected state prior to calling i= t */ diff --git a/src/qemu/qemu_hotplug.h b/src/qemu/qemu_hotplug.h index 6287c5b5e8..51af92f840 100644 --- a/src/qemu/qemu_hotplug.h +++ b/src/qemu/qemu_hotplug.h @@ -31,14 +31,12 @@ int qemuDomainChangeEjectableMedia(virQEMUDriverPtr dri= ver, virStorageSourcePtr newsrc, bool force); =20 -void qemuDomainDelTLSObjects(virQEMUDriverPtr driver, - virDomainObjPtr vm, +void qemuDomainDelTLSObjects(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, const char *secAlias, const char *tlsAlias); =20 -int qemuDomainAddTLSObjects(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuDomainAddTLSObjects(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, virJSONValuePtr *secProps, virJSONValuePtr *tlsProps); @@ -52,8 +50,7 @@ int qemuDomainGetTLSObjects(virQEMUCapsPtr qemuCaps, virJSONValuePtr *tlsProps, virJSONValuePtr *secProps); =20 -int qemuDomainAttachControllerDevice(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuDomainAttachControllerDevice(virDomainObjPtr vm, virDomainControllerDefPtr controller); int qemuDomainAttachDeviceDiskLive(virQEMUDriverPtr driver, virDomainObjPtr vm, @@ -81,26 +78,21 @@ int qemuDomainAttachMemory(virQEMUDriverPtr driver, int qemuDomainChangeGraphics(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainGraphicsDefPtr dev); -int qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuDomainChangeGraphicsPasswords(virDomainObjPtr vm, int type, virDomainGraphicsAuthDefPtr auth, const char *defaultPasswd, int asyncJob); -int qemuDomainChangeNet(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuDomainChangeNet(virDomainObjPtr vm, virDomainDeviceDefPtr dev); -int qemuDomainChangeNetLinkState(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuDomainChangeNetLinkState(virDomainObjPtr vm, virDomainNetDefPtr dev, int linkstate); =20 -int qemuDomainAttachInputDevice(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuDomainAttachInputDevice(virDomainObjPtr vm, virDomainInputDefPtr input); =20 -int qemuDomainAttachVsockDevice(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuDomainAttachVsockDevice(virDomainObjPtr vm, virDomainVsockDefPtr vsock); =20 int qemuDomainAttachLease(virQEMUDriverPtr driver, @@ -118,8 +110,7 @@ int qemuDomainDetachDeviceLive(virDomainObjPtr vm, virQEMUDriverPtr driver, bool async); =20 -void qemuDomainRemoveVcpuAlias(virQEMUDriverPtr driver, - virDomainObjPtr vm, +void qemuDomainRemoveVcpuAlias(virDomainObjPtr vm, const char *alias); =20 int @@ -157,6 +148,5 @@ int qemuHotplugAttachDBusVMState(virQEMUDriverPtr drive= r, virDomainObjPtr vm, qemuDomainAsyncJob asyncJob); =20 -int qemuHotplugRemoveDBusVMState(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuHotplugRemoveDBusVMState(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob); diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index a45f87137f..6b2978f745 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -82,21 +82,18 @@ VIR_ENUM_IMPL(virMigrationJobPhase, ); =20 static int -qemuMigrationJobStart(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationJobStart(virDomainObjPtr vm, qemuDomainAsyncJob job, unsigned long apiFlags) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT; =20 static void -qemuMigrationJobSetPhase(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationJobSetPhase(virDomainObjPtr vm, virMigrationJobPhase phase) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 static void -qemuMigrationJobStartPhase(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationJobStartPhase(virDomainObjPtr vm, virMigrationJobPhase phase) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 @@ -110,8 +107,7 @@ qemuMigrationJobIsActive(virDomainObjPtr vm, ATTRIBUTE_NONNULL(1); =20 static void -qemuMigrationJobFinish(virQEMUDriverPtr driver, - virDomainObjPtr obj) +qemuMigrationJobFinish(virDomainObjPtr obj) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 static void @@ -424,8 +420,7 @@ qemuMigrationDstStartNBDServer(virQEMUDriverPtr driver, devicename =3D diskAlias; } =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_IN) < = 0) + if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_IN= ) < 0) goto cleanup; =20 if (port =3D=3D 0) { @@ -441,7 +436,7 @@ qemuMigrationDstStartNBDServer(virQEMUDriverPtr driver, =20 if (qemuMonitorNBDServerAdd(priv->mon, devicename, exportname, tru= e, NULL) < 0) goto exit_monitor; - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; } =20 @@ -454,14 +449,13 @@ qemuMigrationDstStartNBDServer(virQEMUDriverPtr drive= r, return ret; =20 exit_monitor: - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); goto cleanup; } =20 =20 static int -qemuMigrationDstStopNBDServer(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationDstStopNBDServer(virDomainObjPtr vm, qemuMigrationCookiePtr mig) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -469,13 +463,12 @@ qemuMigrationDstStopNBDServer(virQEMUDriverPtr driver, if (!mig->nbd) return 0; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_IN) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_IN) < = 0) return -1; =20 if (qemuMonitorNBDServerStop(priv->mon) < 0) VIR_WARN("Unable to stop NBD server"); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 virPortAllocatorRelease(priv->nbdPort); @@ -646,8 +639,7 @@ qemuMigrationSrcNBDCopyCancelled(virDomainObjPtr vm, * -1 on error or when job failed and failNoJob is true. */ static int -qemuMigrationSrcNBDCopyCancelOne(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationSrcNBDCopyCancelOne(virDomainObjPtr vm, virDomainDiskDefPtr disk, qemuBlockJobDataPtr job, bool failNoJob, @@ -669,12 +661,12 @@ qemuMigrationSrcNBDCopyCancelOne(virQEMUDriverPtr dri= ver, return 1; } =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 rv =3D qemuMonitorBlockJobCancel(priv->mon, job->name); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rv < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rv < 0) return -1; =20 return 0; @@ -683,7 +675,6 @@ qemuMigrationSrcNBDCopyCancelOne(virQEMUDriverPtr drive= r, =20 /** * qemuMigrationSrcNBDCopyCancel: - * @driver: qemu driver * @vm: domain * @check: if true report an error when some of the mirrors fails * @@ -695,8 +686,7 @@ qemuMigrationSrcNBDCopyCancelOne(virQEMUDriverPtr drive= r, * Returns 0 on success, -1 otherwise. */ static int -qemuMigrationSrcNBDCopyCancel(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationSrcNBDCopyCancel(virDomainObjPtr vm, bool check, qemuDomainAsyncJob asyncJob, virConnectPtr dconn) @@ -723,7 +713,7 @@ qemuMigrationSrcNBDCopyCancel(virQEMUDriverPtr driver, continue; } =20 - rv =3D qemuMigrationSrcNBDCopyCancelOne(driver, vm, disk, job, + rv =3D qemuMigrationSrcNBDCopyCancelOne(vm, disk, job, check, asyncJob); if (rv !=3D 0) { if (rv < 0) { @@ -766,7 +756,7 @@ qemuMigrationSrcNBDCopyCancel(virQEMUDriverPtr driver, if (!diskPriv->migrSource) continue; =20 - qemuBlockStorageSourceDetachOneBlockdev(driver, vm, asyncJob, + qemuBlockStorageSourceDetachOneBlockdev(vm, asyncJob, diskPriv->migrSource); virObjectUnref(diskPriv->migrSource); diskPriv->migrSource =3D NULL; @@ -818,8 +808,7 @@ qemuMigrationSrcNBDStorageCopyBlockdevPrepareSource(vir= DomainDiskDefPtr disk, =20 =20 static int -qemuMigrationSrcNBDStorageCopyBlockdev(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationSrcNBDStorageCopyBlockdev(virDomainObjPtr vm, virDomainDiskDefPtr disk, const char *jobname, const char *sourcename, @@ -847,8 +836,7 @@ qemuMigrationSrcNBDStorageCopyBlockdev(virQEMUDriverPtr= driver, false))) return -1; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_OUT) <= 0) return -1; =20 mon_ret =3D qemuBlockStorageSourceAttachApply(qemuDomainGetMonitor(vm)= , data); @@ -861,7 +849,7 @@ qemuMigrationSrcNBDStorageCopyBlockdev(virQEMUDriverPtr= driver, if (mon_ret !=3D 0) qemuBlockStorageSourceAttachRollback(qemuDomainGetMonitor(vm), dat= a); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || mon_ret < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || mon_ret < 0) return -1; =20 diskPriv->migrSource =3D g_steal_pointer(©src); @@ -871,8 +859,7 @@ qemuMigrationSrcNBDStorageCopyBlockdev(virQEMUDriverPtr= driver, =20 =20 static int -qemuMigrationSrcNBDStorageCopyDriveMirror(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationSrcNBDStorageCopyDriveMirror(virDomainObjPtr vm, const char *diskAlias, const char *host, int port, @@ -890,15 +877,14 @@ qemuMigrationSrcNBDStorageCopyDriveMirror(virQEMUDriv= erPtr driver, diskAlias); } =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_OUT) <= 0) return -1; =20 mon_ret =3D qemuMonitorDriveMirror(qemuDomainGetMonitor(vm), diskAlias, nbd_dest, "raw", mirror_speed, 0, 0, mirror_shallow, t= rue); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || mon_ret < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || mon_ret < 0) return -1; =20 return 0; @@ -906,8 +892,7 @@ qemuMigrationSrcNBDStorageCopyDriveMirror(virQEMUDriver= Ptr driver, =20 =20 static int -qemuMigrationSrcNBDStorageCopyOne(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationSrcNBDStorageCopyOne(virDomainObjPtr vm, virDomainDiskDefPtr disk, const char *host, int port, @@ -946,15 +931,14 @@ qemuMigrationSrcNBDStorageCopyOne(virQEMUDriverPtr dr= iver, =20 if (flags & VIR_MIGRATE_TLS || virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) { - rc =3D qemuMigrationSrcNBDStorageCopyBlockdev(driver, vm, - disk, jobname, + rc =3D qemuMigrationSrcNBDStorageCopyBlockdev(vm, disk, jobname, sourcename, persistjob, host, port, mirror_speed, mirror_shallow, tlsAlias); } else { - rc =3D qemuMigrationSrcNBDStorageCopyDriveMirror(driver, vm, diskA= lias, + rc =3D qemuMigrationSrcNBDStorageCopyDriveMirror(vm, diskAlias, host, port, mirror_speed, mirror_shallow); @@ -1037,7 +1021,7 @@ qemuMigrationSrcNBDStorageCopy(virQEMUDriverPtr drive= r, if (!qemuMigrationAnyCopyDisk(disk, nmigrate_disks, migrate_disks)) continue; =20 - if (qemuMigrationSrcNBDStorageCopyOne(driver, vm, disk, host, port, + if (qemuMigrationSrcNBDStorageCopyOne(vm, disk, host, port, mirror_speed, mirror_shallow, tlsAlias, flags) < 0) return -1; @@ -1070,7 +1054,7 @@ qemuMigrationSrcNBDStorageCopy(virQEMUDriverPtr drive= r, return -1; } =20 - qemuMigrationSrcFetchMirrorStats(driver, vm, QEMU_ASYNC_JOB_MIGRATION_= OUT, + qemuMigrationSrcFetchMirrorStats(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, jobPriv->current); =20 /* Okay, all disks are ready. Modify migrate_flags */ @@ -1492,8 +1476,7 @@ qemuMigrationUpdateJobType(qemuDomainJobInfoPtr jobIn= fo) =20 =20 int -qemuMigrationAnyFetchStats(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationAnyFetchStats(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, qemuDomainJobInfoPtr jobInfo, char **error) @@ -1502,12 +1485,12 @@ qemuMigrationAnyFetchStats(virQEMUDriverPtr driver, qemuMonitorMigrationStats stats; int rv; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 rv =3D qemuMonitorGetMigrationStats(priv->mon, &stats, error); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rv < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rv < 0) return -1; =20 jobInfo->stats.mig =3D stats; @@ -1546,8 +1529,7 @@ qemuMigrationJobName(virDomainObjPtr vm) =20 =20 static int -qemuMigrationJobCheckStatus(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationJobCheckStatus(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -1559,7 +1541,7 @@ qemuMigrationJobCheckStatus(virQEMUDriverPtr driver, =20 if (!events || jobInfo->stats.mig.status =3D=3D QEMU_MONITOR_MIGRATION_STATUS_ERR= OR) { - if (qemuMigrationAnyFetchStats(driver, vm, asyncJob, jobInfo, &err= or) < 0) + if (qemuMigrationAnyFetchStats(vm, asyncJob, jobInfo, &error) < 0) return -1; } =20 @@ -1615,8 +1597,7 @@ enum qemuMigrationCompletedFlags { * -2 something else failed, we need to cancel migration. */ static int -qemuMigrationAnyCompleted(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationAnyCompleted(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, virConnectPtr dconn, unsigned int flags) @@ -1626,7 +1607,7 @@ qemuMigrationAnyCompleted(virQEMUDriverPtr driver, qemuDomainJobInfoPtr jobInfo =3D jobPriv->current; int pauseReason; =20 - if (qemuMigrationJobCheckStatus(driver, vm, asyncJob) < 0) + if (qemuMigrationJobCheckStatus(vm, asyncJob) < 0) goto error; =20 /* This flag should only be set when run on src host */ @@ -1707,8 +1688,7 @@ qemuMigrationAnyCompleted(virQEMUDriverPtr driver, * QEMU reports failed migration. */ static int -qemuMigrationSrcWaitForCompletion(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationSrcWaitForCompletion(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, virConnectPtr dconn, unsigned int flags) @@ -1721,7 +1701,7 @@ qemuMigrationSrcWaitForCompletion(virQEMUDriverPtr dr= iver, =20 jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_MIGRATING; =20 - while ((rv =3D qemuMigrationAnyCompleted(driver, vm, asyncJob, + while ((rv =3D qemuMigrationAnyCompleted(vm, asyncJob, dconn, flags)) !=3D 1) { if (rv < 0) return rv; @@ -1743,7 +1723,7 @@ qemuMigrationSrcWaitForCompletion(virQEMUDriverPtr dr= iver, } =20 if (events) - ignore_value(qemuMigrationAnyFetchStats(driver, vm, asyncJob, jobI= nfo, NULL)); + ignore_value(qemuMigrationAnyFetchStats(vm, asyncJob, jobInfo, NUL= L)); =20 qemuDomainJobInfoUpdateTime(jobInfo); qemuDomainJobInfoUpdateDowntime(jobInfo); @@ -1760,8 +1740,7 @@ qemuMigrationSrcWaitForCompletion(virQEMUDriverPtr dr= iver, =20 =20 static int -qemuMigrationDstWaitForCompletion(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationDstWaitForCompletion(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, bool postcopy) { @@ -1777,7 +1756,7 @@ qemuMigrationDstWaitForCompletion(virQEMUDriverPtr dr= iver, if (postcopy) flags =3D QEMU_MIGRATION_COMPLETED_POSTCOPY; =20 - while ((rv =3D qemuMigrationAnyCompleted(driver, vm, asyncJob, + while ((rv =3D qemuMigrationAnyCompleted(vm, asyncJob, NULL, flags)) !=3D 1) { if (rv < 0 || virDomainObjWait(vm) < 0) return -1; @@ -1788,8 +1767,7 @@ qemuMigrationDstWaitForCompletion(virQEMUDriverPtr dr= iver, =20 =20 static int -qemuMigrationSrcGraphicsRelocate(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationSrcGraphicsRelocate(virDomainObjPtr vm, qemuMigrationCookiePtr cookie, const char *graphicsuri) { @@ -1871,14 +1849,13 @@ qemuMigrationSrcGraphicsRelocate(virQEMUDriverPtr d= river, goto cleanup; } =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_OUT) =3D= =3D 0) { + if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_OUT) = =3D=3D 0) { qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; =20 ret =3D qemuMonitorGraphicsRelocate(priv->mon, type, listenAddress, port, tlsPort, tlsSubject); jobPriv->spiceMigration =3D !ret; - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; } =20 @@ -1963,8 +1940,7 @@ qemuMigrationDstGetURI(const char *migrateFrom, =20 =20 int -qemuMigrationDstRun(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationDstRun(virDomainObjPtr vm, const char *uri, qemuDomainAsyncJob asyncJob) { @@ -1973,7 +1949,7 @@ qemuMigrationDstRun(virQEMUDriverPtr driver, =20 VIR_DEBUG("Setting up incoming migration with URI %s", uri); =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 rv =3D qemuMonitorSetDBusVMStateIdList(priv->mon, @@ -1984,7 +1960,7 @@ qemuMigrationDstRun(virQEMUDriverPtr driver, rv =3D qemuMonitorMigrateIncoming(priv->mon, uri); =20 exit_monitor: - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rv < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rv < 0) return -1; =20 if (asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_IN) { @@ -1992,7 +1968,7 @@ qemuMigrationDstRun(virQEMUDriverPtr driver, return 0; } =20 - if (qemuMigrationDstWaitForCompletion(driver, vm, asyncJob, false) < 0) + if (qemuMigrationDstWaitForCompletion(vm, asyncJob, false) < 0) return -1; =20 return 0; @@ -2008,9 +1984,8 @@ qemuMigrationDstRun(virQEMUDriverPtr driver, static void qemuMigrationSrcCleanup(virDomainObjPtr vm, virConnectPtr conn, - void *opaque) + void *opaque G_GNUC_UNUSED) { - virQEMUDriverPtr driver =3D opaque; qemuDomainObjPrivatePtr priv =3D vm->privateData; qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; =20 @@ -2030,17 +2005,17 @@ qemuMigrationSrcCleanup(virDomainObjPtr vm, switch ((virMigrationJobPhase) priv->job.phase) { case VIR_MIGRATION_PHASE_BEGIN3: /* just forget we were about to migrate */ - qemuDomainObjDiscardAsyncJob(driver, vm); + qemuDomainObjDiscardAsyncJob(vm); break; =20 case VIR_MIGRATION_PHASE_PERFORM3_DONE: VIR_WARN("Migration of domain %s finished but we don't know if the" " domain was successfully started on destination or not", vm->def->name); - qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags); /* clear the job and let higher levels decide what to do */ - qemuDomainObjDiscardAsyncJob(driver, vm); + qemuDomainObjDiscardAsyncJob(vm); break; =20 case VIR_MIGRATION_PHASE_PERFORM3: @@ -2091,7 +2066,7 @@ qemuMigrationSrcBeginPhase(virQEMUDriverPtr driver, * change protection. */ if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_OUT) - qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_BEGIN3); + qemuMigrationJobSetPhase(vm, VIR_MIGRATION_PHASE_BEGIN3); =20 if (!qemuMigrationSrcIsAllowed(driver, vm, true, flags)) return NULL; @@ -2233,12 +2208,12 @@ qemuMigrationSrcBegin(virConnectPtr conn, qemuDomainAsyncJob asyncJob; =20 if ((flags & VIR_MIGRATE_CHANGE_PROTECTION)) { - if (qemuMigrationJobStart(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + if (qemuMigrationJobStart(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, flags) < 0) goto cleanup; asyncJob =3D QEMU_ASYNC_JOB_MIGRATION_OUT; } else { - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; asyncJob =3D QEMU_ASYNC_JOB_NONE; } @@ -2252,7 +2227,7 @@ qemuMigrationSrcBegin(virConnectPtr conn, * We don't want to require them on the destination. */ if (!(flags & VIR_MIGRATE_OFFLINE) && - qemuProcessRefreshDisks(driver, vm, asyncJob) < 0) + qemuProcessRefreshDisks(vm, asyncJob) < 0) goto endjob; =20 if (!(xml =3D qemuMigrationSrcBeginPhase(driver, vm, xmlin, dname, @@ -2281,9 +2256,9 @@ qemuMigrationSrcBegin(virConnectPtr conn, =20 endjob: if (flags & VIR_MIGRATE_CHANGE_PROTECTION) - qemuMigrationJobFinish(driver, vm); + qemuMigrationJobFinish(vm); else - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); goto cleanup; } =20 @@ -2308,7 +2283,7 @@ qemuMigrationDstPrepareCleanup(virQEMUDriverPtr drive= r, =20 if (!qemuMigrationJobIsActive(vm, QEMU_ASYNC_JOB_MIGRATION_IN)) return; - qemuDomainObjDiscardAsyncJob(driver, vm); + qemuDomainObjDiscardAsyncJob(vm); } =20 static qemuProcessIncomingDefPtr @@ -2547,10 +2522,9 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, !!(flags & VIR_MIGRATE_NON_SHARED= _INC)) < 0) goto cleanup; =20 - if (qemuMigrationJobStart(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, - flags) < 0) + if (qemuMigrationJobStart(vm, QEMU_ASYNC_JOB_MIGRATION_IN, flags) < 0) goto cleanup; - qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_PREPARE); + qemuMigrationJobSetPhase(vm, VIR_MIGRATION_PHASE_PREPARE); =20 /* Domain starts inactive, even if the domain XML had an id field. */ vm->def->id =3D -1; @@ -2607,7 +2581,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, goto stopjob; } =20 - if (qemuMigrationParamsCheck(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, + if (qemuMigrationParamsCheck(vm, QEMU_ASYNC_JOB_MIGRATION_IN, migParams, mig->caps->automatic) < 0) goto stopjob; =20 @@ -2624,7 +2598,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, goto stopjob; } =20 - if (qemuMigrationParamsApply(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, + if (qemuMigrationParamsApply(vm, QEMU_ASYNC_JOB_MIGRATION_IN, migParams) < 0) goto stopjob; =20 @@ -2661,7 +2635,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, } =20 if (incoming->deferredURI && - qemuMigrationDstRun(driver, vm, incoming->deferredURI, + qemuMigrationDstRun(vm, incoming->deferredURI, QEMU_ASYNC_JOB_MIGRATION_IN) < 0) goto stopjob; =20 @@ -2731,7 +2705,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, return ret; =20 stopjob: - qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, + qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_MIGRATION_IN, jobPriv->migParams, priv->job.apiFlags); =20 if (stopProcess) { @@ -2743,7 +2717,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, QEMU_ASYNC_JOB_MIGRATION_IN, stopFlags); } =20 - qemuMigrationJobFinish(driver, vm); + qemuMigrationJobFinish(vm); goto cleanup; } =20 @@ -3011,7 +2985,7 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, =20 virCheckFlags(QEMU_MIGRATION_FLAGS, -1); =20 - qemuMigrationJobSetPhase(driver, vm, retcode =3D=3D 0 + qemuMigrationJobSetPhase(vm, retcode =3D=3D 0 ? VIR_MIGRATION_PHASE_CONFIRM3 : VIR_MIGRATION_PHASE_CONFIRM3_CANCELLED); =20 @@ -3035,7 +3009,7 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, */ if (virDomainObjGetState(vm, &reason) =3D=3D VIR_DOMAIN_PAUSED && reason =3D=3D VIR_DOMAIN_PAUSED_POSTCOPY && - qemuMigrationAnyFetchStats(driver, vm, QEMU_ASYNC_JOB_MIGRATIO= N_OUT, + qemuMigrationAnyFetchStats(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, jobInfo, NULL) < 0) VIR_WARN("Could not refresh migration statistics"); =20 @@ -3074,8 +3048,7 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, virErrorPreserveLast(&orig_err); =20 /* cancel any outstanding NBD jobs */ - qemuMigrationSrcNBDCopyCancel(driver, vm, false, - QEMU_ASYNC_JOB_MIGRATION_OUT, NULL); + qemuMigrationSrcNBDCopyCancel(vm, false, QEMU_ASYNC_JOB_MIGRATION_= OUT, NULL); =20 virErrorRestore(&orig_err); =20 @@ -3085,7 +3058,7 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, else qemuMigrationSrcRestoreDomainState(driver, vm); =20 - qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags); =20 if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) @@ -3117,7 +3090,7 @@ qemuMigrationSrcConfirm(virQEMUDriverPtr driver, else phase =3D VIR_MIGRATION_PHASE_CONFIRM3; =20 - qemuMigrationJobStartPhase(driver, vm, phase); + qemuMigrationJobStartPhase(vm, phase); virCloseCallbacksUnset(driver->closeCallbacks, vm, qemuMigrationSrcCleanup); =20 @@ -3125,7 +3098,7 @@ qemuMigrationSrcConfirm(virQEMUDriverPtr driver, cookiein, cookieinlen, flags, cancelled); =20 - qemuMigrationJobFinish(driver, vm); + qemuMigrationJobFinish(vm); if (!virDomainObjIsActive(vm)) { if (!cancelled && ret =3D=3D 0 && flags & VIR_MIGRATE_UNDEFINE_SOU= RCE) { virDomainDeleteConfig(cfg->configDir, cfg->autostartDir, vm); @@ -3411,20 +3384,19 @@ qemuMigrationSrcConnect(virQEMUDriverPtr driver, =20 =20 static int -qemuMigrationSrcContinue(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationSrcContinue(virDomainObjPtr vm, qemuMonitorMigrationStatus status, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 ret =3D qemuMonitorMigrateContinue(priv->mon, status); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 return ret; @@ -3443,18 +3415,18 @@ qemuMigrationSetDBusVMState(virQEMUDriverPtr driver, if (qemuHotplugAttachDBusVMState(driver, vm, QEMU_ASYNC_JOB_NONE) = < 0) return -1; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, QEMU_ASYNC_JOB_NONE= ) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_NONE) < 0) return -1; =20 rv =3D qemuMonitorSetDBusVMStateIdList(priv->mon, (const char **)priv->dbusVMSt= ateIds); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) rv =3D -1; =20 return rv; } else { - if (qemuHotplugRemoveDBusVMState(driver, vm, QEMU_ASYNC_JOB_NONE) = < 0) + if (qemuHotplugRemoveDBusVMState(vm, QEMU_ASYNC_JOB_NONE) < 0) return -1; } =20 @@ -3554,10 +3526,10 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, if (!mig) goto error; =20 - if (qemuMigrationSrcGraphicsRelocate(driver, vm, mig, graphicsuri) < 0) + if (qemuMigrationSrcGraphicsRelocate(vm, mig, graphicsuri) < 0) VIR_WARN("unable to provide data for graphics client relocation"); =20 - if (qemuMigrationParamsCheck(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + if (qemuMigrationParamsCheck(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, migParams, mig->caps->automatic) < 0) goto error; =20 @@ -3585,7 +3557,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, migrate_speed * 1024 * 1024) < 0) goto error; =20 - if (qemuMigrationParamsApply(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + if (qemuMigrationParamsApply(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, migParams) < 0) goto error; =20 @@ -3632,8 +3604,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, goto error; } =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_OUT) <= 0) goto error; =20 if (priv->job.abortJob) { @@ -3689,7 +3660,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, break; } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) goto error; =20 /* From this point onwards we *must* call cancel to abort the @@ -3713,8 +3684,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, if (flags & VIR_MIGRATE_POSTCOPY) waitFlags |=3D QEMU_MIGRATION_COMPLETED_POSTCOPY; =20 - rc =3D qemuMigrationSrcWaitForCompletion(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_OUT, + rc =3D qemuMigrationSrcWaitForCompletion(vm, QEMU_ASYNC_JOB_MIGRATION_= OUT, dconn, waitFlags); if (rc =3D=3D -2) { goto error; @@ -3736,7 +3706,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, } =20 if (mig->nbd && - qemuMigrationSrcNBDCopyCancel(driver, vm, true, + qemuMigrationSrcNBDCopyCancel(vm, true, QEMU_ASYNC_JOB_MIGRATION_OUT, dconn) < 0) goto error; @@ -3746,15 +3716,13 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, * end of the migration. */ if (jobPriv->current->status =3D=3D QEMU_DOMAIN_JOB_STATUS_PAUSED) { - if (qemuMigrationSrcContinue(driver, vm, - QEMU_MONITOR_MIGRATION_STATUS_PRE_SWI= TCHOVER, + if (qemuMigrationSrcContinue(vm, QEMU_MONITOR_MIGRATION_STATUS_PRE= _SWITCHOVER, QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) goto error; =20 waitFlags ^=3D QEMU_MIGRATION_COMPLETED_PRE_SWITCHOVER; =20 - rc =3D qemuMigrationSrcWaitForCompletion(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_OU= T, + rc =3D qemuMigrationSrcWaitForCompletion(vm, QEMU_ASYNC_JOB_MIGRAT= ION_OUT, dconn, waitFlags); if (rc =3D=3D -2) { goto error; @@ -3806,15 +3774,14 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, if (virDomainObjIsActive(vm)) { if (cancel && jobPriv->current->status !=3D QEMU_DOMAIN_JOB_STATUS_QEMU_COMP= LETED && - qemuDomainObjEnterMonitorAsync(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_OUT) = =3D=3D 0) { + qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_OU= T) =3D=3D 0) { qemuMonitorMigrateCancel(priv->mon); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); } =20 /* cancel any outstanding NBD jobs */ if (mig && mig->nbd) - qemuMigrationSrcNBDCopyCancel(driver, vm, false, + qemuMigrationSrcNBDCopyCancel(vm, false, QEMU_ASYNC_JOB_MIGRATION_OUT, dconn); =20 @@ -3828,7 +3795,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, goto cleanup; =20 exit_monitor: - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); goto error; } =20 @@ -4063,7 +4030,7 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr dr= iver, * until the migration is complete. */ VIR_DEBUG("Perform %p", sconn); - qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_PERFORM2); + qemuMigrationJobSetPhase(vm, VIR_MIGRATION_PHASE_PERFORM2); if (flags & VIR_MIGRATE_TUNNELLED) ret =3D qemuMigrationSrcPerformTunnel(driver, vm, st, NULL, NULL, 0, NULL, NULL, @@ -4301,7 +4268,7 @@ qemuMigrationSrcPerformPeer2Peer3(virQEMUDriverPtr dr= iver, * confirm migration completion. */ VIR_DEBUG("Perform3 %p uri=3D%s", sconn, NULLSTR(uri)); - qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_PERFORM3); + qemuMigrationJobSetPhase(vm, VIR_MIGRATION_PHASE_PERFORM3); VIR_FREE(cookiein); cookiein =3D g_steal_pointer(&cookieout); cookieinlen =3D cookieoutlen; @@ -4326,7 +4293,7 @@ qemuMigrationSrcPerformPeer2Peer3(virQEMUDriverPtr dr= iver, if (ret < 0) { virErrorPreserveLast(&orig_err); } else { - qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_PERFORM3_= DONE); + qemuMigrationJobSetPhase(vm, VIR_MIGRATION_PHASE_PERFORM3_DONE); } =20 /* If Perform returns < 0, then we need to cancel the VM @@ -4666,8 +4633,7 @@ qemuMigrationSrcPerformJob(virQEMUDriverPtr driver, qemuDomainObjPrivatePtr priv =3D vm->privateData; qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; =20 - if (qemuMigrationJobStart(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, - flags) < 0) + if (qemuMigrationJobStart(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, flags) < 0) goto cleanup; =20 if (!(flags & VIR_MIGRATE_OFFLINE) && virDomainObjCheckActive(vm) < 0) @@ -4690,7 +4656,7 @@ qemuMigrationSrcPerformJob(virQEMUDriverPtr driver, migParams, flags, dname, re= source, &v3proto); } else { - qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_PERFORM2); + qemuMigrationJobSetPhase(vm, VIR_MIGRATION_PHASE_PERFORM2); ret =3D qemuMigrationSrcPerformNative(driver, vm, persist_xml, uri= , cookiein, cookieinlen, cookieout, cookieoutlen, flags, resource, NULL, NULL, 0= , NULL, @@ -4721,12 +4687,12 @@ qemuMigrationSrcPerformJob(virQEMUDriverPtr driver, * here */ if (!v3proto && ret < 0) - qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags); =20 qemuMigrationSrcRestoreDomainState(driver, vm); =20 - qemuMigrationJobFinish(driver, vm); + qemuMigrationJobFinish(vm); if (!virDomainObjIsActive(vm) && ret =3D=3D 0) { if (flags & VIR_MIGRATE_UNDEFINE_SOURCE) { virDomainDeleteConfig(cfg->configDir, cfg->autostartDir, vm); @@ -4768,14 +4734,14 @@ qemuMigrationSrcPerformPhase(virQEMUDriverPtr drive= r, =20 /* If we didn't start the job in the begin phase, start it now. */ if (!(flags & VIR_MIGRATE_CHANGE_PROTECTION)) { - if (qemuMigrationJobStart(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + if (qemuMigrationJobStart(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, flags) < 0) return ret; } else if (!qemuMigrationJobIsActive(vm, QEMU_ASYNC_JOB_MIGRATION_OUT)= ) { return ret; } =20 - qemuMigrationJobStartPhase(driver, vm, VIR_MIGRATION_PHASE_PERFORM3); + qemuMigrationJobStartPhase(vm, VIR_MIGRATION_PHASE_PERFORM3); virCloseCallbacksUnset(driver->closeCallbacks, vm, qemuMigrationSrcCleanup); =20 @@ -4789,7 +4755,7 @@ qemuMigrationSrcPerformPhase(virQEMUDriverPtr driver, goto endjob; } =20 - qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_PERFORM3_DONE= ); + qemuMigrationJobSetPhase(vm, VIR_MIGRATION_PHASE_PERFORM3_DONE); =20 if (virCloseCallbacksSet(driver->closeCallbacks, vm, conn, qemuMigrationSrcCleanup) < 0) @@ -4797,9 +4763,9 @@ qemuMigrationSrcPerformPhase(virQEMUDriverPtr driver, =20 endjob: if (ret < 0) { - qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags); - qemuMigrationJobFinish(driver, vm); + qemuMigrationJobFinish(vm); } else { qemuMigrationJobContinue(vm); } @@ -5021,7 +4987,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, =20 ignore_value(virTimeMillisNow(&timeReceived)); =20 - qemuMigrationJobStartPhase(driver, vm, + qemuMigrationJobStartPhase(vm, v3proto ? VIR_MIGRATION_PHASE_FINISH3 : VIR_MIGRATION_PHASE_FINISH2); =20 @@ -5050,7 +5016,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, /* Check for a possible error on the monitor in case Finish was ca= lled * earlier than monitor EOF handler got a chance to process the er= ror */ - qemuDomainCheckMonitor(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN); + qemuDomainCheckMonitor(vm, QEMU_ASYNC_JOB_MIGRATION_IN); goto endjob; } =20 @@ -5067,7 +5033,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, if (mig->network && qemuMigrationDstOPDRelocate(driver, vm, mig) < 0) VIR_WARN("unable to provide network data for relocation"); =20 - if (qemuMigrationDstStopNBDServer(driver, vm, mig) < 0) + if (qemuMigrationDstStopNBDServer(vm, mig) < 0) goto endjob; =20 if (qemuRefreshVirtioChannelState(driver, vm, @@ -5099,8 +5065,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, /* We need to wait for QEMU to process all data sent by the source * before starting guest CPUs. */ - if (qemuMigrationDstWaitForCompletion(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_IN, + if (qemuMigrationDstWaitForCompletion(vm, QEMU_ASYNC_JOB_MIGRATION_IN, !!(flags & VIR_MIGRATE_POSTCOPY)= ) < 0) { /* There's not much we can do for v2 protocol since the * original domain on the source host is already gone. @@ -5168,8 +5133,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, } =20 if (inPostCopy) { - if (qemuMigrationDstWaitForCompletion(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_IN, + if (qemuMigrationDstWaitForCompletion(vm, QEMU_ASYNC_JOB_MIGRATION= _IN, false) < 0) { goto endjob; } @@ -5250,10 +5214,10 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, g_clear_pointer(&jobPriv->completed, qemuDomainJobInfoFree); } =20 - qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, + qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_MIGRATION_IN, jobPriv->migParams, priv->job.apiFlags); =20 - qemuMigrationJobFinish(driver, vm); + qemuMigrationJobFinish(vm); if (!virDomainObjIsActive(vm)) qemuDomainRemoveInactiveJob(driver, vm); =20 @@ -5306,16 +5270,16 @@ qemuMigrationSrcToFile(virQEMUDriverPtr driver, vir= DomainObjPtr vm, QEMU_DOMAIN_MIG_BANDWIDTH_MAX * 1024= * 1024) < 0) return -1; =20 - if (qemuMigrationParamsApply(driver, vm, asyncJob, migParams) < 0) + if (qemuMigrationParamsApply(vm, asyncJob, migParams) < 0) return -1; =20 priv->migMaxBandwidth =3D QEMU_DOMAIN_MIG_BANDWIDTH_MAX; } else { - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) =3D=3D 0)= { + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) =3D=3D 0) { qemuMonitorSetMigrationSpeed(priv->mon, QEMU_DOMAIN_MIG_BANDWIDTH_MAX); priv->migMaxBandwidth =3D QEMU_DOMAIN_MIG_BANDWIDTH_MAX; - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; } } @@ -5338,7 +5302,7 @@ qemuMigrationSrcToFile(virQEMUDriverPtr driver, virDo= mainObjPtr vm, compressor ? pipeFD[1] : fd) < 0) goto cleanup; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; =20 if (!compressor) { @@ -5353,11 +5317,11 @@ qemuMigrationSrcToFile(virQEMUDriverPtr driver, vir= DomainObjPtr vm, if (virSetCloseExec(pipeFD[1]) < 0) { virReportSystemError(errno, "%s", _("Unable to set cloexec flag")); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); goto cleanup; } if (virCommandRunAsync(compressor, NULL) < 0) { - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); goto cleanup; } rc =3D qemuMonitorMigrateToFd(priv->mon, @@ -5367,21 +5331,21 @@ qemuMigrationSrcToFile(virQEMUDriverPtr driver, vir= DomainObjPtr vm, VIR_CLOSE(pipeFD[1]) < 0) VIR_WARN("failed to close intermediate pipe"); } - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; if (rc < 0) goto cleanup; =20 - rc =3D qemuMigrationSrcWaitForCompletion(driver, vm, asyncJob, NULL, 0= ); + rc =3D qemuMigrationSrcWaitForCompletion(vm, asyncJob, NULL, 0); =20 if (rc < 0) { if (rc =3D=3D -2) { virErrorPreserveLast(&orig_err); virCommandAbort(compressor); if (virDomainObjIsActive(vm) && - qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) =3D= =3D 0) { + qemuDomainObjEnterMonitorAsync(vm, asyncJob) =3D=3D 0) { qemuMonitorMigrateCancel(priv->mon); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); } } goto cleanup; @@ -5403,12 +5367,12 @@ qemuMigrationSrcToFile(virQEMUDriverPtr driver, vir= DomainObjPtr vm, if (qemuMigrationParamsSetULL(migParams, QEMU_MIGRATION_PARAM_MAX_BANDWID= TH, saveMigBandwidth * 1024 * 1024) = =3D=3D 0) - ignore_value(qemuMigrationParamsApply(driver, vm, asyncJob, + ignore_value(qemuMigrationParamsApply(vm, asyncJob, migParams)); } else { - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) =3D= =3D 0) { + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) =3D=3D 0) { qemuMonitorSetMigrationSpeed(priv->mon, saveMigBandwidth); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); } } priv->migMaxBandwidth =3D saveMigBandwidth; @@ -5428,8 +5392,7 @@ qemuMigrationSrcToFile(virQEMUDriverPtr driver, virDo= mainObjPtr vm, =20 =20 int -qemuMigrationSrcCancel(virQEMUDriverPtr driver, - virDomainObjPtr vm) +qemuMigrationSrcCancel(virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; bool storage =3D false; @@ -5438,9 +5401,9 @@ qemuMigrationSrcCancel(virQEMUDriverPtr driver, VIR_DEBUG("Canceling unfinished outgoing migration of domain %s", vm->def->name); =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ignore_value(qemuMonitorMigrateCancel(priv->mon)); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 for (i =3D 0; i < vm->def->ndisks; i++) { @@ -5461,7 +5424,7 @@ qemuMigrationSrcCancel(virQEMUDriverPtr driver, } =20 if (storage && - qemuMigrationSrcNBDCopyCancel(driver, vm, false, + qemuMigrationSrcNBDCopyCancel(vm, false, QEMU_ASYNC_JOB_NONE, NULL) < 0) return -1; =20 @@ -5470,8 +5433,7 @@ qemuMigrationSrcCancel(virQEMUDriverPtr driver, =20 =20 static int -qemuMigrationJobStart(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationJobStart(virDomainObjPtr vm, qemuDomainAsyncJob job, unsigned long apiFlags) { @@ -5490,7 +5452,7 @@ qemuMigrationJobStart(virQEMUDriverPtr driver, JOB_MASK(QEMU_JOB_MIGRATION_OP); } =20 - if (qemuDomainObjBeginAsyncJob(driver, vm, job, op, apiFlags) < 0) + if (qemuDomainObjBeginAsyncJob(vm, job, op, apiFlags) < 0) return -1; =20 jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION; @@ -5500,8 +5462,7 @@ qemuMigrationJobStart(virQEMUDriverPtr driver, } =20 static void -qemuMigrationJobSetPhase(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationJobSetPhase(virDomainObjPtr vm, virMigrationJobPhase phase) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -5513,15 +5474,14 @@ qemuMigrationJobSetPhase(virQEMUDriverPtr driver, return; } =20 - qemuDomainObjSetJobPhase(driver, vm, phase); + qemuDomainObjSetJobPhase(vm, phase); } =20 static void -qemuMigrationJobStartPhase(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationJobStartPhase(virDomainObjPtr vm, virMigrationJobPhase phase) { - qemuMigrationJobSetPhase(driver, vm, phase); + qemuMigrationJobSetPhase(vm, phase); } =20 static void @@ -5551,9 +5511,9 @@ qemuMigrationJobIsActive(virDomainObjPtr vm, } =20 static void -qemuMigrationJobFinish(virQEMUDriverPtr driver, virDomainObjPtr vm) +qemuMigrationJobFinish(virDomainObjPtr vm) { - qemuDomainObjEndAsyncJob(driver, vm); + qemuDomainObjEndAsyncJob(vm); } =20 =20 @@ -5610,8 +5570,7 @@ qemuMigrationDstErrorReport(virQEMUDriverPtr driver, =20 =20 int -qemuMigrationSrcFetchMirrorStats(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationSrcFetchMirrorStats(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, qemuDomainJobInfoPtr jobInfo) { @@ -5632,12 +5591,12 @@ qemuMigrationSrcFetchMirrorStats(virQEMUDriverPtr d= river, if (!nbd) return 0; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 blockinfo =3D qemuMonitorGetAllBlockJobInfo(priv->mon, false); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || !blockinfo) + if (qemuDomainObjExitMonitor(vm) < 0 || !blockinfo) return -1; =20 memset(stats, 0, sizeof(*stats)); diff --git a/src/qemu/qemu_migration.h b/src/qemu/qemu_migration.h index b05f5254b4..8f5e2d0f81 100644 --- a/src/qemu/qemu_migration.h +++ b/src/qemu/qemu_migration.h @@ -195,12 +195,10 @@ qemuMigrationSrcToFile(virQEMUDriverPtr driver, ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT; =20 int -qemuMigrationSrcCancel(virQEMUDriverPtr driver, - virDomainObjPtr vm); +qemuMigrationSrcCancel(virDomainObjPtr vm); =20 int -qemuMigrationAnyFetchStats(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationAnyFetchStats(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, qemuDomainJobInfoPtr jobInfo, char **error); @@ -226,8 +224,7 @@ qemuMigrationDstGetURI(const char *migrateFrom, int migrateFd); =20 int -qemuMigrationDstRun(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationDstRun(virDomainObjPtr vm, const char *uri, qemuDomainAsyncJob asyncJob); =20 @@ -236,7 +233,6 @@ qemuMigrationAnyPostcopyFailed(virQEMUDriverPtr driver, virDomainObjPtr vm); =20 int -qemuMigrationSrcFetchMirrorStats(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationSrcFetchMirrorStats(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, qemuDomainJobInfoPtr jobInfo); diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_coo= kie.c index 6cf1c22812..68f4735bc7 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -450,7 +450,6 @@ qemuMigrationCookieAddNetwork(qemuMigrationCookiePtr mi= g, =20 static int qemuMigrationCookieAddNBD(qemuMigrationCookiePtr mig, - virQEMUDriverPtr driver, virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -473,13 +472,13 @@ qemuMigrationCookieAddNBD(qemuMigrationCookiePtr mig, mig->nbd->disks =3D g_new0(struct qemuMigrationCookieNBDDisk, vm->def-= >ndisks); mig->nbd->ndisks =3D 0; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, priv->job.asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, priv->job.asyncJob) < 0) return -1; if (blockdev) rc =3D qemuMonitorBlockStatsUpdateCapacityBlockdev(priv->mon, stat= s); else rc =3D qemuMonitorBlockStatsUpdateCapacity(priv->mon, stats, false= ); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) return -1; =20 for (i =3D 0; i < vm->def->ndisks; i++) { @@ -1421,7 +1420,7 @@ qemuMigrationBakeCookie(qemuMigrationCookiePtr mig, } =20 if ((flags & QEMU_MIGRATION_COOKIE_NBD) && - qemuMigrationCookieAddNBD(mig, driver, dom) < 0) + qemuMigrationCookieAddNBD(mig, dom) < 0) return -1; =20 if (flags & QEMU_MIGRATION_COOKIE_STATS && diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index 231a8a2ee8..12f94098c5 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -786,7 +786,6 @@ qemuMigrationCapsToJSON(virBitmapPtr caps, =20 /** * qemuMigrationParamsApply - * @driver: qemu driver * @vm: domain object * @asyncJob: migration job * @migParams: migration parameters to send to QEMU @@ -796,8 +795,7 @@ qemuMigrationCapsToJSON(virBitmapPtr caps, * Returns 0 on success, -1 on failure. */ int -qemuMigrationParamsApply(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationParamsApply(virDomainObjPtr vm, int asyncJob, qemuMigrationParamsPtr migParams) { @@ -809,7 +807,7 @@ qemuMigrationParamsApply(virQEMUDriverPtr driver, int ret =3D -1; int rc; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 if (asyncJob =3D=3D QEMU_ASYNC_JOB_NONE) { @@ -857,7 +855,7 @@ qemuMigrationParamsApply(virQEMUDriverPtr driver, ret =3D 0; =20 cleanup: - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 if (xbzrleCacheSize_old) @@ -958,9 +956,9 @@ qemuMigrationParamsEnableTLS(virQEMUDriverPtr driver, * This should prevent any issues just in case some cleanup wasn't * properly completed (both src and dst use the same alias) or * some other error path between now and perform . */ - qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, *tlsAlias); + qemuDomainDelTLSObjects(vm, asyncJob, secAlias, *tlsAlias); =20 - if (qemuDomainAddTLSObjects(driver, vm, asyncJob, &secProps, &tlsProps= ) < 0) + if (qemuDomainAddTLSObjects(vm, asyncJob, &secProps, &tlsProps) < 0) return -1; =20 if (qemuMigrationParamsSetString(migParams, @@ -1009,7 +1007,6 @@ qemuMigrationParamsDisableTLS(virDomainObjPtr vm, =20 =20 /* qemuMigrationParamsResetTLS - * @driver: pointer to qemu driver * @vm: domain object * @asyncJob: migration job to join * @apiFlags: API flags used to start the migration @@ -1018,8 +1015,7 @@ qemuMigrationParamsDisableTLS(virDomainObjPtr vm, * security objects and free the secinfo */ static void -qemuMigrationParamsResetTLS(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationParamsResetTLS(virDomainObjPtr vm, int asyncJob, qemuMigrationParamsPtr origParams, unsigned long apiFlags) @@ -1036,14 +1032,13 @@ qemuMigrationParamsResetTLS(virQEMUDriverPtr driver, tlsAlias =3D qemuAliasTLSObjFromSrcAlias(QEMU_MIGRATION_TLS_ALIAS_BASE= ); secAlias =3D qemuAliasForSecret(QEMU_MIGRATION_TLS_ALIAS_BASE, NULL); =20 - qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, tlsAlias); + qemuDomainDelTLSObjects(vm, asyncJob, secAlias, tlsAlias); g_clear_pointer(&QEMU_DOMAIN_PRIVATE(vm)->migSecinfo, qemuDomainSecret= InfoFree); } =20 =20 int -qemuMigrationParamsFetch(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationParamsFetch(virDomainObjPtr vm, int asyncJob, qemuMigrationParamsPtr *migParams) { @@ -1053,12 +1048,12 @@ qemuMigrationParamsFetch(virQEMUDriverPtr driver, =20 *migParams =3D NULL; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 rc =3D qemuMonitorGetMigrationParams(priv->mon, &jsonParams); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) return -1; =20 if (!(*migParams =3D qemuMigrationParamsFromJSON(jsonParams))) @@ -1112,8 +1107,7 @@ qemuMigrationParamsGetULL(qemuMigrationParamsPtr migP= arams, * are unsupported by QEMU. */ int -qemuMigrationParamsCheck(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationParamsCheck(virDomainObjPtr vm, int asyncJob, qemuMigrationParamsPtr migParams, virBitmapPtr remoteCaps) @@ -1173,7 +1167,7 @@ qemuMigrationParamsCheck(virQEMUDriverPtr driver, * to ask QEMU for their current settings. */ =20 - return qemuMigrationParamsFetch(driver, vm, asyncJob, &jobPriv->migPar= ams); + return qemuMigrationParamsFetch(vm, asyncJob, &jobPriv->migParams); } =20 =20 @@ -1184,8 +1178,7 @@ qemuMigrationParamsCheck(virQEMUDriverPtr driver, * migration (save, managedsave, snapshots, dump) will not try to use them. */ void -qemuMigrationParamsReset(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationParamsReset(virDomainObjPtr vm, int asyncJob, qemuMigrationParamsPtr origParams, unsigned long apiFlags) @@ -1200,10 +1193,10 @@ qemuMigrationParamsReset(virQEMUDriverPtr driver, if (!virDomainObjIsActive(vm) || !origParams) goto cleanup; =20 - if (qemuMigrationParamsApply(driver, vm, asyncJob, origParams) < 0) + if (qemuMigrationParamsApply(vm, asyncJob, origParams) < 0) goto cleanup; =20 - qemuMigrationParamsResetTLS(driver, vm, asyncJob, origParams, apiFlags= ); + qemuMigrationParamsResetTLS(vm, asyncJob, origParams, apiFlags); =20 cleanup: virErrorRestore(&err); @@ -1341,8 +1334,7 @@ qemuMigrationParamsParse(xmlXPathContextPtr ctxt, =20 =20 int -qemuMigrationCapsCheck(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationCapsCheck(virDomainObjPtr vm, int asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -1352,12 +1344,12 @@ qemuMigrationCapsCheck(virQEMUDriverPtr driver, char **capStr; int rc; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 rc =3D qemuMonitorGetMigrationCapabilities(priv->mon, &caps); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) return -1; =20 if (!caps) @@ -1388,13 +1380,13 @@ qemuMigrationCapsCheck(virQEMUDriverPtr driver, if (!(json =3D qemuMigrationCapsToJSON(migEvent, migEvent))) return -1; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 rc =3D qemuMonitorSetMigrationCapabilities(priv->mon, json); json =3D NULL; =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 if (rc < 0) { diff --git a/src/qemu/qemu_migration_params.h b/src/qemu/qemu_migration_par= ams.h index 9aea24725f..231f4db90b 100644 --- a/src/qemu/qemu_migration_params.h +++ b/src/qemu/qemu_migration_params.h @@ -95,8 +95,7 @@ qemuMigrationParamsFree(qemuMigrationParamsPtr migParams); G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuMigrationParams, qemuMigrationParamsFree= ); =20 int -qemuMigrationParamsApply(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationParamsApply(virDomainObjPtr vm, int asyncJob, qemuMigrationParamsPtr migParams); =20 @@ -114,8 +113,7 @@ qemuMigrationParamsDisableTLS(virDomainObjPtr vm, qemuMigrationParamsPtr migParams); =20 int -qemuMigrationParamsFetch(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationParamsFetch(virDomainObjPtr vm, int asyncJob, qemuMigrationParamsPtr *migParams); =20 @@ -130,15 +128,13 @@ qemuMigrationParamsGetULL(qemuMigrationParamsPtr migP= arams, unsigned long long *value); =20 int -qemuMigrationParamsCheck(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationParamsCheck(virDomainObjPtr vm, int asyncJob, qemuMigrationParamsPtr migParams, virBitmapPtr remoteCaps); =20 void -qemuMigrationParamsReset(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationParamsReset(virDomainObjPtr vm, int asyncJob, qemuMigrationParamsPtr origParams, unsigned long apiFlags); @@ -152,8 +148,7 @@ qemuMigrationParamsParse(xmlXPathContextPtr ctxt, qemuMigrationParamsPtr *migParams); =20 int -qemuMigrationCapsCheck(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuMigrationCapsCheck(virDomainObjPtr vm, int asyncJob); =20 bool diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index aa36264b6c..5eadcd1a6c 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -422,7 +422,7 @@ qemuProcessHandleReset(qemuMonitorPtr mon G_GNUC_UNUSED, if (vm->def->onReboot =3D=3D VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY || vm->def->onReboot =3D=3D VIR_DOMAIN_LIFECYCLE_ACTION_PRESERVE) { =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -436,7 +436,7 @@ qemuProcessHandleReset(qemuMonitorPtr mon G_GNUC_UNUSED, virDomainAuditStop(vm, "destroyed"); qemuDomainRemoveInactive(driver, vm); endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); } =20 ret =3D 0; @@ -467,7 +467,7 @@ qemuProcessFakeReboot(void *opaque) =20 VIR_DEBUG("vm=3D%p", vm); virObjectLock(vm); - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -476,10 +476,10 @@ qemuProcessFakeReboot(void *opaque) goto endjob; } =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); rc =3D qemuMonitorSystemReset(priv->mon); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto endjob; =20 if (rc < 0) @@ -505,7 +505,7 @@ qemuProcessFakeReboot(void *opaque) ret =3D 0; =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: priv->pausedShutdown =3D false; @@ -1948,18 +1948,17 @@ qemuProcessMonitorLogFree(void *opaque) =20 =20 static int -qemuProcessInitMonitor(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessInitMonitor(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { int ret; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 ret =3D qemuMonitorSetCapabilities(QEMU_DOMAIN_PRIVATE(vm)->mon); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 return ret; @@ -2018,10 +2017,10 @@ qemuConnectMonitor(virQEMUDriverPtr driver, virDoma= inObjPtr vm, int asyncJob, return -1; } =20 - if (qemuProcessInitMonitor(driver, vm, asyncJob) < 0) + if (qemuProcessInitMonitor(vm, asyncJob) < 0) return -1; =20 - if (qemuMigrationCapsCheck(driver, vm, asyncJob) < 0) + if (qemuMigrationCapsCheck(vm, asyncJob) < 0) return -1; =20 return 0; @@ -2256,11 +2255,11 @@ qemuRefreshVirtioChannelState(virQEMUDriverPtr driv= er, virHashTablePtr info =3D NULL; int ret =3D -1; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; =20 ret =3D qemuMonitorGetChardevInfo(priv->mon, &info); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 if (ret < 0) @@ -2301,8 +2300,7 @@ qemuProcessRefreshPRManagerState(virDomainObjPtr vm, =20 =20 static int -qemuRefreshPRManagerState(virQEMUDriverPtr driver, - virDomainObjPtr vm) +qemuRefreshPRManagerState(virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; virHashTablePtr info =3D NULL; @@ -2312,9 +2310,9 @@ qemuRefreshPRManagerState(virQEMUDriverPtr driver, !qemuDomainDefHasManagedPR(vm)) return 0; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorGetPRManagerInfo(priv->mon, &info); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 if (ret < 0) @@ -2329,8 +2327,7 @@ qemuRefreshPRManagerState(virQEMUDriverPtr driver, =20 =20 static void -qemuRefreshRTC(virQEMUDriverPtr driver, - virDomainObjPtr vm) +qemuRefreshRTC(virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; time_t now, then; @@ -2342,10 +2339,10 @@ qemuRefreshRTC(virQEMUDriverPtr driver, return; =20 memset(&thenbits, 0, sizeof(thenbits)); - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); now =3D time(NULL); rv =3D qemuMonitorGetRTCTime(priv->mon, &thenbits); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) rv =3D -1; =20 if (rv < 0) @@ -2366,8 +2363,7 @@ qemuRefreshRTC(virQEMUDriverPtr driver, } =20 int -qemuProcessRefreshBalloonState(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessRefreshBalloonState(virDomainObjPtr vm, int asyncJob) { unsigned long long balloon; @@ -2380,11 +2376,11 @@ qemuProcessRefreshBalloonState(virQEMUDriverPtr dri= ver, return 0; } =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 rc =3D qemuMonitorGetBalloonInfo(qemuDomainGetMonitor(vm), &balloon); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) return -1; =20 vm->def->mem.cur_balloon =3D balloon; @@ -2418,11 +2414,11 @@ qemuProcessWaitForMonitor(virQEMUDriverPtr driver, * reliable if it's available. * Note that the monitor itself can be on a pty, so we still need to t= ry the * log output method. */ - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; ret =3D qemuMonitorGetChardevInfo(priv->mon, &info); VIR_DEBUG("qemuMonitorGetChardevInfo returned %i", ret); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 if (ret =3D=3D 0) { @@ -2446,8 +2442,7 @@ qemuProcessWaitForMonitor(virQEMUDriverPtr driver, =20 =20 static int -qemuProcessDetectIOThreadPIDs(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessDetectIOThreadPIDs(virDomainObjPtr vm, int asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -2462,10 +2457,10 @@ qemuProcessDetectIOThreadPIDs(virQEMUDriverPtr driv= er, } =20 /* Get the list of IOThreads from qemu */ - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; niothreads =3D qemuMonitorGetIOThreads(priv->mon, &iothreads); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; if (niothreads < 0) goto cleanup; @@ -2590,8 +2585,7 @@ qemuProcessInitCpuAffinity(virDomainObjPtr vm G_GNUC_= UNUSED) =20 /* set link states to down on interfaces at qemu start */ static int -qemuProcessSetLinkStates(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessSetLinkStates(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -2600,7 +2594,7 @@ qemuProcessSetLinkStates(virQEMUDriverPtr driver, int ret =3D -1; int rv; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 for (i =3D 0; i < def->nnets; i++) { @@ -2628,7 +2622,7 @@ qemuProcessSetLinkStates(virQEMUDriverPtr driver, ret =3D 0; =20 cleanup: - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; return ret; } @@ -2979,14 +2973,12 @@ qemuProcessInitPasswords(virQEMUDriverPtr driver, for (i =3D 0; i < vm->def->ngraphics; ++i) { virDomainGraphicsDefPtr graphics =3D vm->def->graphics[i]; if (graphics->type =3D=3D VIR_DOMAIN_GRAPHICS_TYPE_VNC) { - ret =3D qemuDomainChangeGraphicsPasswords(driver, vm, - VIR_DOMAIN_GRAPHICS_TY= PE_VNC, + ret =3D qemuDomainChangeGraphicsPasswords(vm, VIR_DOMAIN_GRAPH= ICS_TYPE_VNC, &graphics->data.vnc.au= th, cfg->vncPassword, asyncJob); } else if (graphics->type =3D=3D VIR_DOMAIN_GRAPHICS_TYPE_SPICE) { - ret =3D qemuDomainChangeGraphicsPasswords(driver, vm, - VIR_DOMAIN_GRAPHICS_TY= PE_SPICE, + ret =3D qemuDomainChangeGraphicsPasswords(vm, VIR_DOMAIN_GRAPH= ICS_TYPE_SPICE, &graphics->data.spice.= auth, cfg->spicePassword, asyncJob); @@ -3058,7 +3050,7 @@ qemuProcessUpdateVideoRamSize(virQEMUDriverPtr driver, virDomainVideoDefPtr video =3D NULL; g_autoptr(virQEMUDriverConfig) cfg =3D NULL; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 for (i =3D 0; i < vm->def->nvideos; i++) { @@ -3110,7 +3102,7 @@ qemuProcessUpdateVideoRamSize(virQEMUDriverPtr driver, =20 } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 cfg =3D virQEMUDriverGetConfig(driver); @@ -3119,7 +3111,7 @@ qemuProcessUpdateVideoRamSize(virQEMUDriverPtr driver, return ret; =20 error: - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); return -1; } =20 @@ -3238,11 +3230,11 @@ qemuProcessStartCPUs(virQEMUDriverPtr driver, virDo= mainObjPtr vm, =20 priv->runningReason =3D reason; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto release; =20 ret =3D qemuMonitorStartCPUs(priv->mon); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 if (ret < 0) @@ -3277,11 +3269,11 @@ int qemuProcessStopCPUs(virQEMUDriverPtr driver, =20 priv->pausedReason =3D reason; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; =20 ret =3D qemuMonitorStopCPUs(priv->mon); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 if (ret < 0) @@ -3361,7 +3353,7 @@ qemuProcessFiltersInstantiate(virDomainDefPtr def) } =20 static int -qemuProcessUpdateState(virQEMUDriverPtr driver, virDomainObjPtr vm) +qemuProcessUpdateState(virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; virDomainState state; @@ -3373,9 +3365,9 @@ qemuProcessUpdateState(virQEMUDriverPtr driver, virDo= mainObjPtr vm) g_autofree char *msg =3D NULL; int ret; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorGetStatus(priv->mon, &running, &reason); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 if (ret < 0) @@ -3480,7 +3472,7 @@ qemuProcessRecoverMigrationIn(virQEMUDriverPtr driver, break; } =20 - qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_NONE, + qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_NONE, jobPriv->migParams, job->apiFlags); return 0; } @@ -3524,7 +3516,7 @@ qemuProcessRecoverMigrationOut(virQEMUDriverPtr drive= r, } else { VIR_DEBUG("Cancelling unfinished migration of domain %s", vm->def->name); - if (qemuMigrationSrcCancel(driver, vm) < 0) { + if (qemuMigrationSrcCancel(vm) < 0) { VIR_WARN("Could not cancel ongoing migration of domain %s", vm->def->name); } @@ -3576,7 +3568,7 @@ qemuProcessRecoverMigrationOut(virQEMUDriverPtr drive= r, } } =20 - qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_NONE, + qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_NONE, jobPriv->migParams, job->apiFlags); return 0; } @@ -3611,9 +3603,9 @@ qemuProcessRecoverJob(virQEMUDriverPtr driver, case QEMU_ASYNC_JOB_SAVE: case QEMU_ASYNC_JOB_DUMP: case QEMU_ASYNC_JOB_SNAPSHOT: - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); ignore_value(qemuMonitorMigrateCancel(priv->mon)); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; /* resume the domain but only if it was paused as a result of * running a migration-to-file operation. Although we are @@ -3722,7 +3714,7 @@ qemuProcessUpdateDevices(virQEMUDriverPtr driver, =20 old =3D priv->qemuDevices; priv->qemuDevices =3D NULL; - if (qemuDomainUpdateDeviceList(driver, vm, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuDomainUpdateDeviceList(vm, QEMU_ASYNC_JOB_NONE) < 0) goto cleanup; =20 qemuDevices =3D (const char **)priv->qemuDevices; @@ -4197,8 +4189,7 @@ qemuProcessTranslateCPUFeatures(const char *name, =20 =20 static int -qemuProcessFetchGuestCPU(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessFetchGuestCPU(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, virCPUDataPtr *enabled, virCPUDataPtr *disabled) @@ -4217,7 +4208,7 @@ qemuProcessFetchGuestCPU(virQEMUDriverPtr driver, if (!generic && !ARCH_IS_X86(vm->def->os.arch)) return 0; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 if (generic) { @@ -4229,7 +4220,7 @@ qemuProcessFetchGuestCPU(virQEMUDriverPtr driver, rc =3D qemuMonitorGetGuestCPUx86(priv->mon, &dataEnabled, &dataDis= abled); } =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) return -1; =20 if (rc =3D=3D -1) @@ -4304,15 +4295,14 @@ qemuProcessUpdateLiveGuestCPU(virDomainObjPtr vm, =20 =20 static int -qemuProcessUpdateAndVerifyCPU(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessUpdateAndVerifyCPU(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { virCPUDataPtr cpu =3D NULL; virCPUDataPtr disabled =3D NULL; int ret =3D -1; =20 - if (qemuProcessFetchGuestCPU(driver, vm, asyncJob, &cpu, &disabled) < = 0) + if (qemuProcessFetchGuestCPU(vm, asyncJob, &cpu, &disabled) < 0) goto cleanup; =20 if (qemuProcessVerifyCPU(vm, cpu) < 0) @@ -4331,8 +4321,7 @@ qemuProcessUpdateAndVerifyCPU(virQEMUDriverPtr driver, =20 =20 static int -qemuProcessFetchCPUDefinitions(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessFetchCPUDefinitions(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, virDomainCapsCPUModelsPtr *cpuModels) { @@ -4340,12 +4329,12 @@ qemuProcessFetchCPUDefinitions(virQEMUDriverPtr dri= ver, g_autoptr(virDomainCapsCPUModels) models =3D NULL; int rc; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 rc =3D virQEMUCapsFetchCPUModels(priv->mon, vm->def->os.arch, &models); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) return -1; =20 *cpuModels =3D g_steal_pointer(&models); @@ -4354,8 +4343,7 @@ qemuProcessFetchCPUDefinitions(virQEMUDriverPtr drive= r, =20 =20 static int -qemuProcessUpdateCPU(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessUpdateCPU(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { g_autoptr(virCPUData) cpu =3D NULL; @@ -4367,13 +4355,13 @@ qemuProcessUpdateCPU(virQEMUDriverPtr driver, */ vm->def->cpu->fallback =3D VIR_CPU_FALLBACK_ALLOW; =20 - if (qemuProcessFetchGuestCPU(driver, vm, asyncJob, &cpu, &disabled) < = 0) + if (qemuProcessFetchGuestCPU(vm, asyncJob, &cpu, &disabled) < 0) return -1; =20 if (qemuProcessUpdateLiveGuestCPU(vm, cpu, disabled) < 0) return -1; =20 - if (qemuProcessFetchCPUDefinitions(driver, vm, asyncJob, &models) < 0 = || + if (qemuProcessFetchCPUDefinitions(vm, asyncJob, &models) < 0 || virCPUTranslate(vm->def->os.arch, vm->def->cpu, models) < 0) return -1; =20 @@ -4579,12 +4567,11 @@ qemuProcessIncomingDefNew(virQEMUCapsPtr qemuCaps, * parameter between qemuProcessBeginJob and qemuProcessEndJob. */ int -qemuProcessBeginJob(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessBeginJob(virDomainObjPtr vm, virDomainJobOperation operation, unsigned long apiFlags) { - if (qemuDomainObjBeginAsyncJob(driver, vm, QEMU_ASYNC_JOB_START, + if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_START, operation, apiFlags) < 0) return -1; =20 @@ -4594,10 +4581,9 @@ qemuProcessBeginJob(virQEMUDriverPtr driver, =20 =20 void -qemuProcessEndJob(virQEMUDriverPtr driver, - virDomainObjPtr vm) +qemuProcessEndJob(virDomainObjPtr vm) { - qemuDomainObjEndAsyncJob(driver, vm); + qemuDomainObjEndAsyncJob(vm); } =20 =20 @@ -5054,8 +5040,7 @@ qemuProcessSetupRawIO(virQEMUDriverPtr driver, =20 =20 static int -qemuProcessSetupBalloon(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessSetupBalloon(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { unsigned long long balloon =3D vm->def->mem.cur_balloon; @@ -5065,7 +5050,7 @@ qemuProcessSetupBalloon(virQEMUDriverPtr driver, if (!virDomainDefHasMemballoon(vm->def)) return 0; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 if (vm->def->memballoon->period) @@ -5077,7 +5062,7 @@ qemuProcessSetupBalloon(virQEMUDriverPtr driver, ret =3D 0; =20 cleanup: - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; return ret; } @@ -5920,8 +5905,7 @@ qemuProcessVcpusSortOrder(const void *a, =20 =20 static int -qemuProcessSetupHotpluggableVcpus(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessSetupHotpluggableVcpus(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { unsigned int maxvcpus =3D virDomainDefGetVcpusMax(vm->def); @@ -5967,13 +5951,13 @@ qemuProcessSetupHotpluggableVcpus(virQEMUDriverPtr = driver, if (!(vcpuprops =3D qemuBuildHotpluggableCPUProps(vcpu))) goto cleanup; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; =20 rc =3D qemuMonitorAddDeviceArgs(qemuDomainGetMonitor(vm), vcpuprop= s); vcpuprops =3D NULL; =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; =20 if (rc < 0) @@ -6604,8 +6588,7 @@ qemuProcessGenID(virDomainObjPtr vm, * Same hack is done in qemuDomainAttachDiskGeneric. */ static int -qemuProcessSetupDiskThrottlingBlockdev(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessSetupDiskThrottlingBlockdev(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -6617,7 +6600,7 @@ qemuProcessSetupDiskThrottlingBlockdev(virQEMUDriverP= tr driver, =20 VIR_DEBUG("Setting up disk throttling for -blockdev via block_set_io_t= hrottle"); =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 for (i =3D 0; i < vm->def->ndisks; i++) { @@ -6640,7 +6623,7 @@ qemuProcessSetupDiskThrottlingBlockdev(virQEMUDriverP= tr driver, ret =3D 0; =20 cleanup: - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; return ret; } @@ -6924,23 +6907,23 @@ qemuProcessLaunch(virConnectPtr conn, goto cleanup; =20 VIR_DEBUG("Verifying and updating provided guest CPU"); - if (qemuProcessUpdateAndVerifyCPU(driver, vm, asyncJob) < 0) + if (qemuProcessUpdateAndVerifyCPU(vm, asyncJob) < 0) goto cleanup; =20 VIR_DEBUG("setting up hotpluggable cpus"); if (qemuDomainHasHotpluggableStartupVcpus(vm->def)) { - if (qemuDomainRefreshVcpuInfo(driver, vm, asyncJob, false) < 0) + if (qemuDomainRefreshVcpuInfo(vm, asyncJob, false) < 0) goto cleanup; =20 if (qemuProcessValidateHotpluggableVcpus(vm->def) < 0) goto cleanup; =20 - if (qemuProcessSetupHotpluggableVcpus(driver, vm, asyncJob) < 0) + if (qemuProcessSetupHotpluggableVcpus(vm, asyncJob) < 0) goto cleanup; } =20 VIR_DEBUG("Refreshing VCPU info"); - if (qemuDomainRefreshVcpuInfo(driver, vm, asyncJob, false) < 0) + if (qemuDomainRefreshVcpuInfo(vm, asyncJob, false) < 0) goto cleanup; =20 if (qemuDomainValidateVcpuInfo(vm) < 0) @@ -6949,7 +6932,7 @@ qemuProcessLaunch(virConnectPtr conn, qemuDomainVcpuPersistOrder(vm->def); =20 VIR_DEBUG("Detecting IOThread PIDs"); - if (qemuProcessDetectIOThreadPIDs(driver, vm, asyncJob) < 0) + if (qemuProcessDetectIOThreadPIDs(vm, asyncJob) < 0) goto cleanup; =20 VIR_DEBUG("Setting global CPU cgroup (if required)"); @@ -6979,21 +6962,21 @@ qemuProcessLaunch(virConnectPtr conn, /* qemu doesn't support setting this on the command line, so * enter the monitor */ VIR_DEBUG("Setting network link states"); - if (qemuProcessSetLinkStates(driver, vm, asyncJob) < 0) + if (qemuProcessSetLinkStates(vm, asyncJob) < 0) goto cleanup; =20 VIR_DEBUG("Setting initial memory amount"); - if (qemuProcessSetupBalloon(driver, vm, asyncJob) < 0) + if (qemuProcessSetupBalloon(vm, asyncJob) < 0) goto cleanup; =20 - if (qemuProcessSetupDiskThrottlingBlockdev(driver, vm, asyncJob) < 0) + if (qemuProcessSetupDiskThrottlingBlockdev(vm, asyncJob) < 0) goto cleanup; =20 /* Since CPUs were not started yet, the balloon could not return the m= emory * to the host and thus cur_balloon needs to be updated so that GetXML= desc * and friends return the correct size in case they can't grab the job= */ if (!incoming && !snapshot && - qemuProcessRefreshBalloonState(driver, vm, asyncJob) < 0) + qemuProcessRefreshBalloonState(vm, asyncJob) < 0) goto cleanup; =20 if (flags & VIR_QEMU_PROCESS_START_AUTODESTROY && @@ -7026,11 +7009,11 @@ qemuProcessRefreshState(virQEMUDriverPtr driver, qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 VIR_DEBUG("Fetching list of active devices"); - if (qemuDomainUpdateDeviceList(driver, vm, asyncJob) < 0) + if (qemuDomainUpdateDeviceList(vm, asyncJob) < 0) return -1; =20 VIR_DEBUG("Updating info of memory devices"); - if (qemuDomainUpdateMemoryDeviceInfo(driver, vm, asyncJob) < 0) + if (qemuDomainUpdateMemoryDeviceInfo(vm, asyncJob) < 0) return -1; =20 VIR_DEBUG("Detecting actual memory size for video device"); @@ -7038,10 +7021,10 @@ qemuProcessRefreshState(virQEMUDriverPtr driver, return -1; =20 VIR_DEBUG("Updating disk data"); - if (qemuProcessRefreshDisks(driver, vm, asyncJob) < 0) + if (qemuProcessRefreshDisks(vm, asyncJob) < 0) return -1; if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV) && - qemuBlockNodeNamesDetect(driver, vm, asyncJob) < 0) + qemuBlockNodeNamesDetect(vm, asyncJob) < 0) return -1; =20 return 0; @@ -7160,7 +7143,7 @@ qemuProcessStart(virConnectPtr conn, =20 if (incoming) { if (incoming->deferredURI && - qemuMigrationDstRun(driver, vm, incoming->deferredURI, asyncJo= b) < 0) + qemuMigrationDstRun(vm, incoming->deferredURI, asyncJob) < 0) goto stop; } else { /* Refresh state of devices from QEMU. During migration this happe= ns @@ -7288,8 +7271,7 @@ qemuProcessKill(virDomainObjPtr vm, unsigned int flag= s) * qemuProcessStop. */ int -qemuProcessBeginStopJob(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessBeginStopJob(virDomainObjPtr vm, qemuDomainJob job, bool forceKill) { @@ -7309,7 +7291,7 @@ qemuProcessBeginStopJob(virQEMUDriverPtr driver, /* Wake up anything waiting on domain condition */ virDomainObjBroadcast(vm); =20 - if (qemuDomainObjBeginJob(driver, vm, job) < 0) + if (qemuDomainObjBeginJob(vm, job) < 0) goto cleanup; =20 ret =3D 0; @@ -7350,7 +7332,7 @@ void qemuProcessStop(virQEMUDriverPtr driver, virErrorPreserveLast(&orig_err); =20 if (asyncJob !=3D QEMU_ASYNC_JOB_NONE) { - if (qemuDomainObjBeginNestedJob(driver, vm, asyncJob) < 0) + if (qemuDomainObjBeginNestedJob(vm, asyncJob) < 0) goto cleanup; } else if (priv->job.asyncJob !=3D QEMU_ASYNC_JOB_NONE && priv->job.asyncOwner =3D=3D virThreadSelfID() && @@ -7656,7 +7638,7 @@ void qemuProcessStop(virQEMUDriverPtr driver, =20 endjob: if (asyncJob !=3D QEMU_ASYNC_JOB_NONE) - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: virErrorRestore(&orig_err); @@ -7681,12 +7663,12 @@ qemuProcessAutoDestroy(virDomainObjPtr dom, if (priv->job.asyncJob) { VIR_DEBUG("vm=3D%s has long-term job active, cancelling", dom->def->name); - qemuDomainObjDiscardAsyncJob(driver, dom); + qemuDomainObjDiscardAsyncJob(dom); } =20 VIR_DEBUG("Killing domain"); =20 - if (qemuProcessBeginStopJob(driver, dom, QEMU_JOB_DESTROY, true) < 0) + if (qemuProcessBeginStopJob(dom, QEMU_JOB_DESTROY, true) < 0) return; =20 qemuProcessStop(driver, dom, VIR_DOMAIN_SHUTOFF_DESTROYED, @@ -7699,7 +7681,7 @@ qemuProcessAutoDestroy(virDomainObjPtr dom, =20 qemuDomainRemoveInactive(driver, dom); =20 - qemuDomainObjEndJob(driver, dom); + qemuDomainObjEndJob(dom); =20 virObjectEventStateQueue(driver->domainEventState, event); } @@ -7732,8 +7714,7 @@ bool qemuProcessAutoDestroyActive(virQEMUDriverPtr dr= iver, =20 =20 int -qemuProcessRefreshDisks(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessRefreshDisks(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -7742,9 +7723,9 @@ qemuProcessRefreshDisks(virQEMUDriverPtr driver, int ret =3D -1; size_t i; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) =3D=3D 0) { + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) =3D=3D 0) { table =3D qemuMonitorGetBlockInfo(priv->mon); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto cleanup; } =20 @@ -7789,8 +7770,7 @@ qemuProcessRefreshDisks(virQEMUDriverPtr driver, =20 =20 static int -qemuProcessRefreshCPUMigratability(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuProcessRefreshCPUMigratability(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -7809,12 +7789,12 @@ qemuProcessRefreshCPUMigratability(virQEMUDriverPtr= driver, if (!ARCH_IS_X86(def->os.arch)) return 0; =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 rc =3D qemuMonitorGetCPUMigratable(priv->mon, &migratable); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) return -1; =20 if (rc =3D=3D 1) @@ -7849,7 +7829,7 @@ qemuProcessRefreshCPU(virQEMUDriverPtr driver, if (!vm->def->cpu) return 0; =20 - if (qemuProcessRefreshCPUMigratability(driver, vm, QEMU_ASYNC_JOB_NONE= ) < 0) + if (qemuProcessRefreshCPUMigratability(vm, QEMU_ASYNC_JOB_NONE) < 0) return -1; =20 if (!(host =3D virQEMUDriverGetHostCPU(driver))) { @@ -7884,7 +7864,7 @@ qemuProcessRefreshCPU(virQEMUDriverPtr driver, if (virCPUUpdate(vm->def->os.arch, vm->def->cpu, cpu) < 0) return -1; =20 - if (qemuProcessUpdateCPU(driver, vm, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuProcessUpdateCPU(vm, QEMU_ASYNC_JOB_NONE) < 0) return -1; } else if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_E= XPANSION)) { /* We only try to fix CPUs when the libvirt/QEMU combo used to sta= rt @@ -7963,15 +7943,14 @@ qemuProcessRefreshLegacyBlockjob(void *payload, =20 =20 static int -qemuProcessRefreshLegacyBlockjobs(virQEMUDriverPtr driver, - virDomainObjPtr vm) +qemuProcessRefreshLegacyBlockjobs(virDomainObjPtr vm) { virHashTablePtr blockJobs =3D NULL; int ret =3D -1; =20 - qemuDomainObjEnterMonitor(driver, vm); + qemuDomainObjEnterMonitor(vm); blockJobs =3D qemuMonitorGetAllBlockJobInfo(qemuDomainGetMonitor(vm), = true); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || !blockJobs) + if (qemuDomainObjExitMonitor(vm) < 0 || !blockJobs) goto cleanup; =20 if (virHashForEach(blockJobs, qemuProcessRefreshLegacyBlockjob, vm) < = 0) @@ -7986,15 +7965,14 @@ qemuProcessRefreshLegacyBlockjobs(virQEMUDriverPtr = driver, =20 =20 static int -qemuProcessRefreshBlockjobs(virQEMUDriverPtr driver, - virDomainObjPtr vm) +qemuProcessRefreshBlockjobs(virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) - return qemuBlockJobRefreshJobs(driver, vm); + return qemuBlockJobRefreshJobs(vm); else - return qemuProcessRefreshLegacyBlockjobs(driver, vm); + return qemuProcessRefreshLegacyBlockjobs(vm); } =20 =20 @@ -8049,7 +8027,7 @@ qemuProcessReconnect(void *opaque) cfg =3D virQEMUDriverGetConfig(driver); priv =3D obj->privateData; =20 - if (qemuDomainObjBeginJob(driver, obj, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(obj, QEMU_JOB_MODIFY) < 0) goto error; jobStarted =3D true; =20 @@ -8133,7 +8111,7 @@ qemuProcessReconnect(void *opaque) goto error; } =20 - if (qemuProcessUpdateState(driver, obj) < 0) + if (qemuProcessUpdateState(obj) < 0) goto error; =20 state =3D virDomainObjGetState(obj, &reason); @@ -8182,12 +8160,12 @@ qemuProcessReconnect(void *opaque) if (qemuProcessRefreshCPU(driver, obj) < 0) goto error; =20 - if (qemuDomainRefreshVcpuInfo(driver, obj, QEMU_ASYNC_JOB_NONE, true) = < 0) + if (qemuDomainRefreshVcpuInfo(obj, QEMU_ASYNC_JOB_NONE, true) < 0) goto error; =20 qemuDomainVcpuPersistOrder(obj->def); =20 - if (qemuProcessDetectIOThreadPIDs(driver, obj, QEMU_ASYNC_JOB_NONE) < = 0) + if (qemuProcessDetectIOThreadPIDs(obj, QEMU_ASYNC_JOB_NONE) < 0) goto error; =20 if (qemuSecurityReserveLabel(driver->securityManager, obj->def, obj->p= id) < 0) @@ -8197,32 +8175,32 @@ qemuProcessReconnect(void *opaque) =20 qemuProcessFiltersInstantiate(obj->def); =20 - if (qemuProcessRefreshDisks(driver, obj, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuProcessRefreshDisks(obj, QEMU_ASYNC_JOB_NONE) < 0) goto error; =20 if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV) && - qemuBlockNodeNamesDetect(driver, obj, QEMU_ASYNC_JOB_NONE) < 0) + qemuBlockNodeNamesDetect(obj, QEMU_ASYNC_JOB_NONE) < 0) goto error; =20 if (qemuRefreshVirtioChannelState(driver, obj, QEMU_ASYNC_JOB_NONE) < = 0) goto error; =20 /* If querying of guest's RTC failed, report error, but do not kill th= e domain. */ - qemuRefreshRTC(driver, obj); + qemuRefreshRTC(obj); =20 - if (qemuProcessRefreshBalloonState(driver, obj, QEMU_ASYNC_JOB_NONE) <= 0) + if (qemuProcessRefreshBalloonState(obj, QEMU_ASYNC_JOB_NONE) < 0) goto error; =20 if (qemuProcessRecoverJob(driver, obj, &oldjob, &stopFlags) < 0) goto error; =20 - if (qemuProcessRefreshBlockjobs(driver, obj) < 0) + if (qemuProcessRefreshBlockjobs(obj) < 0) goto error; =20 if (qemuProcessUpdateDevices(driver, obj) < 0) goto error; =20 - if (qemuRefreshPRManagerState(driver, obj) < 0) + if (qemuRefreshPRManagerState(obj) < 0) goto error; =20 qemuProcessReconnectCheckMemAliasOrderMismatch(obj); @@ -8276,7 +8254,7 @@ qemuProcessReconnect(void *opaque) if (jobStarted) { if (!virDomainObjIsActive(obj)) qemuDomainRemoveInactive(driver, obj); - qemuDomainObjEndJob(driver, obj); + qemuDomainObjEndJob(obj); } else { if (!virDomainObjIsActive(obj)) qemuDomainRemoveInactiveJob(driver, obj); diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h index dbd989c321..448b65537a 100644 --- a/src/qemu/qemu_process.h +++ b/src/qemu/qemu_process.h @@ -66,12 +66,10 @@ qemuProcessIncomingDefPtr qemuProcessIncomingDefNew(vir= QEMUCapsPtr qemuCaps, const char *path); void qemuProcessIncomingDefFree(qemuProcessIncomingDefPtr inc); =20 -int qemuProcessBeginJob(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuProcessBeginJob(virDomainObjPtr vm, virDomainJobOperation operation, unsigned long apiFlags); -void qemuProcessEndJob(virQEMUDriverPtr driver, - virDomainObjPtr vm); +void qemuProcessEndJob(virDomainObjPtr vm); =20 typedef enum { VIR_QEMU_PROCESS_START_COLD =3D 1 << 0, @@ -145,8 +143,7 @@ typedef enum { VIR_QEMU_PROCESS_STOP_NO_RELABEL =3D 1 << 1, } qemuProcessStopFlags; =20 -int qemuProcessBeginStopJob(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuProcessBeginStopJob(virDomainObjPtr vm, qemuDomainJob job, bool forceKill); void qemuProcessStop(virQEMUDriverPtr driver, @@ -195,12 +192,10 @@ int qemuRefreshVirtioChannelState(virQEMUDriverPtr dr= iver, virDomainObjPtr vm, qemuDomainAsyncJob asyncJob); =20 -int qemuProcessRefreshBalloonState(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuProcessRefreshBalloonState(virDomainObjPtr vm, int asyncJob); =20 -int qemuProcessRefreshDisks(virQEMUDriverPtr driver, - virDomainObjPtr vm, +int qemuProcessRefreshDisks(virDomainObjPtr vm, qemuDomainAsyncJob asyncJob); =20 int qemuProcessStartManagedPRDaemon(virDomainObjPtr vm) G_GNUC_NO_INLINE; diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index 9f4a146861..292e360193 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -295,14 +295,13 @@ qemuSnapshotCreateActiveInternal(virQEMUDriverPtr dri= ver, } } =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, - QEMU_ASYNC_JOB_SNAPSHOT) < 0) { + if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_SNAPSHOT) < 0) { resume =3D false; goto cleanup; } =20 ret =3D qemuMonitorCreateSnapshot(priv->mon, snap->def->name); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; if (ret < 0) goto cleanup; @@ -809,11 +808,11 @@ qemuSnapshotDiskCleanup(qemuSnapshotDiskDataPtr data, * be set to NULL by qemuSnapshotDiskUpdateSource */ if (data[i].src) { if (data[i].blockdevadded) { - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) = =3D=3D 0) { + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) =3D=3D 0)= { =20 qemuBlockStorageSourceAttachRollback(qemuDomainGetMoni= tor(vm), data[i].crdata->s= rcdata[0]); - ignore_value(qemuDomainObjExitMonitor(driver, vm)); + ignore_value(qemuDomainObjExitMonitor(vm)); } } =20 @@ -880,8 +879,7 @@ qemuSnapshotDiskBitmapsPropagate(qemuSnapshotDiskDataPt= r dd, =20 =20 static int -qemuSnapshotDiskPrepareOneBlockdev(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuSnapshotDiskPrepareOneBlockdev(virDomainObjPtr vm, qemuSnapshotDiskDataPtr dd, virQEMUDriverConfigPtr cfg, bool reuse, @@ -907,13 +905,13 @@ qemuSnapshotDiskPrepareOneBlockdev(virQEMUDriverPtr d= river, return -1; =20 if (reuse) { - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 rc =3D qemuBlockStorageSourceAttachApply(qemuDomainGetMonitor(vm), dd->crdata->srcdata[0]); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + if (qemuDomainObjExitMonitor(vm) < 0 || rc < 0) return -1; } else { if (qemuBlockStorageSourceCreateDetectSize(blockNamedNodeData, @@ -1021,7 +1019,7 @@ qemuSnapshotDiskPrepareOne(virQEMUDriverPtr driver, dd->prepared =3D true; =20 if (blockdev) { - if (qemuSnapshotDiskPrepareOneBlockdev(driver, vm, dd, cfg, reuse, + if (qemuSnapshotDiskPrepareOneBlockdev(vm, dd, cfg, reuse, blockNamedNodeData, asyncJo= b) < 0) return -1; =20 @@ -1188,12 +1186,12 @@ qemuSnapshotCreateDiskActive(virQEMUDriverPtr drive= r, goto cleanup; } =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) goto cleanup; =20 rc =3D qemuMonitorTransaction(priv->mon, &actions); =20 - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) rc =3D -1; =20 for (i =3D 0; i < ndiskdata; i++) { @@ -1250,7 +1248,7 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, if (flags & VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE) { int freeze; =20 - if (qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_MODIFY) = < 0) + if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) { @@ -1395,7 +1393,7 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, } =20 if (thaw !=3D 0 && - qemuDomainObjBeginAgentJob(driver, vm, QEMU_AGENT_JOB_MODIFY) >=3D= 0 && + qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) >=3D 0 && virDomainObjIsActive(vm)) { if (qemuSnapshotFSThaw(vm, ret =3D=3D 0 && thaw > 0) < 0) { /* helper reported the error, if it was needed */ @@ -1546,7 +1544,7 @@ qemuSnapshotCreateXML(virDomainPtr domain, * a regular job, so we need to set the job mask to disallow query as * 'savevm' blocks the monitor. External snapshot will then modify the * job mask appropriately. */ - if (qemuDomainObjBeginAsyncJob(driver, vm, QEMU_ASYNC_JOB_SNAPSHOT, + if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_SNAPSHOT, VIR_DOMAIN_JOB_OPERATION_SNAPSHOT, flag= s) < 0) goto cleanup; =20 @@ -1681,7 +1679,7 @@ qemuSnapshotCreateXML(virDomainPtr domain, virDomainSnapshotObjListRemove(vm->snapshots, snap); } =20 - qemuDomainObjEndAsyncJob(driver, vm); + qemuDomainObjEndAsyncJob(vm); =20 cleanup: return snapshot; @@ -1748,8 +1746,7 @@ qemuSnapshotRevert(virDomainObjPtr vm, goto cleanup; } =20 - if (qemuProcessBeginJob(driver, vm, - VIR_DOMAIN_JOB_OPERATION_SNAPSHOT_REVERT, + if (qemuProcessBeginJob(vm, VIR_DOMAIN_JOB_OPERATION_SNAPSHOT_REVERT, flags) < 0) goto cleanup; =20 @@ -1921,11 +1918,10 @@ qemuSnapshotRevert(virDomainObjPtr vm, } } =20 - if (qemuDomainObjEnterMonitorAsync(driver, vm, - QEMU_ASYNC_JOB_START) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_START) <= 0) goto endjob; rc =3D qemuMonitorLoadSnapshot(priv->mon, snap->def->name); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(vm) < 0) goto endjob; if (rc < 0) { /* XXX resume domain if it was running before the @@ -2042,7 +2038,7 @@ qemuSnapshotRevert(virDomainObjPtr vm, =20 if (qemuSnapshotRevertInactive(driver, vm, snap) < 0) { qemuDomainRemoveInactive(driver, vm); - qemuProcessEndJob(driver, vm); + qemuProcessEndJob(vm); goto cleanup; } =20 @@ -2067,7 +2063,7 @@ qemuSnapshotRevert(virDomainObjPtr vm, virDomainAuditStart(vm, "from-snapshot", rc >=3D 0); if (rc < 0) { qemuDomainRemoveInactive(driver, vm); - qemuProcessEndJob(driver, vm); + qemuProcessEndJob(vm); goto cleanup; } detail =3D VIR_DOMAIN_EVENT_STARTED_FROM_SNAPSHOT; @@ -2104,7 +2100,7 @@ qemuSnapshotRevert(virDomainObjPtr vm, ret =3D 0; =20 endjob: - qemuProcessEndJob(driver, vm); + qemuProcessEndJob(vm); =20 cleanup: if (ret =3D=3D 0) { @@ -2188,7 +2184,7 @@ qemuSnapshotDelete(virDomainObjPtr vm, VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY | VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY, -1); =20 - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (!(snap =3D qemuSnapObjFromSnapshot(vm, snapshot))) @@ -2261,7 +2257,7 @@ qemuSnapshotDelete(virDomainObjPtr vm, } =20 endjob: - qemuDomainObjEndJob(driver, vm); + qemuDomainObjEndJob(vm); =20 cleanup: return ret; diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index 1e18820a2b..b95335eca7 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -457,7 +457,7 @@ testQemuHotplugCpuPrepare(const char *test, priv->mon =3D qemuMonitorTestGetMonitor(data->mon); virObjectUnlock(priv->mon); =20 - if (qemuDomainRefreshVcpuInfo(&driver, data->vm, 0, false) < 0) + if (qemuDomainRefreshVcpuInfo(data->vm, 0, false) < 0) goto error; =20 return data; --=20 2.25.1 From nobody Tue Apr 30 06:12:00 2024 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; 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=1598422242; cv=none; d=zohomail.com; s=zohoarc; b=jOSziE4lMIlujDrmeIfRS+xy5sg7cbdrPLA/5R1yKkPI8aO3rV55oPVW/mAooyALbqFc+fp90xCLKryRUZ0lvaPTwV9R3lViLXjIizV1PkXQgPyjQ1J9KUpP08L6S+tKEUlnCNm8BCwl34tJ8KgGw0OiVW6h8iR0JiIUtB1jJzc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598422242; 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=mLuGhy71lvK432WG7K0pBvIEmcbnnRJWdb2UZe1HJvA=; b=nhNKxXsFJQm+jOTwv+J4HMwPHBNDN8vM/ba4NpwnmEC18Z9tncv8GLSSu+rlDG55NmooIHt4wVlqpRKAjobD35l/I3difYkgiWMPqtVrTYaBrgrWUnmOBhN33oFFX0FzYuPisC2Htsu4Aaw6ah2DXQdOhx3Dkdiv6Dk3es8EHtU= ARC-Authentication-Results: i=1; mx.zohomail.com; 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-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 159842224236397.68942794611598; Tue, 25 Aug 2020 23:10: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-525-gj0-igzmObunNJtGixk_-g-1; Wed, 26 Aug 2020 02:10:37 -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 8818418B9F00; Wed, 26 Aug 2020 06:10:31 +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 6582C7A40C; Wed, 26 Aug 2020 06:10:31 +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 289F2181A050; Wed, 26 Aug 2020 06:10:31 +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 07Q6ASBP009002 for ; Wed, 26 Aug 2020 02:10:28 -0400 Received: by smtp.corp.redhat.com (Postfix) id 5AF09202278C; Wed, 26 Aug 2020 06:10:28 +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 E18BB200BA9E for ; Wed, 26 Aug 2020 06:10:25 +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-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id EF81C8007A4 for ; Wed, 26 Aug 2020 06:10:24 +0000 (UTC) Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-492-DiGHVpwfMSC5VlAacd4qBA-1; Wed, 26 Aug 2020 02:10:15 -0400 Received: by mail-pl1-f176.google.com with SMTP id b11so393385pld.7; Tue, 25 Aug 2020 23:10:15 -0700 (PDT) Received: from localhost.localdomain ([116.72.86.23]) by smtp.gmail.com with ESMTPSA id hr13sm924745pjb.38.2020.08.25.23.10.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Aug 2020 23:10:10 -0700 (PDT) X-MC-Unique: gj0-igzmObunNJtGixk_-g-1 X-MC-Unique: DiGHVpwfMSC5VlAacd4qBA-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=mLuGhy71lvK432WG7K0pBvIEmcbnnRJWdb2UZe1HJvA=; b=egr7fI0y7yO8+0vxis0WI+/Zqnu8O/xN5/9xFyZ7iKYT02Tka204ENNK5qY5VTOTW2 a35w7EmJaYr9NL0woTEGbTFh7EXwYTA+BIyhZrNON+HRixEhskoTV80U//eZL1Ymqfdp VqWwyMxOmaVwl5BKtcUEIKUFN/NBl9DOhyiopQj65310tvLCZeXZKNaqTcwBOOE+/eUc rrIVimrBVWCTv94bgoCTvqaXBjPqQvjL0jDSzFQgrKhyw2tZoTg4JXLZXdt6szmv/uia b5GGC0fDbYmDJhm8RvHsfiqt/tjxH79/ZWXAtdKgkGXf4yOglSBuYYjmNReQ1w6XuK1g VKgw== X-Gm-Message-State: AOAM53250Yot2JFnQkb09vINrz8fE2hm2ngmxPGJGaAsHqTe2nJdZhRi HXFx2YDCiAyXHCwj664ZKU9lIDUDKr736A== X-Google-Smtp-Source: ABdhPJzh6Uu//KHsMs1ycIrohdNtH1zpwvNLA2VeaXhQ4fW6xQ5UUEhyS2PXPO5MAGt1GBjDDemfpA== X-Received: by 2002:a17:90a:1741:: with SMTP id 1mr4878744pjm.173.1598422211537; Tue, 25 Aug 2020 23:10:11 -0700 (PDT) From: Prathamesh Chavan To: libvir-list@redhat.com Subject: [GSoC][PATCH v4 7/8] qemu_domainjob: removed reference to `qemuDomainObjPrivatePtr` Date: Wed, 26 Aug 2020 11:39:41 +0530 Message-Id: <20200826060942.17320-8-pc44800@gmail.com> In-Reply-To: <20200826060942.17320-1-pc44800@gmail.com> References: <20200826060942.17320-1-pc44800@gmail.com> MIME-Version: 1.0 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-loop: libvir-list@redhat.com Cc: mkletzan@redhat.com, mprivozn@redhat.com, Prathamesh Chavan , eskultet@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.005 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" References to `qemuDomainObjPrivatePtr` in qemu_domainjob were removed as it is a qemu-hypervisor specific pointer. Signed-off-by: Prathamesh Chavan --- src/qemu/qemu_backup.c | 15 +- src/qemu/qemu_checkpoint.c | 12 +- src/qemu/qemu_domain.c | 20 +- src/qemu/qemu_domainjob.c | 313 ++++++++++---------- src/qemu/qemu_domainjob.h | 34 ++- src/qemu/qemu_driver.c | 568 ++++++++++++++++++++++--------------- src/qemu/qemu_migration.c | 23 +- src/qemu/qemu_process.c | 42 +-- src/qemu/qemu_snapshot.c | 25 +- 9 files changed, 589 insertions(+), 463 deletions(-) diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c index 7e5926250a..4e606c252f 100644 --- a/src/qemu/qemu_backup.c +++ b/src/qemu/qemu_backup.c @@ -572,7 +572,7 @@ qemuBackupJobTerminate(virDomainObjPtr vm, =20 virDomainBackupDefFree(priv->backup); priv->backup =3D NULL; - qemuDomainObjEndAsyncJob(vm); + qemuDomainObjEndAsyncJob(vm, &priv->job); } =20 =20 @@ -740,13 +740,14 @@ qemuBackupBegin(virDomainObjPtr vm, * infrastructure for async jobs. We'll allow standard modify-type jobs * as the interlocking of conflicting operations is handled on the blo= ck * job level */ - if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_BACKUP, + if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_BACKUP, VIR_DOMAIN_JOB_OPERATION_BACKUP, flags)= < 0) return -1; =20 - qemuDomainObjSetAsyncJobMask(vm, (QEMU_JOB_DEFAULT_MASK | - JOB_MASK(QEMU_JOB_SUSPEND) | - JOB_MASK(QEMU_JOB_MODIFY))); + qemuDomainObjSetAsyncJobMask(&priv->job, + (QEMU_JOB_DEFAULT_MASK | + JOB_MASK(QEMU_JOB_SUSPEND) | + JOB_MASK(QEMU_JOB_MODIFY))); jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP; =20 if (!virDomainObjIsActive(vm)) { @@ -877,9 +878,9 @@ qemuBackupBegin(virDomainObjPtr vm, def =3D g_steal_pointer(&priv->backup); =20 if (ret =3D=3D 0) - qemuDomainObjReleaseAsyncJob(vm); + qemuDomainObjReleaseAsyncJob(&priv->job); else - qemuDomainObjEndAsyncJob(vm); + qemuDomainObjEndAsyncJob(vm, &priv->job); =20 return ret; } diff --git a/src/qemu/qemu_checkpoint.c b/src/qemu/qemu_checkpoint.c index b90410aa20..e9547da555 100644 --- a/src/qemu/qemu_checkpoint.c +++ b/src/qemu/qemu_checkpoint.c @@ -539,7 +539,7 @@ qemuCheckpointCreateXML(virDomainPtr domain, /* Unlike snapshots, the RNG schema already ensured a sane filename. */ =20 /* We are going to modify the domain below. */ - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) return NULL; =20 if (redefine) { @@ -561,7 +561,7 @@ qemuCheckpointCreateXML(virDomainPtr domain, checkpoint =3D virGetDomainCheckpoint(domain, chk->def->name); =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 return checkpoint; } @@ -588,7 +588,7 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObjPtr vm, size_t i; int ret =3D -1; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -697,7 +697,7 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObjPtr vm, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -781,7 +781,7 @@ qemuCheckpointDelete(virDomainObjPtr vm, VIR_DOMAIN_CHECKPOINT_DELETE_METADATA_ONLY | VIR_DOMAIN_CHECKPOINT_DELETE_CHILDREN_ONLY, -1); =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) return -1; =20 if (!metadata_only) { @@ -849,6 +849,6 @@ qemuCheckpointDelete(virDomainObjPtr vm, } =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); return ret; } diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 7f56720011..cc89dec3b4 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2994,7 +2994,7 @@ qemuDomainObjPrivateXMLFormat(virBufferPtr buf, if (priv->lockState) virBufferAsprintf(buf, "%s\n", priv->lockSt= ate); =20 - if (qemuDomainObjPrivateXMLFormatJob(buf, vm) < 0) + if (qemuDomainObjPrivateXMLFormatJob(buf, vm, &priv->job) < 0) return -1; =20 if (priv->fakeReboot) @@ -3653,7 +3653,7 @@ qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, =20 priv->lockState =3D virXPathString("string(./lockstate)", ctxt); =20 - if (qemuDomainObjPrivateXMLParseJob(vm, ctxt) < 0) + if (qemuDomainObjPrivateXMLParseJob(vm, ctxt, &priv->job) < 0) goto error; =20 priv->fakeReboot =3D virXPathBoolean("boolean(./fakereboot)", ctxt) = =3D=3D 1; @@ -6097,12 +6097,12 @@ qemuDomainObjEnterMonitorInternal(virDomainObjPtr o= bj, =20 if (asyncJob !=3D QEMU_ASYNC_JOB_NONE) { int ret; - if ((ret =3D qemuDomainObjBeginNestedJob(obj, asyncJob)) < 0) + if ((ret =3D qemuDomainObjBeginNestedJob(obj, &priv->job, asyncJob= )) < 0) return ret; if (!virDomainObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_FAILED, "%s", _("domain is no longer running")); - qemuDomainObjEndJob(obj); + qemuDomainObjEndJob(obj, &priv->job); return -1; } } else if (priv->job.asyncOwner =3D=3D virThreadSelfID()) { @@ -6147,7 +6147,7 @@ qemuDomainObjExitMonitorInternal(virDomainObjPtr obj) priv->mon =3D NULL; =20 if (priv->job.active =3D=3D QEMU_JOB_ASYNC_NESTED) - qemuDomainObjEndJob(obj); + qemuDomainObjEndJob(obj, &priv->job); } =20 void qemuDomainObjEnterMonitor(virDomainObjPtr obj) @@ -7291,13 +7291,14 @@ qemuDomainRemoveInactiveJob(virQEMUDriverPtr driver, virDomainObjPtr vm) { bool haveJob; + qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 - haveJob =3D qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) >=3D 0; + haveJob =3D qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) >= =3D 0; =20 qemuDomainRemoveInactive(driver, vm); =20 if (haveJob) - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); } =20 =20 @@ -7312,13 +7313,14 @@ qemuDomainRemoveInactiveJobLocked(virQEMUDriverPtr = driver, virDomainObjPtr vm) { bool haveJob; + qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 - haveJob =3D qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) >=3D 0; + haveJob =3D qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) >= =3D 0; =20 qemuDomainRemoveInactiveLocked(driver, vm); =20 if (haveJob) - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); } =20 =20 diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c index bb260ccb2e..ecd694958c 100644 --- a/src/qemu/qemu_domainjob.c +++ b/src/qemu/qemu_domainjob.c @@ -18,7 +18,6 @@ =20 #include =20 -#include "qemu_domain.h" #include "qemu_migration.h" #include "qemu_domainjob.h" #include "viralloc.h" @@ -176,26 +175,24 @@ qemuDomainObjResetAsyncJob(qemuDomainJobObjPtr job) } =20 int -qemuDomainObjRestoreJob(virDomainObjPtr obj, - qemuDomainJobObjPtr job) +qemuDomainObjRestoreJob(qemuDomainJobObjPtr job, + qemuDomainJobObjPtr oldJob) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; + memset(oldJob, 0, sizeof(*oldJob)); + oldJob->active =3D job->active; + oldJob->owner =3D job->owner; + oldJob->asyncJob =3D job->asyncJob; + oldJob->asyncOwner =3D job->asyncOwner; + oldJob->phase =3D job->phase; + oldJob->privateData =3D g_steal_pointer(&job->privateData); + oldJob->apiFlags =3D job->apiFlags; =20 - memset(job, 0, sizeof(*job)); - job->active =3D priv->job.active; - job->owner =3D priv->job.owner; - job->asyncJob =3D priv->job.asyncJob; - job->asyncOwner =3D priv->job.asyncOwner; - job->phase =3D priv->job.phase; - job->privateData =3D g_steal_pointer(&priv->job.privateData); - job->apiFlags =3D priv->job.apiFlags; - - if (!(priv->job.privateData =3D priv->job.cb->jobcb->allocJobPrivate()= )) + if (!(job->privateData =3D job->cb->jobcb->allocJobPrivate())) return -1; - job->cb =3D priv->job.cb; + oldJob->cb =3D job->cb; =20 - qemuDomainObjResetJob(&priv->job); - qemuDomainObjResetAsyncJob(&priv->job); + qemuDomainObjResetJob(job); + qemuDomainObjResetAsyncJob(job); return 0; } =20 @@ -218,65 +215,61 @@ qemuDomainTrackJob(qemuDomainJob job) =20 void qemuDomainObjSetJobPhase(virDomainObjPtr obj, + qemuDomainJobObjPtr job, int phase) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; unsigned long long me =3D virThreadSelfID(); =20 - if (!priv->job.asyncJob) + if (!job->asyncJob) return; =20 VIR_DEBUG("Setting '%s' phase to '%s'", - qemuDomainAsyncJobTypeToString(priv->job.asyncJob), - qemuDomainAsyncJobPhaseToString(priv->job.asyncJob, phase)); + qemuDomainAsyncJobTypeToString(job->asyncJob), + qemuDomainAsyncJobPhaseToString(job->asyncJob, phase)); =20 - if (priv->job.asyncOwner && me !=3D priv->job.asyncOwner) { + if (job->asyncOwner && me !=3D job->asyncOwner) { VIR_WARN("'%s' async job is owned by thread %llu", - qemuDomainAsyncJobTypeToString(priv->job.asyncJob), - priv->job.asyncOwner); + qemuDomainAsyncJobTypeToString(job->asyncJob), + job->asyncOwner); } =20 - priv->job.phase =3D phase; - priv->job.asyncOwner =3D me; - priv->job.cb->saveStatus(obj); + job->phase =3D phase; + job->asyncOwner =3D me; + job->cb->saveStatus(obj); } =20 void -qemuDomainObjSetAsyncJobMask(virDomainObjPtr obj, +qemuDomainObjSetAsyncJobMask(qemuDomainJobObjPtr job, unsigned long long allowedJobs) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; - - if (!priv->job.asyncJob) + if (!job->asyncJob) return; =20 - priv->job.mask =3D allowedJobs | JOB_MASK(QEMU_JOB_DESTROY); + job->mask =3D allowedJobs | JOB_MASK(QEMU_JOB_DESTROY); } =20 void -qemuDomainObjDiscardAsyncJob(virDomainObjPtr obj) +qemuDomainObjDiscardAsyncJob(virDomainObjPtr obj, + qemuDomainJobObjPtr job) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; - if (priv->job.active =3D=3D QEMU_JOB_ASYNC_NESTED) - qemuDomainObjResetJob(&priv->job); - qemuDomainObjResetAsyncJob(&priv->job); - priv->job.cb->saveStatus(obj); + if (job->active =3D=3D QEMU_JOB_ASYNC_NESTED) + qemuDomainObjResetJob(job); + qemuDomainObjResetAsyncJob(job); + job->cb->saveStatus(obj); } =20 void -qemuDomainObjReleaseAsyncJob(virDomainObjPtr obj) +qemuDomainObjReleaseAsyncJob(qemuDomainJobObjPtr job) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; - VIR_DEBUG("Releasing ownership of '%s' async job", - qemuDomainAsyncJobTypeToString(priv->job.asyncJob)); + qemuDomainAsyncJobTypeToString(job->asyncJob)); =20 - if (priv->job.asyncOwner !=3D virThreadSelfID()) { + if (job->asyncOwner !=3D virThreadSelfID()) { VIR_WARN("'%s' async job is owned by thread %llu", - qemuDomainAsyncJobTypeToString(priv->job.asyncJob), - priv->job.asyncOwner); + qemuDomainAsyncJobTypeToString(job->asyncJob), + job->asyncOwner); } - priv->job.asyncOwner =3D 0; + job->asyncOwner =3D 0; } =20 static bool @@ -336,7 +329,6 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, qemuDomainAsyncJob asyncJob, bool nowait) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; unsigned long long now; unsigned long long then; bool nested =3D job =3D=3D QEMU_JOB_ASYNC_NESTED; @@ -354,85 +346,85 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, qemuDomainAgentJobTypeToString(agentJob), qemuDomainAsyncJobTypeToString(asyncJob), obj, obj->def->name, - qemuDomainJobTypeToString(priv->job.active), - qemuDomainAgentJobTypeToString(priv->job.agentActive), - qemuDomainAsyncJobTypeToString(priv->job.asyncJob)); + qemuDomainJobTypeToString(jobObj->active), + qemuDomainAgentJobTypeToString(jobObj->agentActive), + qemuDomainAsyncJobTypeToString(jobObj->asyncJob)); =20 if (virTimeMillisNow(&now) < 0) return -1; =20 - priv->job.cb->jobcb->increaseJobsQueued(obj); + jobObj->cb->jobcb->increaseJobsQueued(obj); then =3D now + QEMU_JOB_WAIT_TIME; =20 retry: if ((!async && job !=3D QEMU_JOB_DESTROY) && - priv->job.cb->jobcb->getMaxQueuedJobs(obj) && - priv->job.cb->jobcb->getJobsQueued(obj) > priv->job.cb->jobcb->get= MaxQueuedJobs(obj)) { + jobObj->cb->jobcb->getMaxQueuedJobs(obj) && + jobObj->cb->jobcb->getJobsQueued(obj) > jobObj->cb->jobcb->getMaxQ= ueuedJobs(obj)) { goto error; } =20 - while (!nested && !qemuDomainNestedJobAllowed(&priv->job, job)) { + while (!nested && !qemuDomainNestedJobAllowed(jobObj, job)) { if (nowait) goto cleanup; =20 VIR_DEBUG("Waiting for async job (vm=3D%p name=3D%s)", obj, obj->d= ef->name); - if (virCondWaitUntil(&priv->job.asyncCond, &obj->parent.lock, then= ) < 0) + if (virCondWaitUntil(&jobObj->asyncCond, &obj->parent.lock, then) = < 0) goto error; } =20 - while (!qemuDomainObjCanSetJob(&priv->job, job, agentJob)) { + while (!qemuDomainObjCanSetJob(jobObj, job, agentJob)) { if (nowait) goto cleanup; =20 VIR_DEBUG("Waiting for job (vm=3D%p name=3D%s)", obj, obj->def->na= me); - if (virCondWaitUntil(&priv->job.cond, &obj->parent.lock, then) < 0) + if (virCondWaitUntil(&jobObj->cond, &obj->parent.lock, then) < 0) goto error; } =20 /* No job is active but a new async job could have been started while = obj * was unlocked, so we need to recheck it. */ - if (!nested && !qemuDomainNestedJobAllowed(&priv->job, job)) + if (!nested && !qemuDomainNestedJobAllowed(jobObj, job)) goto retry; =20 ignore_value(virTimeMillisNow(&now)); =20 if (job) { - qemuDomainObjResetJob(&priv->job); + qemuDomainObjResetJob(jobObj); =20 if (job !=3D QEMU_JOB_ASYNC) { VIR_DEBUG("Started job: %s (async=3D%s vm=3D%p name=3D%s)", qemuDomainJobTypeToString(job), - qemuDomainAsyncJobTypeToString(priv->job.asyncJob), + qemuDomainAsyncJobTypeToString(jobObj->asyncJob), obj, obj->def->name); - priv->job.active =3D job; - priv->job.owner =3D virThreadSelfID(); - priv->job.ownerAPI =3D virThreadJobGet(); - priv->job.started =3D now; + jobObj->active =3D job; + jobObj->owner =3D virThreadSelfID(); + jobObj->ownerAPI =3D virThreadJobGet(); + jobObj->started =3D now; } else { VIR_DEBUG("Started async job: %s (vm=3D%p name=3D%s)", qemuDomainAsyncJobTypeToString(asyncJob), obj, obj->def->name); - qemuDomainObjResetAsyncJob(&priv->job); - priv->job.cb->jobcb->currentJobInfoInit(&priv->job, now); - priv->job.asyncJob =3D asyncJob; - priv->job.asyncOwner =3D virThreadSelfID(); - priv->job.asyncOwnerAPI =3D virThreadJobGet(); - priv->job.asyncStarted =3D now; + qemuDomainObjResetAsyncJob(jobObj); + jobObj->cb->jobcb->currentJobInfoInit(jobObj, now); + jobObj->asyncJob =3D asyncJob; + jobObj->asyncOwner =3D virThreadSelfID(); + jobObj->asyncOwnerAPI =3D virThreadJobGet(); + jobObj->asyncStarted =3D now; } } =20 if (agentJob) { - qemuDomainObjResetAgentJob(&priv->job); + qemuDomainObjResetAgentJob(jobObj); =20 VIR_DEBUG("Started agent job: %s (vm=3D%p name=3D%s job=3D%s async= =3D%s)", qemuDomainAgentJobTypeToString(agentJob), obj, obj->def->name, - qemuDomainJobTypeToString(priv->job.active), - qemuDomainAsyncJobTypeToString(priv->job.asyncJob)); - priv->job.agentActive =3D agentJob; - priv->job.agentOwner =3D virThreadSelfID(); - priv->job.agentOwnerAPI =3D virThreadJobGet(); - priv->job.agentStarted =3D now; + qemuDomainJobTypeToString(jobObj->active), + qemuDomainAsyncJobTypeToString(jobObj->asyncJob)); + jobObj->agentActive =3D agentJob; + jobObj->agentOwner =3D virThreadSelfID(); + jobObj->agentOwnerAPI =3D virThreadJobGet(); + jobObj->agentStarted =3D now; } =20 if (qemuDomainTrackJob(job)) @@ -442,12 +434,12 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, =20 error: ignore_value(virTimeMillisNow(&now)); - if (priv->job.active && priv->job.started) - duration =3D now - priv->job.started; - if (priv->job.agentActive && priv->job.agentStarted) - agentDuration =3D now - priv->job.agentStarted; - if (priv->job.asyncJob && priv->job.asyncStarted) - asyncDuration =3D now - priv->job.asyncStarted; + if (jobObj->active && jobObj->started) + duration =3D now - jobObj->started; + if (jobObj->agentActive && jobObj->agentStarted) + agentDuration =3D now - jobObj->agentStarted; + if (jobObj->asyncJob && jobObj->asyncStarted) + asyncDuration =3D now - jobObj->asyncStarted; =20 VIR_WARN("Cannot start job (%s, %s, %s) for domain %s; " "current job is (%s, %s, %s) " @@ -457,24 +449,24 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, qemuDomainAgentJobTypeToString(agentJob), qemuDomainAsyncJobTypeToString(asyncJob), obj->def->name, - qemuDomainJobTypeToString(priv->job.active), - qemuDomainAgentJobTypeToString(priv->job.agentActive), - qemuDomainAsyncJobTypeToString(priv->job.asyncJob), - priv->job.owner, NULLSTR(priv->job.ownerAPI), - priv->job.agentOwner, NULLSTR(priv->job.agentOwnerAPI), - priv->job.asyncOwner, NULLSTR(priv->job.asyncOwnerAPI), - priv->job.apiFlags, + qemuDomainJobTypeToString(jobObj->active), + qemuDomainAgentJobTypeToString(jobObj->agentActive), + qemuDomainAsyncJobTypeToString(jobObj->asyncJob), + jobObj->owner, NULLSTR(jobObj->ownerAPI), + jobObj->agentOwner, NULLSTR(jobObj->agentOwnerAPI), + jobObj->asyncOwner, NULLSTR(jobObj->asyncOwnerAPI), + jobObj->apiFlags, duration / 1000, agentDuration / 1000, asyncDuration / 1000); =20 if (job) { - if (nested || qemuDomainNestedJobAllowed(&priv->job, job)) - blocker =3D priv->job.ownerAPI; + if (nested || qemuDomainNestedJobAllowed(jobObj, job)) + blocker =3D jobObj->ownerAPI; else - blocker =3D priv->job.asyncOwnerAPI; + blocker =3D jobObj->asyncOwnerAPI; } =20 if (agentJob) - agentBlocker =3D priv->job.agentOwnerAPI; + agentBlocker =3D jobObj->agentOwnerAPI; =20 if (errno =3D=3D ETIMEDOUT) { if (blocker && agentBlocker) { @@ -497,8 +489,8 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, _("cannot acquire state change lock")); } ret =3D -2; - } else if (priv->job.cb->jobcb->getMaxQueuedJobs(obj) && - priv->job.cb->jobcb->getJobsQueued(obj) > priv->job.cb->job= cb->getMaxQueuedJobs(obj)) { + } else if (jobObj->cb->jobcb->getMaxQueuedJobs(obj) && + jobObj->cb->jobcb->getJobsQueued(obj) > jobObj->cb->jobcb->= getMaxQueuedJobs(obj)) { if (blocker && agentBlocker) { virReportError(VIR_ERR_OPERATION_FAILED, _("cannot acquire state change " @@ -528,7 +520,7 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, } =20 cleanup: - priv->job.cb->jobcb->decreaseJobsQueued(obj); + jobObj->cb->jobcb->decreaseJobsQueued(obj); return ret; } =20 @@ -541,11 +533,9 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, * Successful calls must be followed by EndJob eventually */ int qemuDomainObjBeginJob(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj, qemuDomainJob job) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; - qemuDomainJobObjPtr jobObj =3D &priv->job; - if (qemuDomainObjBeginJobInternal(obj, jobObj, job, QEMU_AGENT_JOB_NONE, QEMU_ASYNC_JOB_NONE, false) < 0) @@ -563,52 +553,48 @@ int qemuDomainObjBeginJob(virDomainObjPtr obj, */ int qemuDomainObjBeginAgentJob(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj, qemuDomainAgentJob agentJob) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; - qemuDomainJobObjPtr jobObj =3D &priv->job; - return qemuDomainObjBeginJobInternal(obj, jobObj, QEMU_JOB_NONE, agentJob, QEMU_ASYNC_JOB_NONE, false); } =20 int qemuDomainObjBeginAsyncJob(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj, qemuDomainAsyncJob asyncJob, virDomainJobOperation operation, unsigned long apiFlags) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; - - if (qemuDomainObjBeginJobInternal(obj, &priv->job, QEMU_JOB_ASYNC, + if (qemuDomainObjBeginJobInternal(obj, jobObj, QEMU_JOB_ASYNC, QEMU_AGENT_JOB_NONE, asyncJob, false) < 0) return -1; =20 - priv->job.cb->jobcb->setJobInfoOperation(&priv->job, operation); - priv->job.apiFlags =3D apiFlags; + jobObj->cb->jobcb->setJobInfoOperation(jobObj, operation); + jobObj->apiFlags =3D apiFlags; return 0; } =20 int qemuDomainObjBeginNestedJob(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj, qemuDomainAsyncJob asyncJob) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; - - if (asyncJob !=3D priv->job.asyncJob) { + if (asyncJob !=3D jobObj->asyncJob) { virReportError(VIR_ERR_INTERNAL_ERROR, _("unexpected async job %d type expected %d"), - asyncJob, priv->job.asyncJob); + asyncJob, jobObj->asyncJob); return -1; } =20 - if (priv->job.asyncOwner !=3D virThreadSelfID()) { + if (jobObj->asyncOwner !=3D virThreadSelfID()) { VIR_WARN("This thread doesn't seem to be the async job owner: %llu= ", - priv->job.asyncOwner); + jobObj->asyncOwner); } =20 - return qemuDomainObjBeginJobInternal(obj, &priv->job, + return qemuDomainObjBeginJobInternal(obj, jobObj, QEMU_JOB_ASYNC_NESTED, QEMU_AGENT_JOB_NONE, QEMU_ASYNC_JOB_NONE, @@ -619,6 +605,7 @@ qemuDomainObjBeginNestedJob(virDomainObjPtr obj, * qemuDomainObjBeginJobNowait: * * @obj: domain object + * @jobObj: qemuDomainJobObjPtr * @job: qemuDomainJob to start * * Acquires job for a domain object which must be locked before @@ -629,11 +616,9 @@ qemuDomainObjBeginNestedJob(virDomainObjPtr obj, */ int qemuDomainObjBeginJobNowait(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj, qemuDomainJob job) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; - qemuDomainJobObjPtr jobObj =3D &priv->job; - return qemuDomainObjBeginJobInternal(obj, jobObj, job, QEMU_AGENT_JOB_NONE, QEMU_ASYNC_JOB_NONE, true); @@ -646,104 +631,101 @@ qemuDomainObjBeginJobNowait(virDomainObjPtr obj, * earlier qemuDomainBeginJob() call */ void -qemuDomainObjEndJob(virDomainObjPtr obj) +qemuDomainObjEndJob(virDomainObjPtr obj, qemuDomainJobObjPtr jobObj) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; - qemuDomainJob job =3D priv->job.active; + qemuDomainJob job =3D jobObj->active; =20 - priv->job.cb->jobcb->decreaseJobsQueued(obj); + jobObj->cb->jobcb->decreaseJobsQueued(obj); =20 VIR_DEBUG("Stopping job: %s (async=3D%s vm=3D%p name=3D%s)", qemuDomainJobTypeToString(job), - qemuDomainAsyncJobTypeToString(priv->job.asyncJob), + qemuDomainAsyncJobTypeToString(jobObj->asyncJob), obj, obj->def->name); =20 - qemuDomainObjResetJob(&priv->job); + qemuDomainObjResetJob(jobObj); if (qemuDomainTrackJob(job)) - priv->job.cb->saveStatus(obj); + jobObj->cb->saveStatus(obj); /* We indeed need to wake up ALL threads waiting because * grabbing a job requires checking more variables. */ - virCondBroadcast(&priv->job.cond); + virCondBroadcast(&jobObj->cond); } =20 void -qemuDomainObjEndAgentJob(virDomainObjPtr obj) +qemuDomainObjEndAgentJob(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; - qemuDomainAgentJob agentJob =3D priv->job.agentActive; + qemuDomainAgentJob agentJob =3D jobObj->agentActive; =20 - priv->job.cb->jobcb->decreaseJobsQueued(obj); + jobObj->cb->jobcb->decreaseJobsQueued(obj); =20 VIR_DEBUG("Stopping agent job: %s (async=3D%s vm=3D%p name=3D%s)", qemuDomainAgentJobTypeToString(agentJob), - qemuDomainAsyncJobTypeToString(priv->job.asyncJob), + qemuDomainAsyncJobTypeToString(jobObj->asyncJob), obj, obj->def->name); =20 - qemuDomainObjResetAgentJob(&priv->job); + qemuDomainObjResetAgentJob(jobObj); /* We indeed need to wake up ALL threads waiting because * grabbing a job requires checking more variables. */ - virCondBroadcast(&priv->job.cond); + virCondBroadcast(&jobObj->cond); } =20 void -qemuDomainObjEndAsyncJob(virDomainObjPtr obj) +qemuDomainObjEndAsyncJob(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; - - priv->job.cb->jobcb->decreaseJobsQueued(obj); + jobObj->cb->jobcb->decreaseJobsQueued(obj); =20 VIR_DEBUG("Stopping async job: %s (vm=3D%p name=3D%s)", - qemuDomainAsyncJobTypeToString(priv->job.asyncJob), + qemuDomainAsyncJobTypeToString(jobObj->asyncJob), obj, obj->def->name); =20 - qemuDomainObjResetAsyncJob(&priv->job); - priv->job.cb->saveStatus(obj); - virCondBroadcast(&priv->job.asyncCond); + qemuDomainObjResetAsyncJob(jobObj); + jobObj->cb->saveStatus(obj); + virCondBroadcast(&jobObj->asyncCond); } =20 void -qemuDomainObjAbortAsyncJob(virDomainObjPtr obj) +qemuDomainObjAbortAsyncJob(virDomainObjPtr obj, + qemuDomainJobObjPtr job) { - qemuDomainObjPrivatePtr priv =3D obj->privateData; - VIR_DEBUG("Requesting abort of async job: %s (vm=3D%p name=3D%s)", - qemuDomainAsyncJobTypeToString(priv->job.asyncJob), + qemuDomainAsyncJobTypeToString(job->asyncJob), obj, obj->def->name); =20 - priv->job.abortJob =3D true; + job->abortJob =3D true; virDomainObjBroadcast(obj); } =20 int qemuDomainObjPrivateXMLFormatJob(virBufferPtr buf, - virDomainObjPtr vm) + virDomainObjPtr vm, + qemuDomainJobObjPtr jobObj) { - qemuDomainObjPrivatePtr priv =3D vm->privateData; g_auto(virBuffer) attrBuf =3D VIR_BUFFER_INITIALIZER; g_auto(virBuffer) childBuf =3D VIR_BUFFER_INIT_CHILD(buf); - qemuDomainJob job =3D priv->job.active; + qemuDomainJob job =3D jobObj->active; =20 if (!qemuDomainTrackJob(job)) job =3D QEMU_JOB_NONE; =20 if (job =3D=3D QEMU_JOB_NONE && - priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_NONE) + jobObj->asyncJob =3D=3D QEMU_ASYNC_JOB_NONE) return 0; =20 virBufferAsprintf(&attrBuf, " type=3D'%s' async=3D'%s'", qemuDomainJobTypeToString(job), - qemuDomainAsyncJobTypeToString(priv->job.asyncJob)); + qemuDomainAsyncJobTypeToString(jobObj->asyncJob)); =20 - if (priv->job.phase) { + if (jobObj->phase) { virBufferAsprintf(&attrBuf, " phase=3D'%s'", - qemuDomainAsyncJobPhaseToString(priv->job.asyncJ= ob, - priv->job.phase)= ); + qemuDomainAsyncJobPhaseToString(jobObj->asyncJob, + jobObj->phase)); } =20 - if (priv->job.asyncJob !=3D QEMU_ASYNC_JOB_NONE) - virBufferAsprintf(&attrBuf, " flags=3D'0x%lx'", priv->job.apiFlags= ); + if (jobObj->asyncJob !=3D QEMU_ASYNC_JOB_NONE) + virBufferAsprintf(&attrBuf, " flags=3D'0x%lx'", jobObj->apiFlags); =20 - if (priv->job.cb->jobcb->formatJob(&childBuf, &priv->job, vm) < 0) + if (jobObj->cb->jobcb->formatJob(&childBuf, jobObj, vm) < 0) return -1; =20 virXMLFormatElement(buf, "job", &attrBuf, &childBuf); @@ -754,10 +736,9 @@ qemuDomainObjPrivateXMLFormatJob(virBufferPtr buf, =20 int qemuDomainObjPrivateXMLParseJob(virDomainObjPtr vm, - xmlXPathContextPtr ctxt) + xmlXPathContextPtr ctxt, + qemuDomainJobObjPtr job) { - qemuDomainObjPrivatePtr priv =3D vm->privateData; - qemuDomainJobObjPtr job =3D &priv->job; VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *tmp =3D NULL; =20 @@ -773,7 +754,7 @@ qemuDomainObjPrivateXMLParseJob(virDomainObjPtr vm, return -1; } VIR_FREE(tmp); - priv->job.active =3D type; + job->active =3D type; } =20 if ((tmp =3D virXPathString("string(@async)", ctxt))) { @@ -785,11 +766,11 @@ qemuDomainObjPrivateXMLParseJob(virDomainObjPtr vm, return -1; } VIR_FREE(tmp); - priv->job.asyncJob =3D async; + job->asyncJob =3D async; =20 if ((tmp =3D virXPathString("string(@phase)", ctxt))) { - priv->job.phase =3D qemuDomainAsyncJobPhaseFromString(async, t= mp); - if (priv->job.phase < 0) { + job->phase =3D qemuDomainAsyncJobPhaseFromString(async, tmp); + if (job->phase < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Unknown job phase %s"), tmp); return -1; @@ -798,12 +779,12 @@ qemuDomainObjPrivateXMLParseJob(virDomainObjPtr vm, } } =20 - if (virXPathULongHex("string(@flags)", ctxt, &priv->job.apiFlags) =3D= =3D -2) { + if (virXPathULongHex("string(@flags)", ctxt, &job->apiFlags) =3D=3D -2= ) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid job flags"= )); return -1; } =20 - if (priv->job.cb->jobcb->parseJob(ctxt, job, vm) < 0) + if (job->cb->jobcb->parseJob(ctxt, job, vm) < 0) return -1; =20 return 0; diff --git a/src/qemu/qemu_domainjob.h b/src/qemu/qemu_domainjob.h index 32ff01009d..f7e5cfa1fd 100644 --- a/src/qemu/qemu_domainjob.h +++ b/src/qemu/qemu_domainjob.h @@ -182,35 +182,45 @@ int qemuDomainAsyncJobPhaseFromString(qemuDomainAsync= Job job, const char *phase); =20 int qemuDomainObjBeginJob(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj, qemuDomainJob job) G_GNUC_WARN_UNUSED_RESULT; int qemuDomainObjBeginAgentJob(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj, qemuDomainAgentJob agentJob) G_GNUC_WARN_UNUSED_RESULT; int qemuDomainObjBeginAsyncJob(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj, qemuDomainAsyncJob asyncJob, virDomainJobOperation operation, unsigned long apiFlags) G_GNUC_WARN_UNUSED_RESULT; int qemuDomainObjBeginNestedJob(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj, qemuDomainAsyncJob asyncJob) G_GNUC_WARN_UNUSED_RESULT; int qemuDomainObjBeginJobNowait(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj, qemuDomainJob job) G_GNUC_WARN_UNUSED_RESULT; =20 -void qemuDomainObjEndJob(virDomainObjPtr obj); -void qemuDomainObjEndAgentJob(virDomainObjPtr obj); -void qemuDomainObjEndAsyncJob(virDomainObjPtr obj); -void qemuDomainObjAbortAsyncJob(virDomainObjPtr obj); +void qemuDomainObjEndJob(virDomainObjPtr obj, qemuDomainJobObjPtr jobObj); +void qemuDomainObjEndAgentJob(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj); +void qemuDomainObjEndAsyncJob(virDomainObjPtr obj, + qemuDomainJobObjPtr jobObj); +void qemuDomainObjAbortAsyncJob(virDomainObjPtr obj, + qemuDomainJobObjPtr job); void qemuDomainObjSetJobPhase(virDomainObjPtr obj, + qemuDomainJobObjPtr job, int phase); -void qemuDomainObjSetAsyncJobMask(virDomainObjPtr obj, +void qemuDomainObjSetAsyncJobMask(qemuDomainJobObjPtr job, unsigned long long allowedJobs); -int qemuDomainObjRestoreJob(virDomainObjPtr obj, - qemuDomainJobObjPtr job); -void qemuDomainObjDiscardAsyncJob(virDomainObjPtr obj); -void qemuDomainObjReleaseAsyncJob(virDomainObjPtr obj); +int qemuDomainObjRestoreJob(qemuDomainJobObjPtr job, + qemuDomainJobObjPtr oldJob); +void qemuDomainObjDiscardAsyncJob(virDomainObjPtr obj, + qemuDomainJobObjPtr job); +void qemuDomainObjReleaseAsyncJob(qemuDomainJobObjPtr job); =20 bool qemuDomainTrackJob(qemuDomainJob job); =20 @@ -224,8 +234,10 @@ bool qemuDomainJobAllowed(qemuDomainJobObjPtr jobs, qe= muDomainJob newJob); =20 int qemuDomainObjPrivateXMLFormatJob(virBufferPtr buf, - virDomainObjPtr vm); + virDomainObjPtr vm, + qemuDomainJobObjPtr jobObj); =20 int qemuDomainObjPrivateXMLParseJob(virDomainObjPtr vm, - xmlXPathContextPtr ctxt); + xmlXPathContextPtr ctxt, + qemuDomainJobObjPtr job); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 974f71b22f..c0b986cddf 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1811,7 +1811,7 @@ static int qemuDomainSuspend(virDomainPtr dom) cfg =3D virQEMUDriverGetConfig(driver); priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_SUSPEND) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_SUSPEND) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -1838,7 +1838,7 @@ static int qemuDomainSuspend(virDomainPtr dom) ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -1850,6 +1850,7 @@ static int qemuDomainSuspend(virDomainPtr dom) static int qemuDomainResume(virDomainPtr dom) { virQEMUDriverPtr driver =3D dom->conn->privateData; + qemuDomainObjPrivatePtr priv; virDomainObjPtr vm; int ret =3D -1; int state; @@ -1860,11 +1861,12 @@ static int qemuDomainResume(virDomainPtr dom) return -1; =20 cfg =3D virQEMUDriverGetConfig(driver); + priv =3D vm->privateData; =20 if (virDomainResumeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -1896,7 +1898,7 @@ static int qemuDomainResume(virDomainPtr dom) ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -1912,10 +1914,11 @@ qemuDomainShutdownFlagsAgent(virQEMUDriverPtr drive= r, { int ret =3D -1; qemuAgentPtr agent; + qemuDomainObjPrivatePtr priv =3D vm->privateData; int agentFlag =3D isReboot ? QEMU_AGENT_SHUTDOWN_REBOOT : QEMU_AGENT_SHUTDOWN_POWERDOWN; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, QEMU_AGENT_JOB_MODIFY)= < 0) return -1; =20 if (virDomainObjGetState(vm, NULL) !=3D VIR_DOMAIN_RUNNING) { @@ -1933,7 +1936,7 @@ qemuDomainShutdownFlagsAgent(virQEMUDriverPtr driver, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); return ret; } =20 @@ -1948,7 +1951,7 @@ qemuDomainShutdownFlagsMonitor(virQEMUDriverPtr drive= r, =20 priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjGetState(vm, NULL) !=3D VIR_DOMAIN_RUNNING) { @@ -1964,7 +1967,7 @@ qemuDomainShutdownFlagsMonitor(virQEMUDriverPtr drive= r, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -2043,11 +2046,13 @@ qemuDomainRebootAgent(virQEMUDriverPtr driver, qemuAgentPtr agent; int ret =3D -1; int agentFlag =3D QEMU_AGENT_SHUTDOWN_REBOOT; + qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 if (!isReboot) agentFlag =3D QEMU_AGENT_SHUTDOWN_POWERDOWN; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_MODIFY) < 0) return -1; =20 if (!qemuDomainAgentAvailable(vm, agentForced)) @@ -2062,7 +2067,7 @@ qemuDomainRebootAgent(virQEMUDriverPtr driver, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); return ret; } =20 @@ -2075,7 +2080,7 @@ qemuDomainRebootMonitor(virQEMUDriverPtr driver, qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -2088,7 +2093,7 @@ qemuDomainRebootMonitor(virQEMUDriverPtr driver, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -2161,16 +2166,17 @@ qemuDomainReset(virDomainPtr dom, unsigned int flag= s) if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainResetEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - priv =3D vm->privateData; qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorSystemReset(priv->mon); if (qemuDomainObjExitMonitor(vm) < 0) @@ -2183,7 +2189,7 @@ qemuDomainReset(virDomainPtr dom, unsigned int flags) virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_CRAS= HED); =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2254,7 +2260,7 @@ qemuDomainDestroyFlags(virDomainPtr dom, endjob: if (ret =3D=3D 0) qemuDomainRemoveInactive(driver, vm); - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2324,11 +2330,12 @@ static int qemuDomainSetMemoryFlags(virDomainPtr do= m, unsigned long newmem, goto cleanup; =20 cfg =3D virQEMUDriverGetConfig(driver); + priv =3D vm->privateData; =20 if (virDomainSetMemoryFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -2390,7 +2397,6 @@ static int qemuDomainSetMemoryFlags(virDomainPtr dom,= unsigned long newmem, } =20 if (def) { - priv =3D vm->privateData; qemuDomainObjEnterMonitor(vm); r =3D qemuMonitorSetBalloon(priv->mon, newmem); if (qemuDomainObjExitMonitor(vm) < 0 || r < 0) @@ -2415,7 +2421,7 @@ static int qemuDomainSetMemoryFlags(virDomainPtr dom,= unsigned long newmem, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2450,11 +2456,12 @@ static int qemuDomainSetMemoryStatsPeriod(virDomain= Ptr dom, int period, goto cleanup; =20 cfg =3D virQEMUDriverGetConfig(driver); + priv =3D vm->privateData; =20 if (virDomainSetMemoryStatsPeriodEnsureACL(dom->conn, vm->def, flags) = < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -2500,7 +2507,7 @@ static int qemuDomainSetMemoryStatsPeriod(virDomainPt= r dom, int period, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2523,7 +2530,7 @@ static int qemuDomainInjectNMI(virDomainPtr domain, u= nsigned int flags) =20 priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -2535,7 +2542,7 @@ static int qemuDomainInjectNMI(virDomainPtr domain, u= nsigned int flags) ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2582,7 +2589,7 @@ static int qemuDomainSendKey(virDomainPtr domain, if (virDomainSendKeyEnsureACL(domain->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -2594,7 +2601,7 @@ static int qemuDomainSendKey(virDomainPtr domain, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2764,7 +2771,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, if (!qemuMigrationSrcIsAllowed(driver, vm, false, 0)) goto cleanup; =20 - if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_SAVE, + if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_SAVE, VIR_DOMAIN_JOB_OPERATION_SAVE, flags) <= 0) goto cleanup; =20 @@ -2858,7 +2865,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, virErrorRestore(&save_err); } } - qemuDomainObjEndAsyncJob(vm); + qemuDomainObjEndAsyncJob(vm, &priv->job); if (ret =3D=3D 0) qemuDomainRemoveInactiveJob(driver, vm); =20 @@ -3271,10 +3278,12 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) return -1; =20 + priv =3D vm->privateData; + if (virDomainCoreDumpWithFormatEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_DUMP, + if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_DUMP, VIR_DOMAIN_JOB_OPERATION_DUMP, flags) < 0) goto cleanup; @@ -3341,7 +3350,7 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, } } =20 - qemuDomainObjEndAsyncJob(vm); + qemuDomainObjEndAsyncJob(vm, &priv->job); if (ret =3D=3D 0 && flags & VIR_DUMP_CRASH) qemuDomainRemoveInactiveJob(driver, vm); =20 @@ -3391,7 +3400,7 @@ qemuDomainScreenshot(virDomainPtr dom, if (virDomainScreenshotEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -3465,7 +3474,7 @@ qemuDomainScreenshot(virDomainPtr dom, if (unlink_tmp) unlink(tmp); =20 - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -3506,13 +3515,14 @@ processWatchdogEvent(virQEMUDriverPtr driver, g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); g_autofree char *dumpfile =3D getAutoDumpPath(driver, vm); unsigned int flags =3D VIR_DUMP_MEMORY_ONLY; + qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 if (!dumpfile) return; =20 switch (action) { case VIR_DOMAIN_WATCHDOG_ACTION_DUMP: - if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_DUMP, + if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_DUMP, VIR_DOMAIN_JOB_OPERATION_DUMP, flags) < 0) { return; @@ -3540,7 +3550,7 @@ processWatchdogEvent(virQEMUDriverPtr driver, } =20 endjob: - qemuDomainObjEndAsyncJob(vm); + qemuDomainObjEndAsyncJob(vm, &priv->job); } =20 static int @@ -3589,7 +3599,7 @@ processGuestPanicEvent(virQEMUDriverPtr driver, bool removeInactive =3D false; unsigned long flags =3D VIR_DUMP_MEMORY_ONLY; =20 - if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_DUMP, + if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_DUMP, VIR_DOMAIN_JOB_OPERATION_DUMP, flags) <= 0) return; =20 @@ -3655,7 +3665,7 @@ processGuestPanicEvent(virQEMUDriverPtr driver, } =20 endjob: - qemuDomainObjEndAsyncJob(vm); + qemuDomainObjEndAsyncJob(vm, &priv->job); if (removeInactive) qemuDomainRemoveInactiveJob(driver, vm); } @@ -3667,12 +3677,13 @@ processDeviceDeletedEvent(virQEMUDriverPtr driver, const char *devAlias) { g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); + qemuDomainObjPrivatePtr priv =3D vm->privateData; virDomainDeviceDef dev; =20 VIR_DEBUG("Removing device %s from domain %p %s", devAlias, vm, vm->def->name); =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -3695,7 +3706,7 @@ processDeviceDeletedEvent(virQEMUDriverPtr driver, devAlias); =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); } =20 =20 @@ -3910,7 +3921,7 @@ processNicRxFilterChangedEvent(virDomainObjPtr vm, "from domain %p %s", devAlias, vm, vm->def->name); =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -3992,7 +4003,7 @@ processNicRxFilterChangedEvent(virDomainObjPtr vm, } =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virNetDevRxFilterFree(hostFilter); @@ -4038,7 +4049,7 @@ processSerialChangedEvent(virQEMUDriverPtr driver, memset(&dev, 0, sizeof(dev)); } =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -4079,7 +4090,7 @@ processSerialChangedEvent(virQEMUDriverPtr driver, } =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); } =20 =20 @@ -4091,8 +4102,9 @@ processBlockJobEvent(virDomainObjPtr vm, { virDomainDiskDefPtr disk; g_autoptr(qemuBlockJobData) job =3D NULL; + qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -4117,7 +4129,7 @@ processBlockJobEvent(virDomainObjPtr vm, qemuBlockJobUpdate(vm, job, QEMU_ASYNC_JOB_NONE); =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); } =20 =20 @@ -4125,7 +4137,9 @@ static void processJobStatusChangeEvent(virDomainObjPtr vm, qemuBlockJobDataPtr job) { - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + qemuDomainObjPrivatePtr priv =3D vm->privateData; + + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -4136,7 +4150,7 @@ processJobStatusChangeEvent(virDomainObjPtr vm, qemuBlockJobUpdate(vm, job, QEMU_ASYNC_JOB_NONE); =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); } =20 =20 @@ -4182,7 +4196,7 @@ processMonitorEOFEvent(virQEMUDriverPtr driver, =20 endjob: qemuDomainRemoveInactive(driver, vm); - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); } =20 =20 @@ -4421,6 +4435,7 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, bool hotpluggable =3D !!(flags & VIR_DOMAIN_VCPU_HOTPLUGGABLE); bool useAgent =3D !!(flags & VIR_DOMAIN_VCPU_GUEST); int ret =3D -1; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG | @@ -4431,15 +4446,18 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainSetVcpusFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 =20 if (useAgent) { - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; } else { - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; } =20 @@ -4456,9 +4474,9 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, =20 endjob: if (useAgent) - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); else - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -4569,6 +4587,7 @@ qemuDomainPinVcpuFlags(virDomainPtr dom, virBitmapPtr pcpumap =3D NULL; virDomainVcpuDefPtr vcpuinfo =3D NULL; g_autoptr(virQEMUDriverConfig) cfg =3D NULL; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -4578,10 +4597,12 @@ qemuDomainPinVcpuFlags(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainPinVcpuFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -4620,7 +4641,7 @@ qemuDomainPinVcpuFlags(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -4709,13 +4730,14 @@ qemuDomainPinEmulator(virDomainPtr dom, if (virDomainPinEmulatorEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + priv =3D vm->privateData; + + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) goto endjob; =20 - priv =3D vm->privateData; =20 if (!(pcpumap =3D virBitmapNewData(cpumap, maplen))) goto endjob; @@ -4776,7 +4798,7 @@ qemuDomainPinEmulator(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: if (cgroup_emulator) @@ -4878,6 +4900,7 @@ qemuDomainGetVcpusFlags(virDomainPtr dom, unsigned in= t flags) qemuAgentPtr agent; int ncpuinfo =3D -1; size_t i; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG | @@ -4887,6 +4910,8 @@ qemuDomainGetVcpusFlags(virDomainPtr dom, unsigned in= t flags) if (!(vm =3D qemuDomainObjFromDomain(dom))) return -1; =20 + priv =3D vm->privateData; + if (virDomainGetVcpusFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 @@ -4894,7 +4919,8 @@ qemuDomainGetVcpusFlags(virDomainPtr dom, unsigned in= t flags) goto cleanup; =20 if (flags & VIR_DOMAIN_VCPU_GUEST) { - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -4912,7 +4938,7 @@ qemuDomainGetVcpusFlags(virDomainPtr dom, unsigned in= t flags) qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); =20 if (ncpuinfo < 0) goto cleanup; @@ -4970,14 +4996,14 @@ static int qemuDomainGetIOThreadsLive(virDomainObjPtr vm, virDomainIOThreadInfoPtr **info) { - qemuDomainObjPrivatePtr priv; + qemuDomainObjPrivatePtr priv =3D vm->privateData; qemuMonitorIOThreadInfoPtr *iothreads =3D NULL; virDomainIOThreadInfoPtr *info_ret =3D NULL; int niothreads =3D 0; size_t i; int ret =3D -1; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -4986,7 +5012,6 @@ qemuDomainGetIOThreadsLive(virDomainObjPtr vm, goto endjob; } =20 - priv =3D vm->privateData; if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_IOTHREAD)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("IOThreads not supported with this binary")); @@ -5027,7 +5052,7 @@ qemuDomainGetIOThreadsLive(virDomainObjPtr vm, ret =3D niothreads; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: if (info_ret) { @@ -5165,7 +5190,7 @@ qemuDomainPinIOThread(virDomainPtr dom, if (virDomainPinIOThreadEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -5254,7 +5279,7 @@ qemuDomainPinIOThread(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: if (cgroup_iothread) @@ -5615,7 +5640,7 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, =20 priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -5702,7 +5727,7 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 return ret; } @@ -6699,6 +6724,7 @@ qemuDomainUndefineFlags(virDomainPtr dom, int ret =3D -1; int nsnapshots; int ncheckpoints; + qemuDomainObjPrivatePtr priv; g_autoptr(virQEMUDriverConfig) cfg =3D NULL; g_autofree char *nvram_path =3D NULL; =20 @@ -6718,12 +6744,14 @@ qemuDomainUndefineFlags(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) return -1; =20 + priv =3D vm->privateData; + cfg =3D virQEMUDriverGetConfig(driver); =20 if (virDomainUndefineFlagsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (!vm->persistent) { @@ -6819,7 +6847,7 @@ qemuDomainUndefineFlags(virDomainPtr dom, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -7786,6 +7814,7 @@ qemuDomainAttachDeviceFlags(virDomainPtr dom, { virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; + qemuDomainObjPrivatePtr priv; int ret =3D -1; =20 virNWFilterReadLockFilterUpdates(); @@ -7793,10 +7822,12 @@ qemuDomainAttachDeviceFlags(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainAttachDeviceFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjUpdateModificationImpact(vm, &flags) < 0) @@ -7808,7 +7839,7 @@ qemuDomainAttachDeviceFlags(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -7853,7 +7884,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr d= om, if (virDomainUpdateDeviceFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjUpdateModificationImpact(vm, &flags) < 0) @@ -7922,7 +7953,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr d= om, } =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainDefFree(vmdef); @@ -8100,15 +8131,18 @@ qemuDomainDetachDeviceFlags(virDomainPtr dom, { virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; + qemuDomainObjPrivatePtr priv; int ret =3D -1; =20 if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainDetachDeviceFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjUpdateModificationImpact(vm, &flags) < 0) @@ -8120,7 +8154,7 @@ qemuDomainDetachDeviceFlags(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -8135,15 +8169,18 @@ qemuDomainDetachDeviceAlias(virDomainPtr dom, { virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; + qemuDomainObjPrivatePtr priv; int ret =3D -1; =20 if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainDetachDeviceAliasEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjUpdateModificationImpact(vm, &flags) < 0) @@ -8155,7 +8192,7 @@ qemuDomainDetachDeviceAlias(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -8198,11 +8235,13 @@ static int qemuDomainSetAutostart(virDomainPtr dom, g_autofree char *autostartLink =3D NULL; int ret =3D -1; g_autoptr(virQEMUDriverConfig) cfg =3D NULL; + qemuDomainObjPrivatePtr priv; =20 if (!(vm =3D qemuDomainObjFromDomain(dom))) return -1; =20 cfg =3D virQEMUDriverGetConfig(driver); + priv =3D vm->privateData; =20 if (virDomainSetAutostartEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -8216,7 +8255,7 @@ static int qemuDomainSetAutostart(virDomainPtr dom, autostart =3D (autostart !=3D 0); =20 if (vm->autostart !=3D autostart) { - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (!(configFile =3D virDomainConfigFile(cfg->configDir, vm->def->= name))) @@ -8254,7 +8293,7 @@ static int qemuDomainSetAutostart(virDomainPtr dom, vm->autostart =3D autostart; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); } ret =3D 0; =20 @@ -8362,7 +8401,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, goto cleanup; } =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -8396,7 +8435,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, } =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -8538,7 +8577,7 @@ qemuDomainSetMemoryParameters(virDomainPtr dom, goto cleanup; } =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 /* QEMU and LXC implementation are identical */ @@ -8569,7 +8608,7 @@ qemuDomainSetMemoryParameters(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -8792,7 +8831,7 @@ qemuDomainSetNumaParameters(virDomainPtr dom, } } =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -8847,7 +8886,7 @@ qemuDomainSetNumaParameters(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virBitmapFree(nodeset); @@ -9001,7 +9040,7 @@ qemuDomainSetPerfEvents(virDomainPtr dom, if (virDomainSetPerfEventsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -9043,7 +9082,7 @@ qemuDomainSetPerfEvents(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -9072,17 +9111,17 @@ qemuDomainGetPerfEvents(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainGetPerfEventsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (!(def =3D virDomainObjGetOneDef(vm, flags))) goto endjob; =20 - priv =3D vm->privateData; - for (i =3D 0; i < VIR_PERF_EVENT_LAST; i++) { bool perf_enabled; =20 @@ -9104,7 +9143,7 @@ qemuDomainGetPerfEvents(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -9278,7 +9317,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr do= m, goto cleanup; } =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -9512,7 +9551,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr do= m, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainDefFree(persistentDefCopy); @@ -9806,7 +9845,7 @@ qemuDomainBlockResize(virDomainPtr dom, if (virDomainBlockResizeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -9851,7 +9890,7 @@ qemuDomainBlockResize(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -9996,14 +10035,17 @@ qemuDomainBlockStats(virDomainPtr dom, qemuBlockStatsPtr blockstats =3D NULL; int ret =3D -1; virDomainObjPtr vm; + qemuDomainObjPrivatePtr priv; =20 if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainBlockStatsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -10026,7 +10068,7 @@ qemuDomainBlockStats(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -10046,6 +10088,7 @@ qemuDomainBlockStatsFlags(virDomainPtr dom, qemuBlockStatsPtr blockstats =3D NULL; int nstats; int ret =3D -1; + qemuDomainObjPrivatePtr priv; =20 VIR_DEBUG("params=3D%p, flags=3D0x%x", params, flags); =20 @@ -10057,10 +10100,12 @@ qemuDomainBlockStatsFlags(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainBlockStatsFlagsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -10113,7 +10158,7 @@ qemuDomainBlockStatsFlags(virDomainPtr dom, *nparams =3D nstats; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: VIR_FREE(blockstats); @@ -10176,6 +10221,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom, bool inboundSpecified =3D false, outboundSpecified =3D false; int actualType; bool qosSupported =3D true; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -10201,11 +10247,12 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom, return -1; =20 cfg =3D virQEMUDriverGetConfig(driver); + priv =3D vm->privateData; =20 if (virDomainSetInterfaceParametersEnsureACL(dom->conn, vm->def, flags= ) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -10379,7 +10426,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virNetDevBandwidthFree(bandwidth); @@ -10542,6 +10589,7 @@ qemuDomainMemoryStats(virDomainPtr dom, unsigned int flags) { virDomainObjPtr vm; + qemuDomainObjPrivatePtr priv; int ret =3D -1; =20 virCheckFlags(0, -1); @@ -10549,15 +10597,17 @@ qemuDomainMemoryStats(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainMemoryStatsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 ret =3D qemuDomainMemoryStatsInternal(vm, stats, nr_stats); =20 - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -10647,6 +10697,7 @@ qemuDomainMemoryPeek(virDomainPtr dom, goto cleanup; =20 cfg =3D virQEMUDriverGetConfig(driver); + priv =3D vm->privateData; =20 if (virDomainMemoryPeekEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -10657,7 +10708,7 @@ qemuDomainMemoryPeek(virDomainPtr dom, goto cleanup; } =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -10675,7 +10726,6 @@ qemuDomainMemoryPeek(virDomainPtr dom, =20 qemuSecurityDomainSetPathLabel(driver, vm, tmp, false); =20 - priv =3D vm->privateData; qemuDomainObjEnterMonitor(vm); if (flags =3D=3D VIR_MEMORY_VIRTUAL) { if (qemuMonitorSaveVirtualMemory(priv->mon, offset, size, tmp) < 0= ) { @@ -10702,7 +10752,7 @@ qemuDomainMemoryPeek(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: VIR_FORCE_CLOSE(fd); @@ -10922,6 +10972,7 @@ qemuDomainGetBlockInfo(virDomainPtr dom, { virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; + qemuDomainObjPrivatePtr priv; int ret =3D -1; virDomainDiskDefPtr disk; g_autoptr(virQEMUDriverConfig) cfg =3D NULL; @@ -10933,11 +10984,12 @@ qemuDomainGetBlockInfo(virDomainPtr dom, return -1; =20 cfg =3D virQEMUDriverGetConfig(driver); + priv =3D vm->privateData; =20 if (virDomainGetBlockInfoEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (!(disk =3D virDomainDiskByName(vm->def, path, false))) { @@ -11009,7 +11061,7 @@ qemuDomainGetBlockInfo(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); cleanup: VIR_FREE(entry); virDomainObjEndAPI(&vm); @@ -12595,7 +12647,7 @@ qemuDomainGetJobStatsInternal(virDomainObjPtr vm, return -1; } =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -12631,7 +12683,7 @@ qemuDomainGetJobStatsInternal(virDomainObjPtr vm, ret =3D 0; =20 cleanup: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -12725,7 +12777,7 @@ qemuDomainAbortJobMigration(virDomainObjPtr vm) =20 VIR_DEBUG("Cancelling migration job at client request"); =20 - qemuDomainObjAbortAsyncJob(vm); + qemuDomainObjAbortAsyncJob(vm, &priv->job); qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorMigrateCancel(priv->mon); if (qemuDomainObjExitMonitor(vm) < 0) @@ -12746,16 +12798,17 @@ static int qemuDomainAbortJob(virDomainPtr dom) if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainAbortJobEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_ABORT) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_ABORT) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - priv =3D vm->privateData; jobPriv =3D priv->job.privateData; =20 switch (priv->job.asyncJob) { @@ -12818,7 +12871,7 @@ static int qemuDomainAbortJob(virDomainPtr dom) } =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -12842,17 +12895,17 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainMigrateSetMaxDowntimeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MIGRATION_OP) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MIGRATION_OP) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - priv =3D vm->privateData; - VIR_DEBUG("Setting migration downtime to %llums", downtime); =20 if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_PARAM_DOWNTIME)= ) { @@ -12877,7 +12930,7 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -12894,16 +12947,19 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom, qemuMigrationParamsPtr migParams =3D NULL; int ret =3D -1; int rc; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(0, -1); =20 if (!(vm =3D qemuDomainObjFromDomain(dom))) return -1; =20 + priv =3D vm->privateData; + if (virDomainMigrateGetMaxDowntimeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -12929,7 +12985,7 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: qemuMigrationParamsFree(migParams); @@ -12954,17 +13010,17 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr= dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainMigrateGetCompressionCacheEnsureACL(dom->conn, vm->def) <= 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - priv =3D vm->privateData; - if (!qemuMigrationCapsGet(vm, QEMU_MIGRATION_CAP_XBZRLE)) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("Compressed migration is not supported by " @@ -12991,7 +13047,7 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr d= om, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -13014,17 +13070,17 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr= dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainMigrateSetCompressionCacheEnsureACL(dom->conn, vm->def) <= 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MIGRATION_OP) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MIGRATION_OP) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - priv =3D vm->privateData; - if (!qemuMigrationCapsGet(vm, QEMU_MIGRATION_CAP_XBZRLE)) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("Compressed migration is not supported by " @@ -13055,7 +13111,7 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr d= om, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -13102,7 +13158,7 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, goto cleanup; } =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MIGRATION_OP) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MIGRATION_OP) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -13145,7 +13201,7 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -13160,9 +13216,10 @@ qemuDomainMigrationGetPostcopyBandwidth(virDomainO= bjPtr vm, g_autoptr(qemuMigrationParams) migParams =3D NULL; unsigned long long bw; int rc; + qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -13199,7 +13256,7 @@ qemuDomainMigrationGetPostcopyBandwidth(virDomainOb= jPtr vm, ret =3D 0; =20 cleanup: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -13252,17 +13309,17 @@ qemuDomainMigrateStartPostCopy(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainMigrateStartPostCopyEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MIGRATION_OP) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MIGRATION_OP) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - priv =3D vm->privateData; - if (priv->job.asyncJob !=3D QEMU_ASYNC_JOB_MIGRATION_OUT) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("post-copy can only be started while " @@ -13284,7 +13341,7 @@ qemuDomainMigrateStartPostCopy(virDomainPtr dom, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -13978,17 +14035,17 @@ static int qemuDomainQemuMonitorCommand(virDomain= Ptr domain, const char *cmd, if (!(vm =3D qemuDomainObjFromDomain(domain))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainQemuMonitorCommandEnsureACL(domain->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - priv =3D vm->privateData; - qemuDomainObjTaint(driver, vm, VIR_DOMAIN_TAINT_CUSTOM_MONITOR, NULL); =20 hmp =3D !!(flags & VIR_DOMAIN_QEMU_MONITOR_COMMAND_HMP); @@ -13999,7 +14056,7 @@ static int qemuDomainQemuMonitorCommand(virDomainPt= r domain, const char *cmd, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14317,7 +14374,7 @@ qemuDomainBlockPullCommon(virDomainObjPtr vm, goto cleanup; } =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14413,7 +14470,7 @@ qemuDomainBlockPullCommon(virDomainObjPtr vm, qemuBlockJobStarted(job, vm); =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: qemuBlockJobStartupFinalize(vm, job); @@ -14447,7 +14504,7 @@ qemuDomainBlockJobAbort(virDomainPtr dom, if (virDomainBlockJobAbortEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14530,7 +14587,7 @@ qemuDomainBlockJobAbort(virDomainPtr dom, endjob: if (job && !async) qemuBlockJobSyncEnd(vm, job, QEMU_ASYNC_JOB_NONE); - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14597,17 +14654,19 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom, int ret =3D -1; qemuMonitorBlockJobInfo rawInfo; g_autoptr(qemuBlockJobData) job =3D NULL; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(VIR_DOMAIN_BLOCK_JOB_INFO_BANDWIDTH_BYTES, -1); =20 if (!(vm =3D qemuDomainObjFromDomain(dom))) return -1; =20 + priv =3D vm->privateData; + if (virDomainGetBlockJobInfoEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14635,7 +14694,7 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom, } =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14654,6 +14713,7 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom, virDomainObjPtr vm; unsigned long long speed =3D bandwidth; g_autoptr(qemuBlockJobData) job =3D NULL; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(VIR_DOMAIN_BLOCK_JOB_SPEED_BANDWIDTH_BYTES, -1); =20 @@ -14671,10 +14731,12 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) return -1; =20 + priv =3D vm->privateData; + if (virDomainBlockJobSetSpeedEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14697,7 +14759,7 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14876,7 +14938,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, return -1; } =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -15152,7 +15214,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, if (need_unlink && virStorageFileUnlink(mirror) < 0) VIR_WARN("%s", _("unable to remove just-created copy target")); virStorageFileDeinit(mirror); - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); qemuBlockJobStartupFinalize(vm, job); =20 return ret; @@ -15376,7 +15438,7 @@ qemuDomainBlockCommit(virDomainPtr dom, if (virDomainBlockCommitEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -15592,7 +15654,7 @@ qemuDomainBlockCommit(virDomainPtr dom, virErrorRestore(&orig_err); } qemuBlockJobStartupFinalize(vm, job); - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -15616,17 +15678,17 @@ qemuDomainOpenGraphics(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) return -1; =20 + priv =3D vm->privateData; + if (virDomainOpenGraphicsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - priv =3D vm->privateData; - if (idx >=3D vm->def->ngraphics) { virReportError(VIR_ERR_INTERNAL_ERROR, _("No graphics backend with index %d"), idx); @@ -15664,7 +15726,7 @@ qemuDomainOpenGraphics(virDomainPtr dom, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -15732,14 +15794,14 @@ qemuDomainOpenGraphicsFD(virDomainPtr dom, if (qemuSecurityClearSocketLabel(driver->securityManager, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorOpenGraphics(priv->mon, protocol, pair[1], "graphic= sfd", (flags & VIR_DOMAIN_OPEN_GRAPHICS_SKIPAU= TH)); if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); if (ret < 0) goto cleanup; =20 @@ -15977,12 +16039,11 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, goto cleanup; =20 cfg =3D virQEMUDriverGetConfig(driver); + priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 - priv =3D vm->privateData; - if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) goto endjob; =20 @@ -16244,7 +16305,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: VIR_FREE(info.group_name); @@ -16288,7 +16349,7 @@ qemuDomainGetBlockIoTune(virDomainPtr dom, if (virDomainGetBlockIoTuneEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 /* the API check guarantees that only one of the definitions will be s= et */ @@ -16401,7 +16462,7 @@ qemuDomainGetBlockIoTune(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: VIR_FREE(reply.group_name); @@ -16434,7 +16495,7 @@ qemuDomainGetDiskErrors(virDomainPtr dom, if (virDomainGetDiskErrorsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -16475,7 +16536,7 @@ qemuDomainGetDiskErrors(virDomainPtr dom, ret =3D n; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -16497,6 +16558,7 @@ qemuDomainSetMetadata(virDomainPtr dom, { virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; + qemuDomainObjPrivatePtr priv; g_autoptr(virQEMUDriverConfig) cfg =3D NULL; int ret =3D -1; =20 @@ -16507,11 +16569,12 @@ qemuDomainSetMetadata(virDomainPtr dom, return -1; =20 cfg =3D virQEMUDriverGetConfig(driver); + priv =3D vm->privateData; =20 if (virDomainSetMetadataEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 ret =3D virDomainObjSetMetadata(vm, type, metadata, key, uri, @@ -16524,7 +16587,7 @@ qemuDomainSetMetadata(virDomainPtr dom, virObjectEventStateQueue(driver->domainEventState, ev); } =20 - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -16633,7 +16696,7 @@ qemuDomainQueryWakeupSuspendSupport(virDomainObjPtr= vm, if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_QUERY_CURRENT_MACHINE)) return -1; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) return -1; =20 if ((ret =3D virDomainObjCheckActive(vm)) < 0) @@ -16642,7 +16705,7 @@ qemuDomainQueryWakeupSuspendSupport(virDomainObjPtr= vm, ret =3D qemuDomainProbeQMPCurrentMachine(vm, wakeupSupported); =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -16652,9 +16715,11 @@ qemuDomainPMSuspendAgent(virDomainObjPtr vm, unsigned int target) { qemuAgentPtr agent; + qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_MODIFY) < 0) return -1; =20 if ((ret =3D virDomainObjCheckActive(vm)) < 0) @@ -16668,7 +16733,7 @@ qemuDomainPMSuspendAgent(virDomainObjPtr vm, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); return ret; } =20 @@ -16758,24 +16823,24 @@ qemuDomainPMWakeup(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainPMWakeupEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - priv =3D vm->privateData; - qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorSystemWakeup(priv->mon); if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -16809,16 +16874,20 @@ qemuDomainQemuAgentCommand(virDomainPtr domain, int ret =3D -1; char *result =3D NULL; qemuAgentPtr agent; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(0, NULL); =20 if (!(vm =3D qemuDomainObjFromDomain(domain))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainQemuAgentCommandEnsureACL(domain->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -16836,7 +16905,7 @@ qemuDomainQemuAgentCommand(virDomainPtr domain, VIR_FREE(result); =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -16895,6 +16964,7 @@ qemuDomainFSTrim(virDomainPtr dom, { virDomainObjPtr vm; qemuAgentPtr agent; + qemuDomainObjPrivatePtr priv; int ret =3D -1; =20 virCheckFlags(0, -1); @@ -16909,10 +16979,13 @@ qemuDomainFSTrim(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainFSTrimEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -16926,7 +16999,7 @@ qemuDomainFSTrim(virDomainPtr dom, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -17080,9 +17153,11 @@ qemuDomainGetHostnameAgent(virDomainObjPtr vm, char **hostname) { qemuAgentPtr agent; + qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_QUERY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17097,7 +17172,7 @@ qemuDomainGetHostnameAgent(virDomainObjPtr vm, =20 ret =3D 0; endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); return ret; } =20 @@ -17112,8 +17187,9 @@ qemuDomainGetHostnameLease(virDomainObjPtr vm, int n_leases; size_t i, j; int ret =3D -1; + qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17155,7 +17231,7 @@ qemuDomainGetHostnameLease(virDomainObjPtr vm, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -17211,6 +17287,7 @@ qemuDomainGetTime(virDomainPtr dom, unsigned int flags) { virDomainObjPtr vm =3D NULL; + qemuDomainObjPrivatePtr priv; qemuAgentPtr agent; int ret =3D -1; int rv; @@ -17220,10 +17297,13 @@ qemuDomainGetTime(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) return ret; =20 + priv =3D vm->privateData; + if (virDomainGetTimeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17242,7 +17322,7 @@ qemuDomainGetTime(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -17257,9 +17337,11 @@ qemuDomainSetTimeAgent(virDomainObjPtr vm, bool rtcSync) { qemuAgentPtr agent; + qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17273,7 +17355,7 @@ qemuDomainSetTimeAgent(virDomainObjPtr vm, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); return ret; } =20 @@ -17315,7 +17397,7 @@ qemuDomainSetTime(virDomainPtr dom, if (qemuDomainSetTimeAgent(vm, seconds, nseconds, rtcSync) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17335,7 +17417,7 @@ qemuDomainSetTime(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -17351,16 +17433,20 @@ qemuDomainFSFreeze(virDomainPtr dom, { virDomainObjPtr vm; int ret =3D -1; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(0, -1); =20 if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainFSFreezeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17369,7 +17455,7 @@ qemuDomainFSFreeze(virDomainPtr dom, ret =3D qemuSnapshotFSFreeze(vm, mountpoints, nmountpoints); =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -17385,6 +17471,7 @@ qemuDomainFSThaw(virDomainPtr dom, { virDomainObjPtr vm; int ret =3D -1; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(0, -1); =20 @@ -17397,10 +17484,13 @@ qemuDomainFSThaw(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainFSThawEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17409,7 +17499,7 @@ qemuDomainFSThaw(virDomainPtr dom, ret =3D qemuSnapshotFSThaw(vm, true); =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -18597,6 +18687,7 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, virErrorPtr orig_err =3D NULL; virDomainObjPtr *vms =3D NULL; virDomainObjPtr vm; + qemuDomainObjPrivatePtr priv; size_t nvms; virDomainStatsRecordPtr *tmpstats =3D NULL; bool enforce =3D !!(flags & VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_= STATS); @@ -18644,6 +18735,7 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, virDomainStatsRecordPtr tmp =3D NULL; domflags =3D 0; vm =3D vms[i]; + priv =3D vm->privateData; =20 virObjectLock(vm); =20 @@ -18651,9 +18743,9 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, int rv; =20 if (flags & VIR_CONNECT_GET_ALL_DOMAINS_STATS_NOWAIT) - rv =3D qemuDomainObjBeginJobNowait(vm, QEMU_JOB_QUERY); + rv =3D qemuDomainObjBeginJobNowait(vm, &priv->job, QEMU_JO= B_QUERY); else - rv =3D qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY); + rv =3D qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUER= Y); =20 if (rv =3D=3D 0) domflags |=3D QEMU_DOMAIN_STATS_HAVE_JOB; @@ -18664,7 +18756,7 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, domflags |=3D QEMU_DOMAIN_STATS_BACKING; if (qemuDomainGetStats(conn, vm, stats, &tmp, domflags) < 0) { if (HAVE_JOB(domflags) && vm) - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 virObjectUnlock(vm); goto cleanup; @@ -18674,7 +18766,7 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, tmpstats[nstats++] =3D tmp; =20 if (HAVE_JOB(domflags)) - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 virObjectUnlock(vm); } @@ -18720,8 +18812,10 @@ qemuDomainGetFSInfoAgent(virDomainObjPtr vm, { int ret =3D -1; qemuAgentPtr agent; + qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_QUERY) < 0) return ret; =20 if (virDomainObjCheckActive(vm) < 0) @@ -18735,7 +18829,7 @@ qemuDomainGetFSInfoAgent(virDomainObjPtr vm, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); return ret; } =20 @@ -18819,19 +18913,22 @@ qemuDomainGetFSInfo(virDomainPtr dom, qemuAgentFSInfoPtr *agentinfo =3D NULL; int ret =3D -1; int nfs; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(0, ret); =20 if (!(vm =3D qemuDomainObjFromDomain(dom))) return ret; =20 + priv =3D vm->privateData; + if (virDomainGetFSInfoEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 if ((nfs =3D qemuDomainGetFSInfoAgent(vm, &agentinfo)) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -18840,7 +18937,7 @@ qemuDomainGetFSInfo(virDomainPtr dom, ret =3D virDomainFSInfoFormat(agentinfo, nfs, vm->def, info); =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: g_free(agentinfo); @@ -18857,6 +18954,7 @@ qemuDomainInterfaceAddresses(virDomainPtr dom, { virDomainObjPtr vm =3D NULL; qemuAgentPtr agent; + qemuDomainObjPrivatePtr priv; int ret =3D -1; =20 virCheckFlags(0, -1); @@ -18864,6 +18962,8 @@ qemuDomainInterfaceAddresses(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainInterfaceAddressesEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 @@ -18876,7 +18976,8 @@ qemuDomainInterfaceAddresses(virDomainPtr dom, break; =20 case VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT: - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -18887,7 +18988,7 @@ qemuDomainInterfaceAddresses(virDomainPtr dom, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); =20 break; =20 @@ -18916,6 +19017,7 @@ qemuDomainSetUserPassword(virDomainPtr dom, { virDomainObjPtr vm; qemuAgentPtr agent; + qemuDomainObjPrivatePtr priv; int ret =3D -1; int rv; =20 @@ -18924,10 +19026,13 @@ qemuDomainSetUserPassword(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) return ret; =20 + priv =3D vm->privateData; + if (virDomainSetUserPasswordEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -18947,7 +19052,7 @@ qemuDomainSetUserPassword(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -19070,6 +19175,7 @@ static int qemuDomainRename(virDomainPtr dom, virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; int ret =3D -1; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(0, ret); =20 @@ -19079,7 +19185,9 @@ static int qemuDomainRename(virDomainPtr dom, if (virDomainRenameEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + priv =3D vm->privateData; + + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjIsActive(vm)) { @@ -19126,7 +19234,7 @@ static int qemuDomainRename(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -19206,6 +19314,7 @@ qemuDomainGetGuestVcpus(virDomainPtr dom, qemuAgentPtr agent; qemuAgentCPUInfoPtr info =3D NULL; int ninfo =3D 0; + qemuDomainObjPrivatePtr priv; int ret =3D -1; =20 virCheckFlags(0, ret); @@ -19213,10 +19322,13 @@ qemuDomainGetGuestVcpus(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainGetGuestVcpusEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, + QEMU_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -19235,7 +19347,7 @@ qemuDomainGetGuestVcpus(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: VIR_FREE(info); @@ -19254,6 +19366,7 @@ qemuDomainSetGuestVcpus(virDomainPtr dom, virBitmapPtr map =3D NULL; qemuAgentCPUInfoPtr info =3D NULL; qemuAgentPtr agent; + qemuDomainObjPrivatePtr priv; int ninfo =3D 0; size_t i; int ret =3D -1; @@ -19271,10 +19384,12 @@ qemuDomainSetGuestVcpus(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainSetGuestVcpusEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, QEMU_AGENT_JOB_MODIFY)= < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -19320,7 +19435,7 @@ qemuDomainSetGuestVcpus(virDomainPtr dom, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: VIR_FREE(info); @@ -19343,6 +19458,7 @@ qemuDomainSetVcpu(virDomainPtr dom, virBitmapPtr map =3D NULL; ssize_t lastvcpu; int ret =3D -1; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -19364,10 +19480,12 @@ qemuDomainSetVcpu(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainSetVcpuEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -19394,7 +19512,7 @@ qemuDomainSetVcpu(virDomainPtr dom, ret =3D qemuDomainSetVcpuInternal(driver, vm, def, persistentDef, map,= !!state); =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virBitmapFree(map); @@ -19426,7 +19544,7 @@ qemuDomainSetBlockThreshold(virDomainPtr dom, if (virDomainSetBlockThresholdEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -19463,7 +19581,7 @@ qemuDomainSetBlockThreshold(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -19521,7 +19639,7 @@ qemuDomainSetLifecycleAction(virDomainPtr dom, if (virDomainSetLifecycleActionEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -19552,7 +19670,7 @@ qemuDomainSetLifecycleAction(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -19641,10 +19759,11 @@ qemuDomainGetSEVMeasurement(virDomainObjPtr vm, int ret =3D -1; g_autofree char *tmp =3D NULL; int maxpar =3D 0; + qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 virCheckFlags(VIR_TYPED_PARAM_STRING_OKAY, -1); =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) return -1; =20 qemuDomainObjEnterMonitor(vm); @@ -19664,7 +19783,7 @@ qemuDomainGetSEVMeasurement(virDomainObjPtr vm, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -19832,6 +19951,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom, size_t nfs =3D 0; qemuAgentFSInfoPtr *agentfsinfo =3D NULL; size_t i; + qemuDomainObjPrivatePtr priv; =20 virCheckFlags(0, -1); =20 @@ -19841,10 +19961,12 @@ qemuDomainGetGuestInfo(virDomainPtr dom, if (!(vm =3D qemuDomainObjFromDomain(dom))) goto cleanup; =20 + priv =3D vm->privateData; + if (virDomainGetGuestInfoEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_QUERY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, QEMU_AGENT_JOB_QUERY) = < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -19892,10 +20014,10 @@ qemuDomainGetGuestInfo(virDomainPtr dom, qemuDomainObjExitAgent(vm, agent); =20 endagentjob: - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); =20 if (nfs > 0) { - if (qemuDomainObjBeginJob(vm, QEMU_JOB_QUERY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -19906,7 +20028,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom, qemuAgentFSInfoFormatParams(agentfsinfo, nfs, vm->def, params, npa= rams, &maxparams); =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); } =20 cleanup: diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 6b2978f745..4fa2e4cf62 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2005,7 +2005,7 @@ qemuMigrationSrcCleanup(virDomainObjPtr vm, switch ((virMigrationJobPhase) priv->job.phase) { case VIR_MIGRATION_PHASE_BEGIN3: /* just forget we were about to migrate */ - qemuDomainObjDiscardAsyncJob(vm); + qemuDomainObjDiscardAsyncJob(vm, &priv->job); break; =20 case VIR_MIGRATION_PHASE_PERFORM3_DONE: @@ -2015,7 +2015,7 @@ qemuMigrationSrcCleanup(virDomainObjPtr vm, qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags); /* clear the job and let higher levels decide what to do */ - qemuDomainObjDiscardAsyncJob(vm); + qemuDomainObjDiscardAsyncJob(vm, &priv->job); break; =20 case VIR_MIGRATION_PHASE_PERFORM3: @@ -2204,6 +2204,7 @@ qemuMigrationSrcBegin(virConnectPtr conn, unsigned long flags) { virQEMUDriverPtr driver =3D conn->privateData; + qemuDomainObjPrivatePtr priv =3D vm->privateData; char *xml =3D NULL; qemuDomainAsyncJob asyncJob; =20 @@ -2213,7 +2214,7 @@ qemuMigrationSrcBegin(virConnectPtr conn, goto cleanup; asyncJob =3D QEMU_ASYNC_JOB_MIGRATION_OUT; } else { - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; asyncJob =3D QEMU_ASYNC_JOB_NONE; } @@ -2258,7 +2259,7 @@ qemuMigrationSrcBegin(virConnectPtr conn, if (flags & VIR_MIGRATE_CHANGE_PROTECTION) qemuMigrationJobFinish(vm); else - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); goto cleanup; } =20 @@ -2283,7 +2284,7 @@ qemuMigrationDstPrepareCleanup(virQEMUDriverPtr drive= r, =20 if (!qemuMigrationJobIsActive(vm, QEMU_ASYNC_JOB_MIGRATION_IN)) return; - qemuDomainObjDiscardAsyncJob(vm); + qemuDomainObjDiscardAsyncJob(vm, &priv->job); } =20 static qemuProcessIncomingDefPtr @@ -5452,12 +5453,12 @@ qemuMigrationJobStart(virDomainObjPtr vm, JOB_MASK(QEMU_JOB_MIGRATION_OP); } =20 - if (qemuDomainObjBeginAsyncJob(vm, job, op, apiFlags) < 0) + if (qemuDomainObjBeginAsyncJob(vm, &priv->job, job, op, apiFlags) < 0) return -1; =20 jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION; =20 - qemuDomainObjSetAsyncJobMask(vm, mask); + qemuDomainObjSetAsyncJobMask(&priv->job, mask); return 0; } =20 @@ -5474,7 +5475,7 @@ qemuMigrationJobSetPhase(virDomainObjPtr vm, return; } =20 - qemuDomainObjSetJobPhase(vm, phase); + qemuDomainObjSetJobPhase(vm, &priv->job, phase); } =20 static void @@ -5487,7 +5488,8 @@ qemuMigrationJobStartPhase(virDomainObjPtr vm, static void qemuMigrationJobContinue(virDomainObjPtr vm) { - qemuDomainObjReleaseAsyncJob(vm); + qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainObjReleaseAsyncJob(&priv->job); } =20 static bool @@ -5513,7 +5515,8 @@ qemuMigrationJobIsActive(virDomainObjPtr vm, static void qemuMigrationJobFinish(virDomainObjPtr vm) { - qemuDomainObjEndAsyncJob(vm); + qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainObjEndAsyncJob(vm, &priv->job); } =20 =20 diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 5eadcd1a6c..b394bcbd3f 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -422,7 +422,7 @@ qemuProcessHandleReset(qemuMonitorPtr mon G_GNUC_UNUSED, if (vm->def->onReboot =3D=3D VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY || vm->def->onReboot =3D=3D VIR_DOMAIN_LIFECYCLE_ACTION_PRESERVE) { =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -436,7 +436,7 @@ qemuProcessHandleReset(qemuMonitorPtr mon G_GNUC_UNUSED, virDomainAuditStop(vm, "destroyed"); qemuDomainRemoveInactive(driver, vm); endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); } =20 ret =3D 0; @@ -467,7 +467,7 @@ qemuProcessFakeReboot(void *opaque) =20 VIR_DEBUG("vm=3D%p", vm); virObjectLock(vm); - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -505,7 +505,7 @@ qemuProcessFakeReboot(void *opaque) ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: priv->pausedShutdown =3D false; @@ -3642,9 +3642,10 @@ qemuProcessRecoverJob(virQEMUDriverPtr driver, priv->job.asyncOwnerAPI =3D virThreadJobGet(); priv->job.asyncStarted =3D now; =20 - qemuDomainObjSetAsyncJobMask(vm, (QEMU_JOB_DEFAULT_MASK | - JOB_MASK(QEMU_JOB_SUSPEND) | - JOB_MASK(QEMU_JOB_MODIFY))); + qemuDomainObjSetAsyncJobMask(&priv->job, + (QEMU_JOB_DEFAULT_MASK | + JOB_MASK(QEMU_JOB_SUSPEND) | + JOB_MASK(QEMU_JOB_MODIFY))); =20 /* We reset the job parameters for backup so that the job will look * active. This is possible because we are able to recover the sta= te @@ -4571,11 +4572,13 @@ qemuProcessBeginJob(virDomainObjPtr vm, virDomainJobOperation operation, unsigned long apiFlags) { - if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_START, + qemuDomainObjPrivatePtr priv =3D vm->privateData; + + if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_START, operation, apiFlags) < 0) return -1; =20 - qemuDomainObjSetAsyncJobMask(vm, QEMU_JOB_NONE); + qemuDomainObjSetAsyncJobMask(&priv->job, QEMU_JOB_NONE); return 0; } =20 @@ -4583,7 +4586,8 @@ qemuProcessBeginJob(virDomainObjPtr vm, void qemuProcessEndJob(virDomainObjPtr vm) { - qemuDomainObjEndAsyncJob(vm); + qemuDomainObjPrivatePtr priv =3D vm->privateData; + qemuDomainObjEndAsyncJob(vm, &priv->job); } =20 =20 @@ -7291,7 +7295,7 @@ qemuProcessBeginStopJob(virDomainObjPtr vm, /* Wake up anything waiting on domain condition */ virDomainObjBroadcast(vm); =20 - if (qemuDomainObjBeginJob(vm, job) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, job) < 0) goto cleanup; =20 ret =3D 0; @@ -7332,7 +7336,7 @@ void qemuProcessStop(virQEMUDriverPtr driver, virErrorPreserveLast(&orig_err); =20 if (asyncJob !=3D QEMU_ASYNC_JOB_NONE) { - if (qemuDomainObjBeginNestedJob(vm, asyncJob) < 0) + if (qemuDomainObjBeginNestedJob(vm, &priv->job, asyncJob) < 0) goto cleanup; } else if (priv->job.asyncJob !=3D QEMU_ASYNC_JOB_NONE && priv->job.asyncOwner =3D=3D virThreadSelfID() && @@ -7638,7 +7642,7 @@ void qemuProcessStop(virQEMUDriverPtr driver, =20 endjob: if (asyncJob !=3D QEMU_ASYNC_JOB_NONE) - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: virErrorRestore(&orig_err); @@ -7663,7 +7667,7 @@ qemuProcessAutoDestroy(virDomainObjPtr dom, if (priv->job.asyncJob) { VIR_DEBUG("vm=3D%s has long-term job active, cancelling", dom->def->name); - qemuDomainObjDiscardAsyncJob(dom); + qemuDomainObjDiscardAsyncJob(dom, &priv->job); } =20 VIR_DEBUG("Killing domain"); @@ -7681,7 +7685,7 @@ qemuProcessAutoDestroy(virDomainObjPtr dom, =20 qemuDomainRemoveInactive(driver, dom); =20 - qemuDomainObjEndJob(dom); + qemuDomainObjEndJob(dom, &priv->job); =20 virObjectEventStateQueue(driver->domainEventState, event); } @@ -8020,14 +8024,14 @@ qemuProcessReconnect(void *opaque) g_clear_object(&data->identity); VIR_FREE(data); =20 - qemuDomainObjRestoreJob(obj, &oldjob); + priv =3D obj->privateData; + qemuDomainObjRestoreJob(&priv->job, &oldjob); if (oldjob.asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_IN) stopFlags |=3D VIR_QEMU_PROCESS_STOP_MIGRATED; =20 cfg =3D virQEMUDriverGetConfig(driver); - priv =3D obj->privateData; =20 - if (qemuDomainObjBeginJob(obj, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(obj, &priv->job, QEMU_JOB_MODIFY) < 0) goto error; jobStarted =3D true; =20 @@ -8254,7 +8258,7 @@ qemuProcessReconnect(void *opaque) if (jobStarted) { if (!virDomainObjIsActive(obj)) qemuDomainRemoveInactive(driver, obj); - qemuDomainObjEndJob(obj); + qemuDomainObjEndJob(obj, &priv->job); } else { if (!virDomainObjIsActive(obj)) qemuDomainRemoveInactiveJob(driver, obj); diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index 292e360193..8d216bbdbd 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -1248,16 +1248,16 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr d= river, if (flags & VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE) { int freeze; =20 - if (qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) < 0) + if (qemuDomainObjBeginAgentJob(vm, &priv->job, QEMU_AGENT_JOB_MODI= FY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) { - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); goto cleanup; } =20 freeze =3D qemuSnapshotFSFreeze(vm, NULL, 0); - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); =20 if (freeze < 0) { /* the helper reported the error */ @@ -1312,7 +1312,7 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUM= P; =20 /* allow the migration job to be cancelled or the domain to be pau= sed */ - qemuDomainObjSetAsyncJobMask(vm, (QEMU_JOB_DEFAULT_MASK | + qemuDomainObjSetAsyncJobMask(&priv->job, (QEMU_JOB_DEFAULT_MASK | JOB_MASK(QEMU_JOB_SUSPEND) | JOB_MASK(QEMU_JOB_MIGRATION_OP))= ); =20 @@ -1342,7 +1342,7 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, memory_unlink =3D true; =20 /* forbid any further manipulation */ - qemuDomainObjSetAsyncJobMask(vm, QEMU_JOB_DEFAULT_MASK); + qemuDomainObjSetAsyncJobMask(&priv->job, QEMU_JOB_DEFAULT_MASK); } =20 /* the domain is now paused if a memory snapshot was requested */ @@ -1393,7 +1393,7 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, } =20 if (thaw !=3D 0 && - qemuDomainObjBeginAgentJob(vm, QEMU_AGENT_JOB_MODIFY) >=3D 0 && + qemuDomainObjBeginAgentJob(vm, &priv->job, QEMU_AGENT_JOB_MODIFY) = >=3D 0 && virDomainObjIsActive(vm)) { if (qemuSnapshotFSThaw(vm, ret =3D=3D 0 && thaw > 0) < 0) { /* helper reported the error, if it was needed */ @@ -1401,7 +1401,7 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, ret =3D -1; } =20 - qemuDomainObjEndAgentJob(vm); + qemuDomainObjEndAgentJob(vm, &priv->job); } =20 virQEMUSaveDataFree(data); @@ -1544,11 +1544,11 @@ qemuSnapshotCreateXML(virDomainPtr domain, * a regular job, so we need to set the job mask to disallow query as * 'savevm' blocks the monitor. External snapshot will then modify the * job mask appropriately. */ - if (qemuDomainObjBeginAsyncJob(vm, QEMU_ASYNC_JOB_SNAPSHOT, + if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_SNAPSHOT, VIR_DOMAIN_JOB_OPERATION_SNAPSHOT, flag= s) < 0) goto cleanup; =20 - qemuDomainObjSetAsyncJobMask(vm, QEMU_JOB_NONE); + qemuDomainObjSetAsyncJobMask(&priv->job, QEMU_JOB_NONE); =20 if (redefine) { if (virDomainSnapshotRedefinePrep(vm, &def, &snap, @@ -1679,7 +1679,7 @@ qemuSnapshotCreateXML(virDomainPtr domain, virDomainSnapshotObjListRemove(vm->snapshots, snap); } =20 - qemuDomainObjEndAsyncJob(vm); + qemuDomainObjEndAsyncJob(vm, &priv->job); =20 cleanup: return snapshot; @@ -2176,6 +2176,7 @@ qemuSnapshotDelete(virDomainObjPtr vm, virDomainMomentObjPtr snap =3D NULL; virQEMUMomentRemove rem; virQEMUMomentReparent rep; + qemuDomainObjPrivatePtr priv =3D vm->privateData; bool metadata_only =3D !!(flags & VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_= ONLY); int external =3D 0; g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); @@ -2184,7 +2185,7 @@ qemuSnapshotDelete(virDomainObjPtr vm, VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY | VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY, -1); =20 - if (qemuDomainObjBeginJob(vm, QEMU_JOB_MODIFY) < 0) + if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) goto cleanup; =20 if (!(snap =3D qemuSnapObjFromSnapshot(vm, snapshot))) @@ -2257,7 +2258,7 @@ qemuSnapshotDelete(virDomainObjPtr vm, } =20 endjob: - qemuDomainObjEndJob(vm); + qemuDomainObjEndJob(vm, &priv->job); =20 cleanup: return ret; --=20 2.25.1 From nobody Tue Apr 30 06:12:00 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1598422242; cv=none; d=zohomail.com; s=zohoarc; b=DoJeQdl3OtQHg88fFHsLuLgGhjfI17Pz+sm6A8fxpc05VrYDMay08beuzzDZKbeUyf6zYGtcWcIemJVTowx3uAk92bsJJYb8YxRnfPekUDbbaTanYDcJ6Tx7vSyeHJ5R9xTB0cK3kJ0kKnZYIcFA3q1rBv6lnjGqpkIUEdWUMS0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598422242; 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=nrQlgKFFXmIyTxcQKifgD0G+grBxDMZOEqgb1q6aMrA=; b=J3i52ejTOYVcFFPbmpnmcqwmGWCRMH1gO3gXg8SLdmYUtyWY9NrjfbQoKkkqXpcxX3aiPjbaeBdRtQCAndI1B3FTVpXlvn9WqbbhwEr+zR2e2gVY39Bb7BRUOXIYHCgPhOPHx5vCbHbJivSLvgNV8zLrxUn7c+TgVmdCR+XyERU= ARC-Authentication-Results: i=1; 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 header.from= (p=none dis=none) header.from= 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 1598422242564829.818791948504; Tue, 25 Aug 2020 23:10: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-343-NksJCycCNCKHVPHL-kuhug-1; Wed, 26 Aug 2020 02:10:37 -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 985161009443; Wed, 26 Aug 2020 06:10:31 +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 738FB7A410; Wed, 26 Aug 2020 06:10:31 +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 3D252668F1; Wed, 26 Aug 2020 06:10:31 +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 07Q6ATBS009007 for ; Wed, 26 Aug 2020 02:10:29 -0400 Received: by smtp.corp.redhat.com (Postfix) id E8464D0B3C; Wed, 26 Aug 2020 06:10:28 +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 C01D1D016B for ; Wed, 26 Aug 2020 06:10:26 +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 F007980405C for ; Wed, 26 Aug 2020 06:10:25 +0000 (UTC) Received: from mail-pg1-f177.google.com (mail-pg1-f177.google.com [209.85.215.177]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-11-6oeXIn1uP32phsIBbpVZPw-1; Wed, 26 Aug 2020 02:10:19 -0400 Received: by mail-pg1-f177.google.com with SMTP id d19so507188pgl.10; Tue, 25 Aug 2020 23:10:19 -0700 (PDT) Received: from localhost.localdomain ([116.72.86.23]) by smtp.gmail.com with ESMTPSA id hr13sm924745pjb.38.2020.08.25.23.10.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Aug 2020 23:10:15 -0700 (PDT) X-MC-Unique: NksJCycCNCKHVPHL-kuhug-1 X-MC-Unique: 6oeXIn1uP32phsIBbpVZPw-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=nrQlgKFFXmIyTxcQKifgD0G+grBxDMZOEqgb1q6aMrA=; b=fSlzPZxSy+xPLPUAcD16e3jUafvUoCk4Z216jxOrqmyECGHm2yZAHWdNoLhOAk6xWE j6eBPrPTBtlgw0e91ePc+JjYaDs3Re70I536I2/TmT7NjlpWVFWf5SiXw+goj2l/jgtr LRc6xqZmOxUYlerlNkuuhhWVLvOGvU8/G7lsqnJgvbzSuvN4qt7jneuoaKdl12NGkAQo 8rDKU19nSeRmbETaY+d0yXwRXn3Lf7vQJCQjOmKY/tOMIkeTngZ3b6gFNF3gYbOlpoT0 ypQ6h9iuNwMJZb5C0zkCbopGY7Qedgc3RLAON7fqbph2geGCEwGmbghUB5+jgEbWVPlC EouA== X-Gm-Message-State: AOAM530JQc+1OvsxzWqtAz5O+tFENTkE+Y5N3fjWNjaLLHw0FKxDdMFB DACnAfjy0F5fMIdQNyqyfnDBYFVeYmi4Xw== X-Google-Smtp-Source: ABdhPJxb54/cv4gKuhWqwm4ulk8KYAbaeubU4TxPJgVW7xMSbU3SuQCOD1+TwX6QSbzEf+BkLZjShA== X-Received: by 2002:a62:2d1:: with SMTP id 200mr11033785pfc.154.1598422216146; Tue, 25 Aug 2020 23:10:16 -0700 (PDT) From: Prathamesh Chavan To: libvir-list@redhat.com Subject: [GSoC][PATCH v4 8/8] virdomainjob: moved `qemu_domainjob` to `hypervisor/virdomainjob` Date: Wed, 26 Aug 2020 11:39:42 +0530 Message-Id: <20200826060942.17320-9-pc44800@gmail.com> In-Reply-To: <20200826060942.17320-1-pc44800@gmail.com> References: <20200826060942.17320-1-pc44800@gmail.com> MIME-Version: 1.0 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-loop: libvir-list@redhat.com Cc: mkletzan@redhat.com, mprivozn@redhat.com, Prathamesh Chavan , eskultet@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.006 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" After removing all the external dependencies that `qemu_domainjob` had, we move it to `hypervisor/virdomainjob` and thus create hypervisor-agnostic jobs. This change involved moving the file, and making corresponding name changes to funcitons and structures. Signed-off-by: Prathamesh Chavan --- po/POTFILES.in | 2 +- po/libvirt.pot | 34 +- src/hypervisor/meson.build | 1 + .../virdomainjob.c} | 395 ++++++------ src/hypervisor/virdomainjob.h | 243 +++++++ src/libvirt_private.syms | 28 + src/qemu/meson.build | 1 - src/qemu/qemu_backup.c | 46 +- src/qemu/qemu_backup.h | 2 +- src/qemu/qemu_block.c | 20 +- src/qemu/qemu_block.h | 12 +- src/qemu/qemu_blockjob.c | 32 +- src/qemu/qemu_checkpoint.c | 22 +- src/qemu/qemu_domain.c | 120 ++-- src/qemu/qemu_domain.h | 12 +- src/qemu/qemu_domainjob.h | 243 ------- src/qemu/qemu_driver.c | 592 +++++++++--------- src/qemu/qemu_hotplug.c | 44 +- src/qemu/qemu_hotplug.h | 8 +- src/qemu/qemu_migration.c | 316 +++++----- src/qemu/qemu_migration.h | 8 +- src/qemu/qemu_migration_cookie.c | 2 +- src/qemu/qemu_migration_params.c | 4 +- src/qemu/qemu_process.c | 222 +++---- src/qemu/qemu_process.h | 22 +- src/qemu/qemu_saveimage.c | 4 +- src/qemu/qemu_saveimage.h | 6 +- src/qemu/qemu_snapshot.c | 76 +-- 28 files changed, 1273 insertions(+), 1244 deletions(-) rename src/{qemu/qemu_domainjob.c =3D> hypervisor/virdomainjob.c} (60%) create mode 100644 src/hypervisor/virdomainjob.h delete mode 100644 src/qemu/qemu_domainjob.h diff --git a/po/POTFILES.in b/po/POTFILES.in index 3d6c20c55f..e844ed4006 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -81,6 +81,7 @@ @SRCDIR@src/hypervisor/domain_cgroup.c @SRCDIR@src/hypervisor/domain_driver.c @SRCDIR@src/hypervisor/virclosecallbacks.c +@SRCDIR@src/hypervisor/virdomainjob.c @SRCDIR@src/hypervisor/virhostdev.c @SRCDIR@src/interface/interface_backend_netcf.c @SRCDIR@src/interface/interface_backend_udev.c @@ -153,7 +154,6 @@ @SRCDIR@src/qemu/qemu_dbus.c @SRCDIR@src/qemu/qemu_domain.c @SRCDIR@src/qemu/qemu_domain_address.c -@SRCDIR@src/qemu/qemu_domainjob.c @SRCDIR@src/qemu/qemu_driver.c @SRCDIR@src/qemu/qemu_extdevice.c @SRCDIR@src/qemu/qemu_firmware.c diff --git a/po/libvirt.pot b/po/libvirt.pot index 92e77bf22b..26a43959b7 100644 --- a/po/libvirt.pot +++ b/po/libvirt.pot @@ -12344,7 +12344,7 @@ msgstr "" msgid "Invalid ipv6 setting '%s' in network '%s' NAT" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:1426 +#: src/hypervisor/virdomainjob.c:784 msgid "Invalid job flags" msgstr "" =20 @@ -23238,7 +23238,7 @@ msgstr "" msgid "Unknown architecture %s" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:1408 +#: src/hypervisor/virdomainjob.c:766 #, c-format msgid "Unknown async job type %s" msgstr "" @@ -23389,12 +23389,12 @@ msgstr "" msgid "Unknown job" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:1418 +#: src/hypervisor/virdomainjob.c:776 #, c-format msgid "Unknown job phase %s" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:1396 +#: src/hypervisor/virdomainjob.c:754 #, c-format msgid "Unknown job type %s" msgstr "" @@ -25838,50 +25838,50 @@ msgid "cannot abort migration in post-copy mode" msgstr "" =20 #: src/libxl/libxl_domain.c:152 src/lxc/lxc_domain.c:126 -#: src/qemu/qemu_domainjob.c:1010 src/vz/vz_utils.c:623 +#: src/hypervisor/virdomainjob.c:520 src/vz/vz_utils.c:623 msgid "cannot acquire job mutex" msgstr "" =20 #: src/libxl/libxl_domain.c:149 src/lxc/lxc_domain.c:123 -#: src/qemu/qemu_domainjob.c:980 src/vz/vz_utils.c:620 +#: src/hypervisor/virdomainjob.c:490 src/vz/vz_utils.c:620 msgid "cannot acquire state change lock" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:975 +#: src/hypervisor/virdomainjob.c:485 #, c-format msgid "cannot acquire state change lock (held by agent=3D%s)" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:999 +#: src/hypervisor/virdomainjob.c:509 #, c-format msgid "" "cannot acquire state change lock (held by agent=3D%s) due to max_queued l= imit" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:965 +#: src/hypervisor/virdomainjob.c:475 #, c-format msgid "cannot acquire state change lock (held by monitor=3D%s agent=3D%s)" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:987 +#: src/hypervisor/virdomainjob.c:497 #, c-format msgid "" "cannot acquire state change lock (held by monitor=3D%s agent=3D%s) due to= " "max_queued limit" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:970 +#: src/hypervisor/virdomainjob.c:480 #, c-format msgid "cannot acquire state change lock (held by monitor=3D%s)" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:993 +#: src/hypervisor/virdomainjob.c:503 #, c-format msgid "" "cannot acquire state change lock (held by monitor=3D%s) due to max_queued= limit" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:1005 +#: src/hypervisor/virdomainjob.c:514 msgid "cannot acquire state change lock due to max_queued limit" msgstr "" =20 @@ -34693,7 +34693,7 @@ msgstr "" msgid "invalid iothreads count '%s'" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:684 +#: src/qemu/qemu_domain.c:496 msgid "invalid job statistics type" msgstr "" =20 @@ -37902,11 +37902,11 @@ msgstr "" msgid "missing storage pool target path" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:1321 +#: src/qemu/qemu_domain.c:704 msgid "missing storage source format" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:1315 +#: src/qemu/qemu_domain.c:698 msgid "missing storage source type" msgstr "" =20 @@ -44855,7 +44855,7 @@ msgstr "" msgid "unexpected address type for usb disk" msgstr "" =20 -#: src/qemu/qemu_domainjob.c:1083 +#: src/hypervisor/virdomainjob.c:588 #, c-format msgid "unexpected async job %d type expected %d" msgstr "" diff --git a/src/hypervisor/meson.build b/src/hypervisor/meson.build index c81bdfa2fc..96afa0c52a 100644 --- a/src/hypervisor/meson.build +++ b/src/hypervisor/meson.build @@ -1,6 +1,7 @@ hypervisor_sources =3D [ 'domain_cgroup.c', 'domain_driver.c', + 'virdomainjob.c', 'virclosecallbacks.c', 'virhostdev.c', 'virmigration.c', diff --git a/src/qemu/qemu_domainjob.c b/src/hypervisor/virdomainjob.c similarity index 60% rename from src/qemu/qemu_domainjob.c rename to src/hypervisor/virdomainjob.c index ecd694958c..7de8d335e5 100644 --- a/src/qemu/qemu_domainjob.c +++ b/src/hypervisor/virdomainjob.c @@ -1,5 +1,5 @@ /* - * qemu_domainjob.c: helper functions for QEMU domain jobs + * virdomainjob.c: helper functions for domain jobs * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,20 +18,21 @@ =20 #include =20 -#include "qemu_migration.h" -#include "qemu_domainjob.h" +#include "domain_conf.h" +#include "virdomainjob.h" +#include "virmigration.h" #include "viralloc.h" #include "virlog.h" #include "virerror.h" #include "virtime.h" #include "virthreadjob.h" =20 -#define VIR_FROM_THIS VIR_FROM_QEMU +#define VIR_FROM_THIS VIR_FROM_NONE =20 -VIR_LOG_INIT("qemu.qemu_domainjob"); +VIR_LOG_INIT("util.virdomainjob"); =20 -VIR_ENUM_IMPL(qemuDomainJob, - QEMU_JOB_LAST, +VIR_ENUM_IMPL(virDomainJob, + VIR_JOB_LAST, "none", "query", "destroy", @@ -43,15 +44,15 @@ VIR_ENUM_IMPL(qemuDomainJob, "async nested", ); =20 -VIR_ENUM_IMPL(qemuDomainAgentJob, - QEMU_AGENT_JOB_LAST, +VIR_ENUM_IMPL(virDomainAgentJob, + VIR_AGENT_JOB_LAST, "none", "query", "modify", ); =20 -VIR_ENUM_IMPL(qemuDomainAsyncJob, - QEMU_ASYNC_JOB_LAST, +VIR_ENUM_IMPL(virDomainAsyncJob, + VIR_ASYNC_JOB_LAST, "none", "migration out", "migration in", @@ -63,22 +64,22 @@ VIR_ENUM_IMPL(qemuDomainAsyncJob, ); =20 const char * -qemuDomainAsyncJobPhaseToString(qemuDomainAsyncJob job, +virDomainAsyncJobPhaseToString(virDomainAsyncJob job, int phase G_GNUC_UNUSED) { switch (job) { - case QEMU_ASYNC_JOB_MIGRATION_OUT: - case QEMU_ASYNC_JOB_MIGRATION_IN: + case VIR_ASYNC_JOB_MIGRATION_OUT: + case VIR_ASYNC_JOB_MIGRATION_IN: return virMigrationJobPhaseTypeToString(phase); =20 - case QEMU_ASYNC_JOB_SAVE: - case QEMU_ASYNC_JOB_DUMP: - case QEMU_ASYNC_JOB_SNAPSHOT: - case QEMU_ASYNC_JOB_START: - case QEMU_ASYNC_JOB_NONE: - case QEMU_ASYNC_JOB_BACKUP: + case VIR_ASYNC_JOB_SAVE: + case VIR_ASYNC_JOB_DUMP: + case VIR_ASYNC_JOB_SNAPSHOT: + case VIR_ASYNC_JOB_START: + case VIR_ASYNC_JOB_NONE: + case VIR_ASYNC_JOB_BACKUP: G_GNUC_FALLTHROUGH; - case QEMU_ASYNC_JOB_LAST: + case VIR_ASYNC_JOB_LAST: break; } =20 @@ -86,25 +87,25 @@ qemuDomainAsyncJobPhaseToString(qemuDomainAsyncJob job, } =20 int -qemuDomainAsyncJobPhaseFromString(qemuDomainAsyncJob job, +virDomainAsyncJobPhaseFromString(virDomainAsyncJob job, const char *phase) { if (!phase) return 0; =20 switch (job) { - case QEMU_ASYNC_JOB_MIGRATION_OUT: - case QEMU_ASYNC_JOB_MIGRATION_IN: + case VIR_ASYNC_JOB_MIGRATION_OUT: + case VIR_ASYNC_JOB_MIGRATION_IN: return virMigrationJobPhaseTypeFromString(phase); =20 - case QEMU_ASYNC_JOB_SAVE: - case QEMU_ASYNC_JOB_DUMP: - case QEMU_ASYNC_JOB_SNAPSHOT: - case QEMU_ASYNC_JOB_START: - case QEMU_ASYNC_JOB_NONE: - case QEMU_ASYNC_JOB_BACKUP: + case VIR_ASYNC_JOB_SAVE: + case VIR_ASYNC_JOB_DUMP: + case VIR_ASYNC_JOB_SNAPSHOT: + case VIR_ASYNC_JOB_START: + case VIR_ASYNC_JOB_NONE: + case VIR_ASYNC_JOB_BACKUP: G_GNUC_FALLTHROUGH; - case QEMU_ASYNC_JOB_LAST: + case VIR_ASYNC_JOB_LAST: break; } =20 @@ -115,8 +116,8 @@ qemuDomainAsyncJobPhaseFromString(qemuDomainAsyncJob jo= b, } =20 int -qemuDomainObjInitJob(qemuDomainJobObjPtr job, - qemuDomainJobPrivateCallbacksPtr cb) +virDomainObjInitJob(virDomainJobObjPtr job, + virDomainJobPrivateCallbacksPtr cb) { memset(job, 0, sizeof(*job)); job->cb =3D cb; @@ -140,9 +141,9 @@ qemuDomainObjInitJob(qemuDomainJobObjPtr job, =20 =20 static void -qemuDomainObjResetJob(qemuDomainJobObjPtr job) +virDomainObjResetJob(virDomainJobObjPtr job) { - job->active =3D QEMU_JOB_NONE; + job->active =3D VIR_JOB_NONE; job->owner =3D 0; job->ownerAPI =3D NULL; job->started =3D 0; @@ -150,9 +151,9 @@ qemuDomainObjResetJob(qemuDomainJobObjPtr job) =20 =20 static void -qemuDomainObjResetAgentJob(qemuDomainJobObjPtr job) +virDomainObjResetAgentJob(virDomainJobObjPtr job) { - job->agentActive =3D QEMU_AGENT_JOB_NONE; + job->agentActive =3D VIR_AGENT_JOB_NONE; job->agentOwner =3D 0; job->agentOwnerAPI =3D NULL; job->agentStarted =3D 0; @@ -160,14 +161,14 @@ qemuDomainObjResetAgentJob(qemuDomainJobObjPtr job) =20 =20 static void -qemuDomainObjResetAsyncJob(qemuDomainJobObjPtr job) +virDomainObjResetAsyncJob(virDomainJobObjPtr job) { - job->asyncJob =3D QEMU_ASYNC_JOB_NONE; + job->asyncJob =3D VIR_ASYNC_JOB_NONE; job->asyncOwner =3D 0; job->asyncOwnerAPI =3D NULL; job->asyncStarted =3D 0; job->phase =3D 0; - job->mask =3D QEMU_JOB_DEFAULT_MASK; + job->mask =3D VIR_JOB_DEFAULT_MASK; job->abortJob =3D false; VIR_FREE(job->error); job->cb->jobcb->resetJobPrivate(job->privateData); @@ -175,8 +176,8 @@ qemuDomainObjResetAsyncJob(qemuDomainJobObjPtr job) } =20 int -qemuDomainObjRestoreJob(qemuDomainJobObjPtr job, - qemuDomainJobObjPtr oldJob) +virDomainObjRestoreJob(virDomainJobObjPtr job, + virDomainJobObjPtr oldJob) { memset(oldJob, 0, sizeof(*oldJob)); oldJob->active =3D job->active; @@ -191,32 +192,32 @@ qemuDomainObjRestoreJob(qemuDomainJobObjPtr job, return -1; oldJob->cb =3D job->cb; =20 - qemuDomainObjResetJob(job); - qemuDomainObjResetAsyncJob(job); + virDomainObjResetJob(job); + virDomainObjResetAsyncJob(job); return 0; } =20 void -qemuDomainObjFreeJob(qemuDomainJobObjPtr job) +virDomainObjFreeJob(virDomainJobObjPtr job) { - qemuDomainObjResetJob(job); - qemuDomainObjResetAsyncJob(job); + virDomainObjResetJob(job); + virDomainObjResetAsyncJob(job); job->cb->jobcb->freeJobPrivate(job->privateData); virCondDestroy(&job->cond); virCondDestroy(&job->asyncCond); } =20 bool -qemuDomainTrackJob(qemuDomainJob job) +virDomainTrackJob(virDomainJob job) { - return (QEMU_DOMAIN_TRACK_JOBS & JOB_MASK(job)) !=3D 0; + return (VIR_DOMAIN_TRACK_JOBS & JOB_MASK(job)) !=3D 0; } =20 =20 void -qemuDomainObjSetJobPhase(virDomainObjPtr obj, - qemuDomainJobObjPtr job, - int phase) +virDomainObjSetJobPhase(virDomainObjPtr obj, + virDomainJobObjPtr job, + int phase) { unsigned long long me =3D virThreadSelfID(); =20 @@ -224,12 +225,12 @@ qemuDomainObjSetJobPhase(virDomainObjPtr obj, return; =20 VIR_DEBUG("Setting '%s' phase to '%s'", - qemuDomainAsyncJobTypeToString(job->asyncJob), - qemuDomainAsyncJobPhaseToString(job->asyncJob, phase)); + virDomainAsyncJobTypeToString(job->asyncJob), + virDomainAsyncJobPhaseToString(job->asyncJob, phase)); =20 if (job->asyncOwner && me !=3D job->asyncOwner) { VIR_WARN("'%s' async job is owned by thread %llu", - qemuDomainAsyncJobTypeToString(job->asyncJob), + virDomainAsyncJobTypeToString(job->asyncJob), job->asyncOwner); } =20 @@ -239,77 +240,77 @@ qemuDomainObjSetJobPhase(virDomainObjPtr obj, } =20 void -qemuDomainObjSetAsyncJobMask(qemuDomainJobObjPtr job, - unsigned long long allowedJobs) +virDomainObjSetAsyncJobMask(virDomainJobObjPtr job, + unsigned long long allowedJobs) { if (!job->asyncJob) return; =20 - job->mask =3D allowedJobs | JOB_MASK(QEMU_JOB_DESTROY); + job->mask =3D allowedJobs | JOB_MASK(VIR_JOB_DESTROY); } =20 void -qemuDomainObjDiscardAsyncJob(virDomainObjPtr obj, - qemuDomainJobObjPtr job) +virDomainObjDiscardAsyncJob(virDomainObjPtr obj, + virDomainJobObjPtr job) { - if (job->active =3D=3D QEMU_JOB_ASYNC_NESTED) - qemuDomainObjResetJob(job); - qemuDomainObjResetAsyncJob(job); + if (job->active =3D=3D VIR_JOB_ASYNC_NESTED) + virDomainObjResetJob(job); + virDomainObjResetAsyncJob(job); job->cb->saveStatus(obj); } =20 void -qemuDomainObjReleaseAsyncJob(qemuDomainJobObjPtr job) +virDomainObjReleaseAsyncJob(virDomainJobObjPtr job) { VIR_DEBUG("Releasing ownership of '%s' async job", - qemuDomainAsyncJobTypeToString(job->asyncJob)); + virDomainAsyncJobTypeToString(job->asyncJob)); =20 if (job->asyncOwner !=3D virThreadSelfID()) { VIR_WARN("'%s' async job is owned by thread %llu", - qemuDomainAsyncJobTypeToString(job->asyncJob), + virDomainAsyncJobTypeToString(job->asyncJob), job->asyncOwner); } job->asyncOwner =3D 0; } =20 static bool -qemuDomainNestedJobAllowed(qemuDomainJobObjPtr jobs, qemuDomainJob newJob) +virDomainNestedJobAllowed(virDomainJobObjPtr jobs, virDomainJob newJob) { return !jobs->asyncJob || - newJob =3D=3D QEMU_JOB_NONE || + newJob =3D=3D VIR_JOB_NONE || (jobs->mask & JOB_MASK(newJob)) !=3D 0; } =20 bool -qemuDomainJobAllowed(qemuDomainJobObjPtr jobs, qemuDomainJob newJob) +virDomainJobAllowed(virDomainJobObjPtr jobs, virDomainJob newJob) { - return !jobs->active && qemuDomainNestedJobAllowed(jobs, newJob); + return !jobs->active && virDomainNestedJobAllowed(jobs, newJob); } =20 static bool -qemuDomainObjCanSetJob(qemuDomainJobObjPtr job, - qemuDomainJob newJob, - qemuDomainAgentJob newAgentJob) +virDomainObjCanSetJob(virDomainJobObjPtr job, + virDomainJob newJob, + virDomainAgentJob newAgentJob) { - return ((newJob =3D=3D QEMU_JOB_NONE || - job->active =3D=3D QEMU_JOB_NONE) && - (newAgentJob =3D=3D QEMU_AGENT_JOB_NONE || - job->agentActive =3D=3D QEMU_AGENT_JOB_NONE)); + return ((newJob =3D=3D VIR_JOB_NONE || + job->active =3D=3D VIR_JOB_NONE) && + (newAgentJob =3D=3D VIR_AGENT_JOB_NONE || + job->agentActive =3D=3D VIR_AGENT_JOB_NONE)); } =20 /* Give up waiting for mutex after 30 seconds */ -#define QEMU_JOB_WAIT_TIME (1000ull * 30) +#define VIR_JOB_WAIT_TIME (1000ull * 30) =20 /** - * qemuDomainObjBeginJobInternal: + * virDomainObjBeginJobInternal: * @obj: domain object - * @job: qemuDomainJob to start - * @asyncJob: qemuDomainAsyncJob to start + * @job: virDomainJob to start + * @asyncJob: virDomainAsyncJob to start * @nowait: don't wait trying to acquire @job * * Acquires job for a domain object which must be locked before * calling. If there's already a job running waits up to - * QEMU_JOB_WAIT_TIME after which the functions fails reporting + * VIR_JOB_WAIT_TIME after which the functions fails reporting * an error unless @nowait is set. * * If @nowait is true this function tries to acquire job and if @@ -322,17 +323,17 @@ qemuDomainObjCanSetJob(qemuDomainJobObjPtr job, * -1 otherwise. */ static int ATTRIBUTE_NONNULL(1) -qemuDomainObjBeginJobInternal(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj, - qemuDomainJob job, - qemuDomainAgentJob agentJob, - qemuDomainAsyncJob asyncJob, - bool nowait) +virDomainObjBeginJobInternal(virDomainObjPtr obj, + virDomainJobObjPtr jobObj, + virDomainJob job, + virDomainAgentJob agentJob, + virDomainAsyncJob asyncJob, + bool nowait) { unsigned long long now; unsigned long long then; - bool nested =3D job =3D=3D QEMU_JOB_ASYNC_NESTED; - bool async =3D job =3D=3D QEMU_JOB_ASYNC; + bool nested =3D job =3D=3D VIR_JOB_ASYNC_NESTED; + bool async =3D job =3D=3D VIR_JOB_ASYNC; const char *blocker =3D NULL; const char *agentBlocker =3D NULL; int ret =3D -1; @@ -342,28 +343,28 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, =20 VIR_DEBUG("Starting job: job=3D%s agentJob=3D%s asyncJob=3D%s " "(vm=3D%p name=3D%s, current job=3D%s agentJob=3D%s async=3D= %s)", - qemuDomainJobTypeToString(job), - qemuDomainAgentJobTypeToString(agentJob), - qemuDomainAsyncJobTypeToString(asyncJob), + virDomainJobTypeToString(job), + virDomainAgentJobTypeToString(agentJob), + virDomainAsyncJobTypeToString(asyncJob), obj, obj->def->name, - qemuDomainJobTypeToString(jobObj->active), - qemuDomainAgentJobTypeToString(jobObj->agentActive), - qemuDomainAsyncJobTypeToString(jobObj->asyncJob)); + virDomainJobTypeToString(jobObj->active), + virDomainAgentJobTypeToString(jobObj->agentActive), + virDomainAsyncJobTypeToString(jobObj->asyncJob)); =20 if (virTimeMillisNow(&now) < 0) return -1; =20 jobObj->cb->jobcb->increaseJobsQueued(obj); - then =3D now + QEMU_JOB_WAIT_TIME; + then =3D now + VIR_JOB_WAIT_TIME; =20 retry: - if ((!async && job !=3D QEMU_JOB_DESTROY) && + if ((!async && job !=3D VIR_JOB_DESTROY) && jobObj->cb->jobcb->getMaxQueuedJobs(obj) && jobObj->cb->jobcb->getJobsQueued(obj) > jobObj->cb->jobcb->getMaxQ= ueuedJobs(obj)) { goto error; } =20 - while (!nested && !qemuDomainNestedJobAllowed(jobObj, job)) { + while (!nested && !virDomainNestedJobAllowed(jobObj, job)) { if (nowait) goto cleanup; =20 @@ -372,7 +373,7 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, goto error; } =20 - while (!qemuDomainObjCanSetJob(jobObj, job, agentJob)) { + while (!virDomainObjCanSetJob(jobObj, job, agentJob)) { if (nowait) goto cleanup; =20 @@ -383,18 +384,18 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, =20 /* No job is active but a new async job could have been started while = obj * was unlocked, so we need to recheck it. */ - if (!nested && !qemuDomainNestedJobAllowed(jobObj, job)) + if (!nested && !virDomainNestedJobAllowed(jobObj, job)) goto retry; =20 ignore_value(virTimeMillisNow(&now)); =20 if (job) { - qemuDomainObjResetJob(jobObj); + virDomainObjResetJob(jobObj); =20 - if (job !=3D QEMU_JOB_ASYNC) { + if (job !=3D VIR_JOB_ASYNC) { VIR_DEBUG("Started job: %s (async=3D%s vm=3D%p name=3D%s)", - qemuDomainJobTypeToString(job), - qemuDomainAsyncJobTypeToString(jobObj->asyncJob), + virDomainJobTypeToString(job), + virDomainAsyncJobTypeToString(jobObj->asyncJob), obj, obj->def->name); jobObj->active =3D job; jobObj->owner =3D virThreadSelfID(); @@ -402,9 +403,9 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, jobObj->started =3D now; } else { VIR_DEBUG("Started async job: %s (vm=3D%p name=3D%s)", - qemuDomainAsyncJobTypeToString(asyncJob), + virDomainAsyncJobTypeToString(asyncJob), obj, obj->def->name); - qemuDomainObjResetAsyncJob(jobObj); + virDomainObjResetAsyncJob(jobObj); jobObj->cb->jobcb->currentJobInfoInit(jobObj, now); jobObj->asyncJob =3D asyncJob; jobObj->asyncOwner =3D virThreadSelfID(); @@ -414,20 +415,20 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, } =20 if (agentJob) { - qemuDomainObjResetAgentJob(jobObj); + virDomainObjResetAgentJob(jobObj); =20 VIR_DEBUG("Started agent job: %s (vm=3D%p name=3D%s job=3D%s async= =3D%s)", - qemuDomainAgentJobTypeToString(agentJob), + virDomainAgentJobTypeToString(agentJob), obj, obj->def->name, - qemuDomainJobTypeToString(jobObj->active), - qemuDomainAsyncJobTypeToString(jobObj->asyncJob)); + virDomainJobTypeToString(jobObj->active), + virDomainAsyncJobTypeToString(jobObj->asyncJob)); jobObj->agentActive =3D agentJob; jobObj->agentOwner =3D virThreadSelfID(); jobObj->agentOwnerAPI =3D virThreadJobGet(); jobObj->agentStarted =3D now; } =20 - if (qemuDomainTrackJob(job)) + if (virDomainTrackJob(job)) jobObj->cb->saveStatus(obj); =20 return 0; @@ -445,13 +446,13 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, "current job is (%s, %s, %s) " "owned by (%llu %s, %llu %s, %llu %s (flags=3D0x%lx)) " "for (%llus, %llus, %llus)", - qemuDomainJobTypeToString(job), - qemuDomainAgentJobTypeToString(agentJob), - qemuDomainAsyncJobTypeToString(asyncJob), + virDomainJobTypeToString(job), + virDomainAgentJobTypeToString(agentJob), + virDomainAsyncJobTypeToString(asyncJob), obj->def->name, - qemuDomainJobTypeToString(jobObj->active), - qemuDomainAgentJobTypeToString(jobObj->agentActive), - qemuDomainAsyncJobTypeToString(jobObj->asyncJob), + virDomainJobTypeToString(jobObj->active), + virDomainAgentJobTypeToString(jobObj->agentActive), + virDomainAsyncJobTypeToString(jobObj->asyncJob), jobObj->owner, NULLSTR(jobObj->ownerAPI), jobObj->agentOwner, NULLSTR(jobObj->agentOwnerAPI), jobObj->asyncOwner, NULLSTR(jobObj->asyncOwnerAPI), @@ -459,7 +460,7 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, duration / 1000, agentDuration / 1000, asyncDuration / 1000); =20 if (job) { - if (nested || qemuDomainNestedJobAllowed(jobObj, job)) + if (nested || virDomainNestedJobAllowed(jobObj, job)) blocker =3D jobObj->ownerAPI; else blocker =3D jobObj->asyncOwnerAPI; @@ -528,48 +529,48 @@ qemuDomainObjBeginJobInternal(virDomainObjPtr obj, * obj must be locked before calling * * This must be called by anything that will change the VM state - * in any way, or anything that will use the QEMU monitor. + * in any way, or anything that will use the (QEMU) monitor. * * Successful calls must be followed by EndJob eventually */ -int qemuDomainObjBeginJob(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj, - qemuDomainJob job) +int virDomainObjBeginJob(virDomainObjPtr obj, + virDomainJobObjPtr jobObj, + virDomainJob job) { - if (qemuDomainObjBeginJobInternal(obj, jobObj, job, - QEMU_AGENT_JOB_NONE, - QEMU_ASYNC_JOB_NONE, false) < 0) + if (virDomainObjBeginJobInternal(obj, jobObj, job, + VIR_AGENT_JOB_NONE, + VIR_ASYNC_JOB_NONE, false) < 0) return -1; else return 0; } =20 /** - * qemuDomainObjBeginAgentJob: + * virDomainObjBeginAgentJob: * * Grabs agent type of job. Use if caller talks to guest agent only. * - * To end job call qemuDomainObjEndAgentJob. + * To end job call virDomainObjEndAgentJob. */ int -qemuDomainObjBeginAgentJob(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj, - qemuDomainAgentJob agentJob) +virDomainObjBeginAgentJob(virDomainObjPtr obj, + virDomainJobObjPtr jobObj, + virDomainAgentJob agentJob) { - return qemuDomainObjBeginJobInternal(obj, jobObj, QEMU_JOB_NONE, - agentJob, - QEMU_ASYNC_JOB_NONE, false); + return virDomainObjBeginJobInternal(obj, jobObj, VIR_JOB_NONE, + agentJob, + VIR_ASYNC_JOB_NONE, false); } =20 -int qemuDomainObjBeginAsyncJob(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj, - qemuDomainAsyncJob asyncJob, - virDomainJobOperation operation, - unsigned long apiFlags) +int virDomainObjBeginAsyncJob(virDomainObjPtr obj, + virDomainJobObjPtr jobObj, + virDomainAsyncJob asyncJob, + virDomainJobOperation operation, + unsigned long apiFlags) { - if (qemuDomainObjBeginJobInternal(obj, jobObj, QEMU_JOB_ASYNC, - QEMU_AGENT_JOB_NONE, - asyncJob, false) < 0) + if (virDomainObjBeginJobInternal(obj, jobObj, VIR_JOB_ASYNC, + VIR_AGENT_JOB_NONE, + asyncJob, false) < 0) return -1; =20 jobObj->cb->jobcb->setJobInfoOperation(jobObj, operation); @@ -578,9 +579,9 @@ int qemuDomainObjBeginAsyncJob(virDomainObjPtr obj, } =20 int -qemuDomainObjBeginNestedJob(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj, - qemuDomainAsyncJob asyncJob) +virDomainObjBeginNestedJob(virDomainObjPtr obj, + virDomainJobObjPtr jobObj, + virDomainAsyncJob asyncJob) { if (asyncJob !=3D jobObj->asyncJob) { virReportError(VIR_ERR_INTERNAL_ERROR, @@ -594,56 +595,56 @@ qemuDomainObjBeginNestedJob(virDomainObjPtr obj, jobObj->asyncOwner); } =20 - return qemuDomainObjBeginJobInternal(obj, jobObj, - QEMU_JOB_ASYNC_NESTED, - QEMU_AGENT_JOB_NONE, - QEMU_ASYNC_JOB_NONE, + return virDomainObjBeginJobInternal(obj, jobObj, + VIR_JOB_ASYNC_NESTED, + VIR_AGENT_JOB_NONE, + VIR_ASYNC_JOB_NONE, false); } =20 /** - * qemuDomainObjBeginJobNowait: + * virDomainObjBeginJobNowait: * * @obj: domain object - * @jobObj: qemuDomainJobObjPtr - * @job: qemuDomainJob to start + * @jobObj: virDomainJobObjPtr + * @job: virDomainJob to start * * Acquires job for a domain object which must be locked before * calling. If there's already a job running it returns * immediately without any error reported. * - * Returns: see qemuDomainObjBeginJobInternal + * Returns: see virDomainObjBeginJobInternal */ int -qemuDomainObjBeginJobNowait(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj, - qemuDomainJob job) +virDomainObjBeginJobNowait(virDomainObjPtr obj, + virDomainJobObjPtr jobObj, + virDomainJob job) { - return qemuDomainObjBeginJobInternal(obj, jobObj, job, - QEMU_AGENT_JOB_NONE, - QEMU_ASYNC_JOB_NONE, true); + return virDomainObjBeginJobInternal(obj, jobObj, job, + VIR_AGENT_JOB_NONE, + VIR_ASYNC_JOB_NONE, true); } =20 /* * obj must be locked and have a reference before calling * * To be called after completing the work associated with the - * earlier qemuDomainBeginJob() call + * earlier virDomainBeginJob() call */ void -qemuDomainObjEndJob(virDomainObjPtr obj, qemuDomainJobObjPtr jobObj) +virDomainObjEndJob(virDomainObjPtr obj, virDomainJobObjPtr jobObj) { - qemuDomainJob job =3D jobObj->active; + virDomainJob job =3D jobObj->active; =20 jobObj->cb->jobcb->decreaseJobsQueued(obj); =20 VIR_DEBUG("Stopping job: %s (async=3D%s vm=3D%p name=3D%s)", - qemuDomainJobTypeToString(job), - qemuDomainAsyncJobTypeToString(jobObj->asyncJob), + virDomainJobTypeToString(job), + virDomainAsyncJobTypeToString(jobObj->asyncJob), obj, obj->def->name); =20 - qemuDomainObjResetJob(jobObj); - if (qemuDomainTrackJob(job)) + virDomainObjResetJob(jobObj); + if (virDomainTrackJob(job)) jobObj->cb->saveStatus(obj); /* We indeed need to wake up ALL threads waiting because * grabbing a job requires checking more variables. */ @@ -651,45 +652,45 @@ qemuDomainObjEndJob(virDomainObjPtr obj, qemuDomainJo= bObjPtr jobObj) } =20 void -qemuDomainObjEndAgentJob(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj) +virDomainObjEndAgentJob(virDomainObjPtr obj, + virDomainJobObjPtr jobObj) { - qemuDomainAgentJob agentJob =3D jobObj->agentActive; + virDomainAgentJob agentJob =3D jobObj->agentActive; =20 jobObj->cb->jobcb->decreaseJobsQueued(obj); =20 VIR_DEBUG("Stopping agent job: %s (async=3D%s vm=3D%p name=3D%s)", - qemuDomainAgentJobTypeToString(agentJob), - qemuDomainAsyncJobTypeToString(jobObj->asyncJob), + virDomainAgentJobTypeToString(agentJob), + virDomainAsyncJobTypeToString(jobObj->asyncJob), obj, obj->def->name); =20 - qemuDomainObjResetAgentJob(jobObj); + virDomainObjResetAgentJob(jobObj); /* We indeed need to wake up ALL threads waiting because * grabbing a job requires checking more variables. */ virCondBroadcast(&jobObj->cond); } =20 void -qemuDomainObjEndAsyncJob(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj) +virDomainObjEndAsyncJob(virDomainObjPtr obj, + virDomainJobObjPtr jobObj) { jobObj->cb->jobcb->decreaseJobsQueued(obj); =20 VIR_DEBUG("Stopping async job: %s (vm=3D%p name=3D%s)", - qemuDomainAsyncJobTypeToString(jobObj->asyncJob), + virDomainAsyncJobTypeToString(jobObj->asyncJob), obj, obj->def->name); =20 - qemuDomainObjResetAsyncJob(jobObj); + virDomainObjResetAsyncJob(jobObj); jobObj->cb->saveStatus(obj); virCondBroadcast(&jobObj->asyncCond); } =20 void -qemuDomainObjAbortAsyncJob(virDomainObjPtr obj, - qemuDomainJobObjPtr job) +virDomainObjAbortAsyncJob(virDomainObjPtr obj, + virDomainJobObjPtr job) { VIR_DEBUG("Requesting abort of async job: %s (vm=3D%p name=3D%s)", - qemuDomainAsyncJobTypeToString(job->asyncJob), + virDomainAsyncJobTypeToString(job->asyncJob), obj, obj->def->name); =20 job->abortJob =3D true; @@ -697,32 +698,32 @@ qemuDomainObjAbortAsyncJob(virDomainObjPtr obj, } =20 int -qemuDomainObjPrivateXMLFormatJob(virBufferPtr buf, - virDomainObjPtr vm, - qemuDomainJobObjPtr jobObj) +virDomainObjPrivateXMLFormatJob(virBufferPtr buf, + virDomainObjPtr vm, + virDomainJobObjPtr jobObj) { g_auto(virBuffer) attrBuf =3D VIR_BUFFER_INITIALIZER; g_auto(virBuffer) childBuf =3D VIR_BUFFER_INIT_CHILD(buf); - qemuDomainJob job =3D jobObj->active; + virDomainJob job =3D jobObj->active; =20 - if (!qemuDomainTrackJob(job)) - job =3D QEMU_JOB_NONE; + if (!virDomainTrackJob(job)) + job =3D VIR_JOB_NONE; =20 - if (job =3D=3D QEMU_JOB_NONE && - jobObj->asyncJob =3D=3D QEMU_ASYNC_JOB_NONE) + if (job =3D=3D VIR_JOB_NONE && + jobObj->asyncJob =3D=3D VIR_ASYNC_JOB_NONE) return 0; =20 virBufferAsprintf(&attrBuf, " type=3D'%s' async=3D'%s'", - qemuDomainJobTypeToString(job), - qemuDomainAsyncJobTypeToString(jobObj->asyncJob)); + virDomainJobTypeToString(job), + virDomainAsyncJobTypeToString(jobObj->asyncJob)); =20 if (jobObj->phase) { virBufferAsprintf(&attrBuf, " phase=3D'%s'", - qemuDomainAsyncJobPhaseToString(jobObj->asyncJob, + virDomainAsyncJobPhaseToString(jobObj->asyncJob, jobObj->phase)); } =20 - if (jobObj->asyncJob !=3D QEMU_ASYNC_JOB_NONE) + if (jobObj->asyncJob !=3D VIR_ASYNC_JOB_NONE) virBufferAsprintf(&attrBuf, " flags=3D'0x%lx'", jobObj->apiFlags); =20 if (jobObj->cb->jobcb->formatJob(&childBuf, jobObj, vm) < 0) @@ -735,9 +736,9 @@ qemuDomainObjPrivateXMLFormatJob(virBufferPtr buf, =20 =20 int -qemuDomainObjPrivateXMLParseJob(virDomainObjPtr vm, - xmlXPathContextPtr ctxt, - qemuDomainJobObjPtr job) +virDomainObjPrivateXMLParseJob(virDomainObjPtr vm, + xmlXPathContextPtr ctxt, + virDomainJobObjPtr job) { VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *tmp =3D NULL; @@ -748,7 +749,7 @@ qemuDomainObjPrivateXMLParseJob(virDomainObjPtr vm, if ((tmp =3D virXPathString("string(@type)", ctxt))) { int type; =20 - if ((type =3D qemuDomainJobTypeFromString(tmp)) < 0) { + if ((type =3D virDomainJobTypeFromString(tmp)) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Unknown job type %s"), tmp); return -1; @@ -760,7 +761,7 @@ qemuDomainObjPrivateXMLParseJob(virDomainObjPtr vm, if ((tmp =3D virXPathString("string(@async)", ctxt))) { int async; =20 - if ((async =3D qemuDomainAsyncJobTypeFromString(tmp)) < 0) { + if ((async =3D virDomainAsyncJobTypeFromString(tmp)) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Unknown async job type %s"), tmp); return -1; @@ -769,7 +770,7 @@ qemuDomainObjPrivateXMLParseJob(virDomainObjPtr vm, job->asyncJob =3D async; =20 if ((tmp =3D virXPathString("string(@phase)", ctxt))) { - job->phase =3D qemuDomainAsyncJobPhaseFromString(async, tmp); + job->phase =3D virDomainAsyncJobPhaseFromString(async, tmp); if (job->phase < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Unknown job phase %s"), tmp); diff --git a/src/hypervisor/virdomainjob.h b/src/hypervisor/virdomainjob.h new file mode 100644 index 0000000000..0c3265aeb1 --- /dev/null +++ b/src/hypervisor/virdomainjob.h @@ -0,0 +1,243 @@ +/* + * virdomainjob.h: helper functions for domain jobs + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#pragma once + +#include + +#define JOB_MASK(job) (job =3D=3D 0 ? 0 : 1 << (job - 1)) +#define VIR_JOB_DEFAULT_MASK \ + (JOB_MASK(VIR_JOB_QUERY) | \ + JOB_MASK(VIR_JOB_DESTROY) | \ + JOB_MASK(VIR_JOB_ABORT)) + +/* Jobs which have to be tracked in domain state XML. */ +#define VIR_DOMAIN_TRACK_JOBS \ + (JOB_MASK(VIR_JOB_DESTROY) | \ + JOB_MASK(VIR_JOB_ASYNC)) + +/* Only 1 job is allowed at any time + * A job includes *all* monitor commands, even those just querying + * information, not merely actions */ +typedef enum { + VIR_JOB_NONE =3D 0, /* Always set to 0 for easy if (jobActive) condit= ions */ + VIR_JOB_QUERY, /* Doesn't change any state */ + VIR_JOB_DESTROY, /* Destroys the domain (cannot be masked out) */ + VIR_JOB_SUSPEND, /* Suspends (stops vCPUs) the domain */ + VIR_JOB_MODIFY, /* May change state */ + VIR_JOB_ABORT, /* Abort current async job */ + VIR_JOB_MIGRATION_OP, /* Operation influencing outgoing migration */ + + /* The following two items must always be the last items before JOB_LA= ST */ + VIR_JOB_ASYNC, /* Asynchronous job */ + VIR_JOB_ASYNC_NESTED, /* Normal job within an async job */ + + VIR_JOB_LAST +} virDomainJob; +VIR_ENUM_DECL(virDomainJob); + +typedef enum { + VIR_AGENT_JOB_NONE =3D 0, /* No agent job. */ + VIR_AGENT_JOB_QUERY, /* Does not change state of domain */ + VIR_AGENT_JOB_MODIFY, /* May change state of domain */ + + VIR_AGENT_JOB_LAST +} virDomainAgentJob; +VIR_ENUM_DECL(virDomainAgentJob); + +/* Async job consists of a series of jobs that may change state. Independe= nt + * jobs that do not change state (and possibly others if explicitly allowe= d by + * current async job) are allowed to be run even if async job is active. + */ +typedef enum { + VIR_ASYNC_JOB_NONE =3D 0, + VIR_ASYNC_JOB_MIGRATION_OUT, + VIR_ASYNC_JOB_MIGRATION_IN, + VIR_ASYNC_JOB_SAVE, + VIR_ASYNC_JOB_DUMP, + VIR_ASYNC_JOB_SNAPSHOT, + VIR_ASYNC_JOB_START, + VIR_ASYNC_JOB_BACKUP, + + VIR_ASYNC_JOB_LAST +} virDomainAsyncJob; +VIR_ENUM_DECL(virDomainAsyncJob); + +typedef enum { + VIR_DOMAIN_JOB_STATUS_NONE =3D 0, + VIR_DOMAIN_JOB_STATUS_ACTIVE, + VIR_DOMAIN_JOB_STATUS_MIGRATING, + VIR_DOMAIN_JOB_STATUS_QEMU_COMPLETED, + VIR_DOMAIN_JOB_STATUS_PAUSED, + VIR_DOMAIN_JOB_STATUS_POSTCOPY, + VIR_DOMAIN_JOB_STATUS_COMPLETED, + VIR_DOMAIN_JOB_STATUS_FAILED, + VIR_DOMAIN_JOB_STATUS_CANCELED, +} virDomainJobStatus; + +typedef enum { + VIR_DOMAIN_JOB_STATS_TYPE_NONE =3D 0, + VIR_DOMAIN_JOB_STATS_TYPE_MIGRATION, + VIR_DOMAIN_JOB_STATS_TYPE_SAVEDUMP, + VIR_DOMAIN_JOB_STATS_TYPE_MEMDUMP, + VIR_DOMAIN_JOB_STATS_TYPE_BACKUP, +} virDomainJobStatsType; + +typedef struct _virDomainJobObj virDomainJobObj; +typedef virDomainJobObj *virDomainJobObjPtr; + +typedef void *(*virDomainObjPrivateJobAlloc)(void); +typedef void (*virDomainObjPrivateJobFree)(void *); +typedef void (*virDomainObjPrivateJobReset)(void *); +typedef void (*virDomainObjPrivateSaveStatus)(virDomainObjPtr); +typedef int (*virDomainObjPrivateJobFormat)(virBufferPtr, + virDomainJobObjPtr, + virDomainObjPtr); +typedef int (*virDomainObjPrivateJobParse)(xmlXPathContextPtr, = virDomainJobObjPtr, + virDomainObjPtr); +typedef void (*virDomainObjJobInfoSetOperation)(virDomainJobObjPtr, + virDomainJobOperation); +typedef void (*virDomainObjCurrentJobInfoInit)(virDomainJobObjPtr, + unsigned long long); +typedef int (*virDomainObjGetJobsQueued)(virDomainObjPtr); +typedef void (*virDomainObjIncreaseJobsQueued)(virDomainObjPtr); +typedef void (*virDomainObjDecreaseJobsQueued)(virDomainObjPtr); +typedef int (*virDomainObjGetMaxQueuedJobs)(virDomainObjPtr); + +typedef struct _virDomainJobPrivateJobCallbacks virDomainJobPrivateJobCall= backs; +typedef virDomainJobPrivateJobCallbacks *virDomainJobPrivateJobCallbacksPt= r; +struct _virDomainJobPrivateJobCallbacks { + virDomainObjPrivateJobAlloc allocJobPrivate; + virDomainObjPrivateJobFree freeJobPrivate; + virDomainObjPrivateJobReset resetJobPrivate; + virDomainObjPrivateJobFormat formatJob; + virDomainObjPrivateJobParse parseJob; + virDomainObjJobInfoSetOperation setJobInfoOperation; + virDomainObjCurrentJobInfoInit currentJobInfoInit; + virDomainObjGetJobsQueued getJobsQueued; + virDomainObjIncreaseJobsQueued increaseJobsQueued; + virDomainObjDecreaseJobsQueued decreaseJobsQueued; + virDomainObjGetMaxQueuedJobs getMaxQueuedJobs; +}; + +typedef struct _virDomainJobPrivateCallbacks virDomainJobPrivateCallbacks; +typedef virDomainJobPrivateCallbacks *virDomainJobPrivateCallbacksPtr; +struct _virDomainJobPrivateCallbacks { + /* generic callbacks that we can't really categorize */ + virDomainObjPrivateSaveStatus saveStatus; + + /* Job related callbacks */ + virDomainJobPrivateJobCallbacksPtr jobcb; +}; + +struct _virDomainJobObj { + virCond cond; /* Use to coordinate jobs */ + + /* The following members are for VIR_JOB_* */ + virDomainJob active; /* Currently running job */ + unsigned long long owner; /* Thread id which set current job= */ + const char *ownerAPI; /* The API which owns the job */ + unsigned long long started; /* When the current job started */ + + /* The following members are for VIR_AGENT_JOB_* */ + virDomainAgentJob agentActive; /* Currently running agent job */ + unsigned long long agentOwner; /* Thread id which set current age= nt job */ + const char *agentOwnerAPI; /* The API which owns the agent jo= b */ + unsigned long long agentStarted; /* When the current agent job star= ted */ + + /* The following members are for VIR_ASYNC_JOB_* */ + virCond asyncCond; /* Use to coordinate with async jo= bs */ + virDomainAsyncJob asyncJob; /* Currently active async job */ + unsigned long long asyncOwner; /* Thread which set current async = job */ + const char *asyncOwnerAPI; /* The API which owns the async jo= b */ + unsigned long long asyncStarted; /* When the current async job star= ted */ + int phase; /* Job phase (mainly for migration= s) */ + unsigned long long mask; /* Jobs allowed during async job */ + bool abortJob; /* abort of the job requested */ + char *error; /* job event completion error */ + unsigned long apiFlags; /* flags passed to the API which started the a= sync job */ + + void *privateData; /* job specific collection of data= */ + virDomainJobPrivateCallbacksPtr cb; +}; + +const char *virDomainAsyncJobPhaseToString(virDomainAsyncJob job, + int phase); +int virDomainAsyncJobPhaseFromString(virDomainAsyncJob job, + const char *phase); + +int virDomainObjBeginJob(virDomainObjPtr obj, + virDomainJobObjPtr jobObj, + virDomainJob job) + G_GNUC_WARN_UNUSED_RESULT; +int virDomainObjBeginAgentJob(virDomainObjPtr obj, + virDomainJobObjPtr jobObj, + virDomainAgentJob agentJob) + G_GNUC_WARN_UNUSED_RESULT; +int virDomainObjBeginAsyncJob(virDomainObjPtr obj, + virDomainJobObjPtr jobObj, + virDomainAsyncJob asyncJob, + virDomainJobOperation operation, + unsigned long apiFlags) + G_GNUC_WARN_UNUSED_RESULT; +int virDomainObjBeginNestedJob(virDomainObjPtr obj, + virDomainJobObjPtr jobObj, + virDomainAsyncJob asyncJob) + G_GNUC_WARN_UNUSED_RESULT; +int virDomainObjBeginJobNowait(virDomainObjPtr obj, + virDomainJobObjPtr jobObj, + virDomainJob job) + G_GNUC_WARN_UNUSED_RESULT; + +void virDomainObjEndJob(virDomainObjPtr obj, virDomainJobObjPtr jobObj); +void virDomainObjEndAgentJob(virDomainObjPtr obj, + virDomainJobObjPtr jobObj); +void virDomainObjEndAsyncJob(virDomainObjPtr obj, + virDomainJobObjPtr jobObj); +void virDomainObjAbortAsyncJob(virDomainObjPtr obj, + virDomainJobObjPtr job); +void virDomainObjSetJobPhase(virDomainObjPtr obj, + virDomainJobObjPtr job, + int phase); +void virDomainObjSetAsyncJobMask(virDomainJobObjPtr job, + unsigned long long allowedJobs); +int virDomainObjRestoreJob(virDomainJobObjPtr job, + virDomainJobObjPtr oldJob); +void virDomainObjDiscardAsyncJob(virDomainObjPtr obj, + virDomainJobObjPtr job); +void virDomainObjReleaseAsyncJob(virDomainJobObjPtr job); + +bool virDomainTrackJob(virDomainJob job); + +void virDomainObjFreeJob(virDomainJobObjPtr job); + +int +virDomainObjInitJob(virDomainJobObjPtr job, + virDomainJobPrivateCallbacksPtr cb); + +bool virDomainJobAllowed(virDomainJobObjPtr jobs, virDomainJob newJob); + +int +virDomainObjPrivateXMLFormatJob(virBufferPtr buf, + virDomainObjPtr vm, + virDomainJobObjPtr jobObj); + +int +virDomainObjPrivateXMLParseJob(virDomainObjPtr vm, + xmlXPathContextPtr ctxt, + virDomainJobObjPtr job); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index c7adf16aba..d3b8833844 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1447,6 +1447,34 @@ virCloseCallbacksSet; virCloseCallbacksUnset; =20 =20 +# hypervisor/virdomainjob.h +virDomainAsyncJobPhaseFromString; +virDomainAsyncJobPhaseToString; +virDomainAsyncJobTypeFromString; +virDomainAsyncJobTypeToString; +virDomainJobAllowed; +virDomainJobTypeFromString; +virDomainJobTypeToString; +virDomainObjAbortAsyncJob; +virDomainObjBeginAgentJob; +virDomainObjBeginAsyncJob; +virDomainObjBeginJob; +virDomainObjBeginJobNowait; +virDomainObjBeginNestedJob; +virDomainObjDiscardAsyncJob; +virDomainObjEndAgentJob; +virDomainObjEndAsyncJob; +virDomainObjEndJob; +virDomainObjFreeJob; +virDomainObjInitJob; +virDomainObjPrivateXMLFormatJob; +virDomainObjPrivateXMLParseJob; +virDomainObjReleaseAsyncJob; +virDomainObjRestoreJob; +virDomainObjSetAsyncJobMask; +virDomainObjSetJobPhase; + + # hypervisor/virhostdev.h virHostdevFindUSBDevice; virHostdevManagerGetDefault; diff --git a/src/qemu/meson.build b/src/qemu/meson.build index 4e599d1e69..1be0da010b 100644 --- a/src/qemu/meson.build +++ b/src/qemu/meson.build @@ -12,7 +12,6 @@ qemu_driver_sources =3D [ 'qemu_dbus.c', 'qemu_domain.c', 'qemu_domain_address.c', - 'qemu_domainjob.c', 'qemu_driver.c', 'qemu_extdevice.c', 'qemu_firmware.c', diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c index 4e606c252f..7d951d7786 100644 --- a/src/qemu/qemu_backup.c +++ b/src/qemu/qemu_backup.c @@ -436,10 +436,10 @@ qemuBackupDiskPrepareOneStorage(virDomainObjPtr vm, =20 if (qemuBlockStorageSourceCreate(vm, dd->store, dd->backingStore, = NULL, dd->crdata->srcdata[0], - QEMU_ASYNC_JOB_BACKUP) < 0) + VIR_ASYNC_JOB_BACKUP) < 0) return -1; } else { - if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_BACKUP) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_BACKUP) < 0) return -1; =20 rc =3D qemuBlockStorageSourceAttachApply(priv->mon, dd->crdata->sr= cdata[0]); @@ -525,7 +525,7 @@ qemuBackupBeginPullExportDisks(virDomainObjPtr vm, =20 void qemuBackupJobTerminate(virDomainObjPtr vm, - qemuDomainJobStatus jobstatus) + virDomainJobStatus jobstatus) =20 { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -550,7 +550,7 @@ qemuBackupJobTerminate(virDomainObjPtr vm, if (!(priv->job.apiFlags & VIR_DOMAIN_BACKUP_BEGIN_REUSE_EXTERNAL) && (priv->backup->type =3D=3D VIR_DOMAIN_BACKUP_TYPE_PULL || (priv->backup->type =3D=3D VIR_DOMAIN_BACKUP_TYPE_PUSH && - jobstatus !=3D QEMU_DOMAIN_JOB_STATUS_COMPLETED))) { + jobstatus !=3D VIR_DOMAIN_JOB_STATUS_COMPLETED))) { =20 g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(priv= ->driver); =20 @@ -572,7 +572,7 @@ qemuBackupJobTerminate(virDomainObjPtr vm, =20 virDomainBackupDefFree(priv->backup); priv->backup =3D NULL; - qemuDomainObjEndAsyncJob(vm, &priv->job); + virDomainObjEndAsyncJob(vm, &priv->job); } =20 =20 @@ -640,7 +640,7 @@ qemuBackupJobCancelBlockjobs(virDomainObjPtr vm, } =20 if (terminatebackup && !has_active) - qemuBackupJobTerminate(vm, QEMU_DOMAIN_JOB_STATUS_CANCELED); + qemuBackupJobTerminate(vm, VIR_DOMAIN_JOB_STATUS_CANCELED); } =20 =20 @@ -740,15 +740,15 @@ qemuBackupBegin(virDomainObjPtr vm, * infrastructure for async jobs. We'll allow standard modify-type jobs * as the interlocking of conflicting operations is handled on the blo= ck * job level */ - if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_BACKUP, + if (virDomainObjBeginAsyncJob(vm, &priv->job, VIR_ASYNC_JOB_BACKUP, VIR_DOMAIN_JOB_OPERATION_BACKUP, flags)= < 0) return -1; =20 - qemuDomainObjSetAsyncJobMask(&priv->job, - (QEMU_JOB_DEFAULT_MASK | - JOB_MASK(QEMU_JOB_SUSPEND) | - JOB_MASK(QEMU_JOB_MODIFY))); - jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP; + virDomainObjSetAsyncJobMask(&priv->job, + (VIR_JOB_DEFAULT_MASK | + JOB_MASK(VIR_JOB_SUSPEND) | + JOB_MASK(VIR_JOB_MODIFY))); + jobPriv->current->statsType =3D VIR_DOMAIN_JOB_STATS_TYPE_BACKUP; =20 if (!virDomainObjIsActive(vm)) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", @@ -787,7 +787,7 @@ qemuBackupBegin(virDomainObjPtr vm, goto endjob; } =20 - if (!(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, QEMU_ASYNC_= JOB_BACKUP))) + if (!(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, VIR_ASYNC_J= OB_BACKUP))) goto endjob; =20 if ((ndd =3D qemuBackupDiskPrepareData(vm, def, blockNamedNodeData, ac= tions, @@ -805,7 +805,7 @@ qemuBackupBegin(virDomainObjPtr vm, =20 priv->backup =3D g_steal_pointer(&def); =20 - if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_BACKUP) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_BACKUP) < 0) goto endjob; =20 /* TODO: TLS is a must-have for the modern age */ @@ -838,7 +838,7 @@ qemuBackupBegin(virDomainObjPtr vm, } =20 if (pull) { - if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_BACKUP) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_BACKUP) < 0) goto endjob; /* note that if the export fails we've already created the checkpo= int * and we will not delete it */ @@ -847,7 +847,7 @@ qemuBackupBegin(virDomainObjPtr vm, goto endjob; =20 if (rc < 0) { - qemuBackupJobCancelBlockjobs(vm, priv->backup, false, QEMU_ASY= NC_JOB_BACKUP); + qemuBackupJobCancelBlockjobs(vm, priv->backup, false, VIR_ASYN= C_JOB_BACKUP); goto endjob; } } @@ -864,7 +864,7 @@ qemuBackupBegin(virDomainObjPtr vm, qemuCheckpointRollbackMetadata(vm, chk); =20 if (!job_started && (nbd_running || tlsAlias || tlsSecretAlias) && - qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_BACKUP) =3D=3D 0= ) { + qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_BACKUP) =3D=3D 0)= { if (nbd_running) ignore_value(qemuMonitorNBDServerStop(priv->mon)); if (tlsAlias) @@ -878,9 +878,9 @@ qemuBackupBegin(virDomainObjPtr vm, def =3D g_steal_pointer(&priv->backup); =20 if (ret =3D=3D 0) - qemuDomainObjReleaseAsyncJob(&priv->job); + virDomainObjReleaseAsyncJob(&priv->job); else - qemuDomainObjEndAsyncJob(vm, &priv->job); + virDomainObjEndAsyncJob(vm, &priv->job); =20 return ret; } @@ -919,7 +919,7 @@ qemuBackupNotifyBlockjobEnd(virDomainObjPtr vm, bool has_cancelling =3D false; bool has_cancelled =3D false; bool has_failed =3D false; - qemuDomainJobStatus jobstatus =3D QEMU_DOMAIN_JOB_STATUS_COMPLETED; + virDomainJobStatus jobstatus =3D VIR_DOMAIN_JOB_STATUS_COMPLETED; virDomainBackupDefPtr backup =3D priv->backup; size_t i; =20 @@ -1017,9 +1017,9 @@ qemuBackupNotifyBlockjobEnd(virDomainObjPtr vm, /* all sub-jobs have stopped */ =20 if (has_failed) - jobstatus =3D QEMU_DOMAIN_JOB_STATUS_FAILED; + jobstatus =3D VIR_DOMAIN_JOB_STATUS_FAILED; else if (has_cancelled && backup->type =3D=3D VIR_DOMAIN_BACKUP_TY= PE_PUSH) - jobstatus =3D QEMU_DOMAIN_JOB_STATUS_CANCELED; + jobstatus =3D VIR_DOMAIN_JOB_STATUS_CANCELED; =20 qemuBackupJobTerminate(vm, jobstatus); } @@ -1088,7 +1088,7 @@ qemuBackupGetJobInfoStats(virDomainObjPtr vm, if (qemuDomainJobInfoUpdateTime(jobInfo) < 0) return -1; =20 - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_ACTIVE; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_ACTIVE; =20 qemuDomainObjEnterMonitor(vm); =20 diff --git a/src/qemu/qemu_backup.h b/src/qemu/qemu_backup.h index 9925fddbf9..6cd1797cae 100644 --- a/src/qemu/qemu_backup.h +++ b/src/qemu/qemu_backup.h @@ -45,7 +45,7 @@ qemuBackupNotifyBlockjobEnd(virDomainObjPtr vm, =20 void qemuBackupJobTerminate(virDomainObjPtr vm, - qemuDomainJobStatus jobstatus); + virDomainJobStatus jobstatus); =20 int qemuBackupGetJobInfoStats(virDomainObjPtr vm, diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 23b60e73ec..c2f3cacbf2 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -321,7 +321,7 @@ qemuBlockDiskDetectNodes(virDomainDiskDefPtr disk, =20 int qemuBlockNodeNamesDetect(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; g_autoptr(virHashTable) disktable =3D NULL; @@ -1985,7 +1985,7 @@ qemuBlockStorageSourceChainDetach(qemuMonitorPtr mon, */ int qemuBlockStorageSourceDetachOneBlockdev(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, virStorageSourcePtr src) { int ret; @@ -2545,7 +2545,7 @@ qemuBlockStorageSourceCreateGeneric(virDomainObjPtr v= m, virStorageSourcePtr src, virStorageSourcePtr chain, bool storageCreate, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { g_autoptr(virJSONValue) props =3D createProps; qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -2600,7 +2600,7 @@ static int qemuBlockStorageSourceCreateStorage(virDomainObjPtr vm, virStorageSourcePtr src, virStorageSourcePtr chain, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { int actualType =3D virStorageSourceGetActualType(src); g_autoptr(virJSONValue) createstorageprops =3D NULL; @@ -2637,7 +2637,7 @@ qemuBlockStorageSourceCreateFormat(virDomainObjPtr vm, virStorageSourcePtr src, virStorageSourcePtr backingStore, virStorageSourcePtr chain, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { g_autoptr(virJSONValue) createformatprops =3D NULL; int ret; @@ -2687,7 +2687,7 @@ qemuBlockStorageSourceCreate(virDomainObjPtr vm, virStorageSourcePtr backingStore, virStorageSourcePtr chain, qemuBlockStorageSourceAttachDataPtr data, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; @@ -2855,7 +2855,7 @@ qemuBlockNamedNodeDataGetBitmapByName(virHashTablePtr= blockNamedNodeData, =20 virHashTablePtr qemuBlockGetNamedNodeData(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; g_autoptr(virHashTable) blockNamedNodeData =3D NULL; @@ -3178,7 +3178,7 @@ qemuBlockBitmapsHandleCommitFinish(virStorageSourcePt= r topsrc, static int qemuBlockReopenFormat(virDomainObjPtr vm, virStorageSourcePtr src, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; g_autoptr(virJSONValue) reopenprops =3D NULL; @@ -3221,7 +3221,7 @@ qemuBlockReopenFormat(virDomainObjPtr vm, int qemuBlockReopenReadWrite(virDomainObjPtr vm, virStorageSourcePtr src, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { if (!src->readonly) return 0; @@ -3250,7 +3250,7 @@ qemuBlockReopenReadWrite(virDomainObjPtr vm, int qemuBlockReopenReadOnly(virDomainObjPtr vm, virStorageSourcePtr src, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { if (src->readonly) return 0; diff --git a/src/qemu/qemu_block.h b/src/qemu/qemu_block.h index 35148ea2ba..55583faa93 100644 --- a/src/qemu/qemu_block.h +++ b/src/qemu/qemu_block.h @@ -47,7 +47,7 @@ qemuBlockNodeNameGetBackingChain(virJSONValuePtr namednod= esdata, =20 int qemuBlockNodeNamesDetect(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); =20 virHashTablePtr qemuBlockGetNodeData(virJSONValuePtr data); @@ -140,7 +140,7 @@ qemuBlockStorageSourceAttachRollback(qemuMonitorPtr mon, =20 int qemuBlockStorageSourceDetachOneBlockdev(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, virStorageSourcePtr src); =20 struct _qemuBlockStorageSourceChainData { @@ -205,7 +205,7 @@ qemuBlockStorageSourceCreate(virDomainObjPtr vm, virStorageSourcePtr backingStore, virStorageSourcePtr chain, qemuBlockStorageSourceAttachDataPtr data, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); =20 int qemuBlockStorageSourceCreateDetectSize(virHashTablePtr blockNamedNodeData, @@ -225,7 +225,7 @@ qemuBlockNamedNodeDataGetBitmapByName(virHashTablePtr b= lockNamedNodeData, =20 virHashTablePtr qemuBlockGetNamedNodeData(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); =20 int qemuBlockGetBitmapMergeActions(virStorageSourcePtr topsrc, @@ -259,11 +259,11 @@ qemuBlockBitmapsHandleCommitFinish(virStorageSourcePt= r topsrc, int qemuBlockReopenReadWrite(virDomainObjPtr vm, virStorageSourcePtr src, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); int qemuBlockReopenReadOnly(virDomainObjPtr vm, virStorageSourcePtr src, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); =20 bool qemuBlockStorageSourceNeedsStorageSliceLayer(const virStorageSource *src); diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c index 265f449b7a..62b8e014d3 100644 --- a/src/qemu/qemu_blockjob.c +++ b/src/qemu/qemu_blockjob.c @@ -567,7 +567,7 @@ qemuBlockJobRefreshJobs(virDomainObjPtr vm) job->reconnected =3D true; =20 if (job->newstate !=3D -1) - qemuBlockJobUpdate(vm, job, QEMU_ASYNC_JOB_NONE); + qemuBlockJobUpdate(vm, job, VIR_ASYNC_JOB_NONE); /* 'job' may be invalid after this update */ } =20 @@ -834,7 +834,7 @@ qemuBlockJobEventProcessLegacy(virQEMUDriverPtr driver, static void qemuBlockJobEventProcessConcludedRemoveChain(virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, virStorageSourcePtr chain) { g_autoptr(qemuBlockStorageSourceChainData) data =3D NULL; @@ -938,7 +938,7 @@ qemuBlockJobClearConfigChain(virDomainObjPtr vm, static int qemuBlockJobProcessEventCompletedPullBitmaps(virDomainObjPtr vm, qemuBlockJobDataPtr job, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; g_autoptr(virHashTable) blockNamedNodeData =3D NULL; @@ -989,7 +989,7 @@ static void qemuBlockJobProcessEventCompletedPull(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuBlockJobDataPtr job, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { virStorageSourcePtr baseparent =3D NULL; virDomainDiskDefPtr cfgdisk =3D NULL; @@ -1093,7 +1093,7 @@ qemuBlockJobDeleteImages(virQEMUDriverPtr driver, static int qemuBlockJobProcessEventCompletedCommitBitmaps(virDomainObjPtr vm, qemuBlockJobDataPtr job, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; g_autoptr(virHashTable) blockNamedNodeData =3D NULL; @@ -1156,7 +1156,7 @@ static void qemuBlockJobProcessEventCompletedCommit(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuBlockJobDataPtr job, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { virStorageSourcePtr baseparent =3D NULL; virDomainDiskDefPtr cfgdisk =3D NULL; @@ -1248,7 +1248,7 @@ static void qemuBlockJobProcessEventCompletedActiveCommit(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuBlockJobDataPtr job, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { virStorageSourcePtr baseparent =3D NULL; virDomainDiskDefPtr cfgdisk =3D NULL; @@ -1322,7 +1322,7 @@ qemuBlockJobProcessEventCompletedActiveCommit(virQEMU= DriverPtr driver, static int qemuBlockJobProcessEventCompletedCopyBitmaps(virDomainObjPtr vm, qemuBlockJobDataPtr job, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; g_autoptr(virHashTable) blockNamedNodeData =3D NULL; @@ -1360,7 +1360,7 @@ static void qemuBlockJobProcessEventConcludedCopyPivot(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuBlockJobDataPtr job, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; VIR_DEBUG("copy job '%s' on VM '%s' pivoted", job->name, vm->def->name= ); @@ -1396,7 +1396,7 @@ static void qemuBlockJobProcessEventConcludedCopyAbort(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuBlockJobDataPtr job, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { VIR_DEBUG("copy job '%s' on VM '%s' aborted", job->name, vm->def->name= ); =20 @@ -1416,7 +1416,7 @@ static void qemuBlockJobProcessEventFailedActiveCommit(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuBlockJobDataPtr job, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; g_autoptr(virJSONValue) actions =3D virJSONValueNewArray(); @@ -1452,7 +1452,7 @@ static void qemuBlockJobProcessEventConcludedCreate(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuBlockJobDataPtr job, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { g_autoptr(qemuBlockStorageSourceAttachData) backend =3D NULL; =20 @@ -1495,7 +1495,7 @@ static void qemuBlockJobProcessEventConcludedBackup(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuBlockJobDataPtr job, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, qemuBlockjobState newstate, unsigned long long progressCurrent, unsigned long long progressTotal) @@ -1540,7 +1540,7 @@ static void qemuBlockJobEventProcessConcludedTransition(qemuBlockJobDataPtr job, virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, unsigned long long progressCur= rent, unsigned long long progressTot= al) { @@ -1600,7 +1600,7 @@ static void qemuBlockJobEventProcessConcluded(qemuBlockJobDataPtr job, virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuMonitorJobInfoPtr *jobinfo =3D NULL; size_t njobinfo =3D 0; @@ -1682,7 +1682,7 @@ static void qemuBlockJobEventProcess(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuBlockJobDataPtr job, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) =20 { switch ((qemuBlockjobState) job->newstate) { diff --git a/src/qemu/qemu_checkpoint.c b/src/qemu/qemu_checkpoint.c index e9547da555..ec811c9c63 100644 --- a/src/qemu/qemu_checkpoint.c +++ b/src/qemu/qemu_checkpoint.c @@ -162,7 +162,7 @@ qemuCheckpointDiscardBitmaps(virDomainObjPtr vm, =20 actions =3D virJSONValueNewArray(); =20 - if (!(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, QEMU_ASYNC_= JOB_NONE))) + if (!(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, VIR_ASYNC_J= OB_NONE))) return -1; =20 for (i =3D 0; i < chkdef->ndisks; i++) { @@ -192,7 +192,7 @@ qemuCheckpointDiscardBitmaps(virDomainObjPtr vm, goto relabel; =20 if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV_REOPEN) && - qemuBlockReopenReadWrite(vm, src, QEMU_ASYNC_JOB_NONE) < 0) + qemuBlockReopenReadWrite(vm, src, VIR_ASYNC_JOB_NONE) < 0) goto relabel; =20 relabelimages =3D g_slist_prepend(relabelimages, src); @@ -208,7 +208,7 @@ qemuCheckpointDiscardBitmaps(virDomainObjPtr vm, virStorageSourcePtr src =3D next->data; =20 if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV_REOPEN)) - ignore_value(qemuBlockReopenReadOnly(vm, src, QEMU_ASYNC_JOB_N= ONE)); + ignore_value(qemuBlockReopenReadOnly(vm, src, VIR_ASYNC_JOB_NO= NE)); =20 ignore_value(qemuDomainStorageSourceAccessAllow(driver, vm, src, true, false, false= )); @@ -539,7 +539,7 @@ qemuCheckpointCreateXML(virDomainPtr domain, /* Unlike snapshots, the RNG schema already ensured a sane filename. */ =20 /* We are going to modify the domain below. */ - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) return NULL; =20 if (redefine) { @@ -561,7 +561,7 @@ qemuCheckpointCreateXML(virDomainPtr domain, checkpoint =3D virGetDomainCheckpoint(domain, chk->def->name); =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 return checkpoint; } @@ -588,13 +588,13 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObjPtr vm, size_t i; int ret =3D -1; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - if (!(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, QEMU_ASYNC_= JOB_NONE))) + if (!(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, VIR_ASYNC_J= OB_NONE))) goto endjob; =20 /* enumerate disks relevant for the checkpoint which are also present = in the @@ -671,7 +671,7 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObjPtr vm, =20 /* now do a final refresh */ virHashFree(blockNamedNodeData); - if (!(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, QEMU_ASYNC_= JOB_NONE))) + if (!(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, VIR_ASYNC_J= OB_NONE))) goto endjob; =20 qemuDomainObjEnterMonitor(vm); @@ -697,7 +697,7 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObjPtr vm, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -781,7 +781,7 @@ qemuCheckpointDelete(virDomainObjPtr vm, VIR_DOMAIN_CHECKPOINT_DELETE_METADATA_ONLY | VIR_DOMAIN_CHECKPOINT_DELETE_CHILDREN_ONLY, -1); =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) return -1; =20 if (!metadata_only) { @@ -849,6 +849,6 @@ qemuCheckpointDelete(virDomainObjPtr vm, } =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); return ret; } diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index cc89dec3b4..420c53b82e 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -77,26 +77,26 @@ VIR_LOG_INIT("qemu.qemu_domain"); =20 =20 static virDomainJobType -qemuDomainJobStatusToType(qemuDomainJobStatus status) +virDomainJobStatusToType(virDomainJobStatus status) { switch (status) { - case QEMU_DOMAIN_JOB_STATUS_NONE: + case VIR_DOMAIN_JOB_STATUS_NONE: break; =20 - case QEMU_DOMAIN_JOB_STATUS_ACTIVE: - case QEMU_DOMAIN_JOB_STATUS_MIGRATING: - case QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED: - case QEMU_DOMAIN_JOB_STATUS_POSTCOPY: - case QEMU_DOMAIN_JOB_STATUS_PAUSED: + case VIR_DOMAIN_JOB_STATUS_ACTIVE: + case VIR_DOMAIN_JOB_STATUS_MIGRATING: + case VIR_DOMAIN_JOB_STATUS_QEMU_COMPLETED: + case VIR_DOMAIN_JOB_STATUS_POSTCOPY: + case VIR_DOMAIN_JOB_STATUS_PAUSED: return VIR_DOMAIN_JOB_UNBOUNDED; =20 - case QEMU_DOMAIN_JOB_STATUS_COMPLETED: + case VIR_DOMAIN_JOB_STATUS_COMPLETED: return VIR_DOMAIN_JOB_COMPLETED; =20 - case QEMU_DOMAIN_JOB_STATUS_FAILED: + case VIR_DOMAIN_JOB_STATUS_FAILED: return VIR_DOMAIN_JOB_FAILED; =20 - case QEMU_DOMAIN_JOB_STATUS_CANCELED: + case VIR_DOMAIN_JOB_STATUS_CANCELED: return VIR_DOMAIN_JOB_CANCELLED; } =20 @@ -151,11 +151,11 @@ int qemuDomainJobInfoToInfo(qemuDomainJobInfoPtr jobInfo, virDomainJobInfoPtr info) { - info->type =3D qemuDomainJobStatusToType(jobInfo->status); + info->type =3D virDomainJobStatusToType(jobInfo->status); info->timeElapsed =3D jobInfo->timeElapsed; =20 switch (jobInfo->statsType) { - case QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION: + case VIR_DOMAIN_JOB_STATS_TYPE_MIGRATION: info->memTotal =3D jobInfo->stats.mig.ram_total; info->memRemaining =3D jobInfo->stats.mig.ram_remaining; info->memProcessed =3D jobInfo->stats.mig.ram_transferred; @@ -168,25 +168,25 @@ qemuDomainJobInfoToInfo(qemuDomainJobInfoPtr jobInfo, jobInfo->mirrorStats.transferred; break; =20 - case QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP: + case VIR_DOMAIN_JOB_STATS_TYPE_SAVEDUMP: info->memTotal =3D jobInfo->stats.mig.ram_total; info->memRemaining =3D jobInfo->stats.mig.ram_remaining; info->memProcessed =3D jobInfo->stats.mig.ram_transferred; break; =20 - case QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUMP: + case VIR_DOMAIN_JOB_STATS_TYPE_MEMDUMP: info->memTotal =3D jobInfo->stats.dump.total; info->memProcessed =3D jobInfo->stats.dump.completed; info->memRemaining =3D info->memTotal - info->memProcessed; break; =20 - case QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP: + case VIR_DOMAIN_JOB_STATS_TYPE_BACKUP: info->fileTotal =3D jobInfo->stats.backup.total; info->fileProcessed =3D jobInfo->stats.backup.transferred; info->fileRemaining =3D info->fileTotal - info->fileProcessed; break; =20 - case QEMU_DOMAIN_JOB_STATS_TYPE_NONE: + case VIR_DOMAIN_JOB_STATS_TYPE_NONE: break; } =20 @@ -315,7 +315,7 @@ qemuDomainMigrationJobInfoToParams(qemuDomainJobInfoPtr= jobInfo, =20 /* The remaining stats are disk, mirror, or migration specific * so if this is a SAVEDUMP, we can just skip them */ - if (jobInfo->statsType =3D=3D QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP) + if (jobInfo->statsType =3D=3D VIR_DOMAIN_JOB_STATS_TYPE_SAVEDUMP) goto done; =20 if (virTypedParamsAddULLong(&par, &npar, &maxpar, @@ -364,7 +364,7 @@ qemuDomainMigrationJobInfoToParams(qemuDomainJobInfoPtr= jobInfo, goto error; =20 done: - *type =3D qemuDomainJobStatusToType(jobInfo->status); + *type =3D virDomainJobStatusToType(jobInfo->status); *params =3D par; *nparams =3D npar; return 0; @@ -407,7 +407,7 @@ qemuDomainDumpJobInfoToParams(qemuDomainJobInfoPtr jobI= nfo, stats->total - stats->completed) < 0) goto error; =20 - *type =3D qemuDomainJobStatusToType(jobInfo->status); + *type =3D virDomainJobStatusToType(jobInfo->status); *params =3D par; *nparams =3D npar; return 0; @@ -459,9 +459,9 @@ qemuDomainBackupJobInfoToParams(qemuDomainJobInfoPtr jo= bInfo, return -1; } =20 - if (jobInfo->status !=3D QEMU_DOMAIN_JOB_STATUS_ACTIVE && + if (jobInfo->status !=3D VIR_DOMAIN_JOB_STATUS_ACTIVE && virTypedParamListAddBoolean(par, - jobInfo->status =3D=3D QEMU_DOMAIN_JOB= _STATUS_COMPLETED, + jobInfo->status =3D=3D VIR_DOMAIN_JOB_= STATUS_COMPLETED, VIR_DOMAIN_JOB_SUCCESS) < 0) return -1; =20 @@ -470,7 +470,7 @@ qemuDomainBackupJobInfoToParams(qemuDomainJobInfoPtr jo= bInfo, return -1; =20 *nparams =3D virTypedParamListStealParams(par, params); - *type =3D qemuDomainJobStatusToType(jobInfo->status); + *type =3D virDomainJobStatusToType(jobInfo->status); return 0; } =20 @@ -482,23 +482,23 @@ qemuDomainJobInfoToParams(qemuDomainJobInfoPtr jobInf= o, int *nparams) { switch (jobInfo->statsType) { - case QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION: - case QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP: + case VIR_DOMAIN_JOB_STATS_TYPE_MIGRATION: + case VIR_DOMAIN_JOB_STATS_TYPE_SAVEDUMP: return qemuDomainMigrationJobInfoToParams(jobInfo, type, params, n= params); =20 - case QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUMP: + case VIR_DOMAIN_JOB_STATS_TYPE_MEMDUMP: return qemuDomainDumpJobInfoToParams(jobInfo, type, params, nparam= s); =20 - case QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP: + case VIR_DOMAIN_JOB_STATS_TYPE_BACKUP: return qemuDomainBackupJobInfoToParams(jobInfo, type, params, npar= ams); =20 - case QEMU_DOMAIN_JOB_STATS_TYPE_NONE: + case VIR_DOMAIN_JOB_STATS_TYPE_NONE: virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("invalid job statistics type")); break; =20 default: - virReportEnumRangeError(qemuDomainJobStatsType, jobInfo->statsType= ); + virReportEnumRangeError(virDomainJobStatsType, jobInfo->statsType); break; } =20 @@ -618,12 +618,12 @@ qemuDomainObjPrivateXMLFormatNBDMigration(virBufferPt= r buf, =20 static int qemuDomainFormatJobPrivate(virBufferPtr buf, - qemuDomainJobObjPtr job, + virDomainJobObjPtr job, virDomainObjPtr vm) { qemuDomainJobPrivatePtr priv =3D job->privateData; =20 - if (job->asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_OUT && + if (job->asyncJob =3D=3D VIR_ASYNC_JOB_MIGRATION_OUT && qemuDomainObjPrivateXMLFormatNBDMigration(buf, vm) < 0) return -1; =20 @@ -634,18 +634,18 @@ qemuDomainFormatJobPrivate(virBufferPtr buf, } =20 static void -qemuDomainCurrentJobInfoInit(qemuDomainJobObjPtr job, +qemuDomainCurrentJobInfoInit(virDomainJobObjPtr job, unsigned long long now) { qemuDomainJobPrivatePtr priv =3D job->privateData; priv->current =3D g_new0(qemuDomainJobInfo, 1); - priv->current->status =3D QEMU_DOMAIN_JOB_STATUS_ACTIVE; + priv->current->status =3D VIR_DOMAIN_JOB_STATUS_ACTIVE; priv->current->started =3D now; =20 } =20 static void -qemuDomainJobInfoSetOperation(qemuDomainJobObjPtr job, +qemuDomainJobInfoSetOperation(virDomainJobObjPtr job, virDomainJobOperation operation) { qemuDomainJobPrivatePtr priv =3D job->privateData; @@ -736,7 +736,7 @@ qemuDomainObjPrivateXMLParseJobNBD(virDomainObjPtr vm, return -1; =20 if (n > 0) { - if (priv->job.asyncJob !=3D QEMU_ASYNC_JOB_MIGRATION_OUT) { + if (priv->job.asyncJob !=3D VIR_ASYNC_JOB_MIGRATION_OUT) { VIR_WARN("Found disks marked for migration but we were not " "migrating"); n =3D 0; @@ -762,7 +762,7 @@ qemuDomainObjPrivateXMLParseJobNBD(virDomainObjPtr vm, =20 static int qemuDomainParseJobPrivate(xmlXPathContextPtr ctxt, - qemuDomainJobObjPtr job, + virDomainJobObjPtr job, virDomainObjPtr vm) { qemuDomainJobPrivatePtr priv =3D job->privateData; @@ -806,7 +806,7 @@ qemuDomainGetMaxQueuedJobs(virDomainObjPtr vm) return cfg->maxQueuedJobs; } =20 -static qemuDomainJobPrivateJobCallbacks qemuJobPrivateJobCallbacks =3D { +static virDomainJobPrivateJobCallbacks qemuJobPrivateJobCallbacks =3D { .allocJobPrivate =3D qemuJobAllocPrivate, .freeJobPrivate =3D qemuJobFreePrivate, .resetJobPrivate =3D qemuJobResetPrivate, @@ -820,7 +820,7 @@ static qemuDomainJobPrivateJobCallbacks qemuJobPrivateJ= obCallbacks =3D { .getMaxQueuedJobs =3D qemuDomainGetMaxQueuedJobs, }; =20 -static qemuDomainJobPrivateCallbacks qemuJobPrivateCallbacks =3D { +static virDomainJobPrivateCallbacks qemuJobPrivateCallbacks =3D { .saveStatus =3D qemuDomainSaveStatus, .jobcb =3D &qemuJobPrivateJobCallbacks, }; @@ -2276,7 +2276,7 @@ qemuDomainObjPrivateAlloc(void *opaque) if (VIR_ALLOC(priv) < 0) return NULL; =20 - if (qemuDomainObjInitJob(&priv->job, &qemuJobPrivateCallbacks) < 0) { + if (virDomainObjInitJob(&priv->job, &qemuJobPrivateCallbacks) < 0) { virReportSystemError(errno, "%s", _("Unable to init qemu driver mutexes")); goto error; @@ -2387,7 +2387,7 @@ qemuDomainObjPrivateFree(void *data) qemuDomainObjPrivateDataClear(priv); =20 virObjectUnref(priv->monConfig); - qemuDomainObjFreeJob(&priv->job); + virDomainObjFreeJob(&priv->job); VIR_FREE(priv->lockState); VIR_FREE(priv->origname); =20 @@ -2994,7 +2994,7 @@ qemuDomainObjPrivateXMLFormat(virBufferPtr buf, if (priv->lockState) virBufferAsprintf(buf, "%s\n", priv->lockSt= ate); =20 - if (qemuDomainObjPrivateXMLFormatJob(buf, vm, &priv->job) < 0) + if (virDomainObjPrivateXMLFormatJob(buf, vm, &priv->job) < 0) return -1; =20 if (priv->fakeReboot) @@ -3653,7 +3653,7 @@ qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, =20 priv->lockState =3D virXPathString("string(./lockstate)", ctxt); =20 - if (qemuDomainObjPrivateXMLParseJob(vm, ctxt, &priv->job) < 0) + if (virDomainObjPrivateXMLParseJob(vm, ctxt, &priv->job) < 0) goto error; =20 priv->fakeReboot =3D virXPathBoolean("boolean(./fakereboot)", ctxt) = =3D=3D 1; @@ -6083,7 +6083,7 @@ qemuDomainSaveConfig(virDomainObjPtr obj) * obj must be locked before calling * * To be called immediately before any QEMU monitor API call - * Must have already called qemuDomainObjBeginJob() and checked + * Must have already called virDomainObjBeginJob() and checked * that the VM is still active; may not be used for nested async * jobs. * @@ -6091,18 +6091,18 @@ qemuDomainSaveConfig(virDomainObjPtr obj) */ static int qemuDomainObjEnterMonitorInternal(virDomainObjPtr obj, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D obj->privateData; =20 - if (asyncJob !=3D QEMU_ASYNC_JOB_NONE) { + if (asyncJob !=3D VIR_ASYNC_JOB_NONE) { int ret; - if ((ret =3D qemuDomainObjBeginNestedJob(obj, &priv->job, asyncJob= )) < 0) + if ((ret =3D virDomainObjBeginNestedJob(obj, &priv->job, asyncJob)= ) < 0) return ret; if (!virDomainObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_FAILED, "%s", _("domain is no longer running")); - qemuDomainObjEndJob(obj, &priv->job); + virDomainObjEndJob(obj, &priv->job); return -1; } } else if (priv->job.asyncOwner =3D=3D virThreadSelfID()) { @@ -6111,7 +6111,7 @@ qemuDomainObjEnterMonitorInternal(virDomainObjPtr obj, } else if (priv->job.owner !=3D virThreadSelfID()) { VIR_WARN("Entering a monitor without owning a job. " "Job %s owner %s (%llu)", - qemuDomainJobTypeToString(priv->job.active), + virDomainJobTypeToString(priv->job.active), priv->job.ownerAPI, priv->job.owner); } =20 @@ -6146,13 +6146,13 @@ qemuDomainObjExitMonitorInternal(virDomainObjPtr ob= j) if (!hasRefs) priv->mon =3D NULL; =20 - if (priv->job.active =3D=3D QEMU_JOB_ASYNC_NESTED) - qemuDomainObjEndJob(obj, &priv->job); + if (priv->job.active =3D=3D VIR_JOB_ASYNC_NESTED) + virDomainObjEndJob(obj, &priv->job); } =20 void qemuDomainObjEnterMonitor(virDomainObjPtr obj) { - ignore_value(qemuDomainObjEnterMonitorInternal(obj, QEMU_ASYNC_JOB_NON= E)); + ignore_value(qemuDomainObjEnterMonitorInternal(obj, VIR_ASYNC_JOB_NONE= )); } =20 /* obj must NOT be locked before calling @@ -6181,9 +6181,9 @@ int qemuDomainObjExitMonitor(virDomainObjPtr obj) * obj must be locked before calling * * To be called immediately before any QEMU monitor API call. - * Must have already either called qemuDomainObjBeginJob() + * Must have already either called virDomainObjBeginJob() * and checked that the VM is still active, with asyncJob of - * QEMU_ASYNC_JOB_NONE; or already called qemuDomainObjBeginAsyncJob, + * VIR_ASYNC_JOB_NONE; or already called virDomainObjBeginAsyncJob, * with the same asyncJob. * * Returns 0 if job was started, in which case this must be followed with @@ -6193,7 +6193,7 @@ int qemuDomainObjExitMonitor(virDomainObjPtr obj) */ int qemuDomainObjEnterMonitorAsync(virDomainObjPtr obj, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { return qemuDomainObjEnterMonitorInternal(obj, asyncJob); } @@ -6203,7 +6203,7 @@ qemuDomainObjEnterMonitorAsync(virDomainObjPtr obj, * obj must be locked before calling * * To be called immediately before any QEMU agent API call. - * Must have already called qemuDomainObjBeginAgentJob() and + * Must have already called virDomainObjBeginAgentJob() and * checked that the VM is still active. * * To be followed with qemuDomainObjExitAgent() once complete @@ -7282,7 +7282,7 @@ qemuDomainRemoveInactiveLocked(virQEMUDriverPtr drive= r, * qemuDomainRemoveInactiveJob: * * Just like qemuDomainRemoveInactive but it tries to grab a - * QEMU_JOB_MODIFY first. Even though it doesn't succeed in + * VIR_JOB_MODIFY first. Even though it doesn't succeed in * grabbing the job the control carries with * qemuDomainRemoveInactive call. */ @@ -7293,12 +7293,12 @@ qemuDomainRemoveInactiveJob(virQEMUDriverPtr driver, bool haveJob; qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 - haveJob =3D qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) >= =3D 0; + haveJob =3D virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) >=3D = 0; =20 qemuDomainRemoveInactive(driver, vm); =20 if (haveJob) - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); } =20 =20 @@ -7315,12 +7315,12 @@ qemuDomainRemoveInactiveJobLocked(virQEMUDriverPtr = driver, bool haveJob; qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 - haveJob =3D qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) >= =3D 0; + haveJob =3D virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) >=3D = 0; =20 qemuDomainRemoveInactiveLocked(driver, vm); =20 if (haveJob) - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); } =20 =20 @@ -10210,7 +10210,7 @@ qemuDomainVcpuPersistOrder(virDomainDefPtr def) =20 int qemuDomainCheckMonitor(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret; diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 43fb37e786..137877e5fd 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -31,7 +31,7 @@ #include "qemu_monitor.h" #include "qemu_agent.h" #include "qemu_blockjob.h" -#include "qemu_domainjob.h" +#include "virdomainjob.h" #include "qemu_conf.h" #include "qemu_capabilities.h" #include "qemu_migration_params.h" @@ -133,7 +133,7 @@ typedef qemuDomainObjPrivate *qemuDomainObjPrivatePtr; struct _qemuDomainObjPrivate { virQEMUDriverPtr driver; =20 - qemuDomainJobObj job; + virDomainJobObj job; =20 virBitmapPtr namespaces; =20 @@ -501,7 +501,7 @@ struct _qemuDomainBackupStats { typedef struct _qemuDomainJobInfo qemuDomainJobInfo; typedef qemuDomainJobInfo *qemuDomainJobInfoPtr; struct _qemuDomainJobInfo { - qemuDomainJobStatus status; + virDomainJobStatus status; virDomainJobOperation operation; unsigned long long started; /* When the async job started */ unsigned long long stopped; /* When the domain's CPUs were stopped */ @@ -518,7 +518,7 @@ struct _qemuDomainJobInfo { destination. */ bool timeDeltaSet; /* Raw values from QEMU */ - qemuDomainJobStatsType statsType; + virDomainJobStatsType statsType; union { qemuMonitorMigrationStats mig; qemuMonitorDumpStats dump; @@ -584,7 +584,7 @@ int qemuDomainObjExitMonitor(virDomainObjPtr obj) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT; int qemuDomainObjEnterMonitorAsync(virDomainObjPtr obj, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT; =20 =20 @@ -967,7 +967,7 @@ void qemuDomainVcpuPersistOrder(virDomainDefPtr def) ATTRIBUTE_NONNULL(1); =20 int qemuDomainCheckMonitor(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); =20 bool qemuDomainSupportsVideoVga(virDomainVideoDefPtr video, virQEMUCapsPtr qemuCaps); diff --git a/src/qemu/qemu_domainjob.h b/src/qemu/qemu_domainjob.h deleted file mode 100644 index f7e5cfa1fd..0000000000 --- a/src/qemu/qemu_domainjob.h +++ /dev/null @@ -1,243 +0,0 @@ -/* - * qemu_domainjob.h: helper functions for QEMU domain jobs - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see - * . - */ - -#pragma once - -#include - -#define JOB_MASK(job) (job =3D=3D 0 ? 0 : 1 << (job - 1)) -#define QEMU_JOB_DEFAULT_MASK \ - (JOB_MASK(QEMU_JOB_QUERY) | \ - JOB_MASK(QEMU_JOB_DESTROY) | \ - JOB_MASK(QEMU_JOB_ABORT)) - -/* Jobs which have to be tracked in domain state XML. */ -#define QEMU_DOMAIN_TRACK_JOBS \ - (JOB_MASK(QEMU_JOB_DESTROY) | \ - JOB_MASK(QEMU_JOB_ASYNC)) - -/* Only 1 job is allowed at any time - * A job includes *all* monitor commands, even those just querying - * information, not merely actions */ -typedef enum { - QEMU_JOB_NONE =3D 0, /* Always set to 0 for easy if (jobActive) condi= tions */ - QEMU_JOB_QUERY, /* Doesn't change any state */ - QEMU_JOB_DESTROY, /* Destroys the domain (cannot be masked out) = */ - QEMU_JOB_SUSPEND, /* Suspends (stops vCPUs) the domain */ - QEMU_JOB_MODIFY, /* May change state */ - QEMU_JOB_ABORT, /* Abort current async job */ - QEMU_JOB_MIGRATION_OP, /* Operation influencing outgoing migration */ - - /* The following two items must always be the last items before JOB_LA= ST */ - QEMU_JOB_ASYNC, /* Asynchronous job */ - QEMU_JOB_ASYNC_NESTED, /* Normal job within an async job */ - - QEMU_JOB_LAST -} qemuDomainJob; -VIR_ENUM_DECL(qemuDomainJob); - -typedef enum { - QEMU_AGENT_JOB_NONE =3D 0, /* No agent job. */ - QEMU_AGENT_JOB_QUERY, /* Does not change state of domain */ - QEMU_AGENT_JOB_MODIFY, /* May change state of domain */ - - QEMU_AGENT_JOB_LAST -} qemuDomainAgentJob; -VIR_ENUM_DECL(qemuDomainAgentJob); - -/* Async job consists of a series of jobs that may change state. Independe= nt - * jobs that do not change state (and possibly others if explicitly allowe= d by - * current async job) are allowed to be run even if async job is active. - */ -typedef enum { - QEMU_ASYNC_JOB_NONE =3D 0, - QEMU_ASYNC_JOB_MIGRATION_OUT, - QEMU_ASYNC_JOB_MIGRATION_IN, - QEMU_ASYNC_JOB_SAVE, - QEMU_ASYNC_JOB_DUMP, - QEMU_ASYNC_JOB_SNAPSHOT, - QEMU_ASYNC_JOB_START, - QEMU_ASYNC_JOB_BACKUP, - - QEMU_ASYNC_JOB_LAST -} qemuDomainAsyncJob; -VIR_ENUM_DECL(qemuDomainAsyncJob); - -typedef enum { - QEMU_DOMAIN_JOB_STATUS_NONE =3D 0, - QEMU_DOMAIN_JOB_STATUS_ACTIVE, - QEMU_DOMAIN_JOB_STATUS_MIGRATING, - QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED, - QEMU_DOMAIN_JOB_STATUS_PAUSED, - QEMU_DOMAIN_JOB_STATUS_POSTCOPY, - QEMU_DOMAIN_JOB_STATUS_COMPLETED, - QEMU_DOMAIN_JOB_STATUS_FAILED, - QEMU_DOMAIN_JOB_STATUS_CANCELED, -} qemuDomainJobStatus; - -typedef enum { - QEMU_DOMAIN_JOB_STATS_TYPE_NONE =3D 0, - QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION, - QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP, - QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUMP, - QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP, -} qemuDomainJobStatsType; - -typedef struct _qemuDomainJobObj qemuDomainJobObj; -typedef qemuDomainJobObj *qemuDomainJobObjPtr; - -typedef void *(*qemuDomainObjPrivateJobAlloc)(void); -typedef void (*qemuDomainObjPrivateJobFree)(void *); -typedef void (*qemuDomainObjPrivateJobReset)(void *); -typedef void (*qemuDomainObjPrivateSaveStatus)(virDomainObjPtr); -typedef int (*qemuDomainObjPrivateJobFormat)(virBufferPtr, - qemuDomainJobObjPtr, - virDomainObjPtr); -typedef int (*qemuDomainObjPrivateJobParse)(xmlXPathContextPtr, = qemuDomainJobObjPtr, - virDomainObjPtr); -typedef void (*qemuDomainObjJobInfoSetOperation)(qemuDomainJobObjPtr, - virDomainJobOperation); -typedef void (*qemuDomainObjCurrentJobInfoInit)(qemuDomainJobObjPtr, - unsigned long long); -typedef int (*qemuDomainObjGetJobsQueued)(virDomainObjPtr); -typedef void (*qemuDomainObjIncreaseJobsQueued)(virDomainObjPtr); -typedef void (*qemuDomainObjDecreaseJobsQueued)(virDomainObjPtr); -typedef int (*qemuDomainObjGetMaxQueuedJobs)(virDomainObjPtr); - -typedef struct _qemuDomainJobPrivateJobCallbacks qemuDomainJobPrivateJobCa= llbacks; -typedef qemuDomainJobPrivateJobCallbacks *qemuDomainJobPrivateJobCallbacks= Ptr; -struct _qemuDomainJobPrivateJobCallbacks { - qemuDomainObjPrivateJobAlloc allocJobPrivate; - qemuDomainObjPrivateJobFree freeJobPrivate; - qemuDomainObjPrivateJobReset resetJobPrivate; - qemuDomainObjPrivateJobFormat formatJob; - qemuDomainObjPrivateJobParse parseJob; - qemuDomainObjJobInfoSetOperation setJobInfoOperation; - qemuDomainObjCurrentJobInfoInit currentJobInfoInit; - qemuDomainObjGetJobsQueued getJobsQueued; - qemuDomainObjIncreaseJobsQueued increaseJobsQueued; - qemuDomainObjDecreaseJobsQueued decreaseJobsQueued; - qemuDomainObjGetMaxQueuedJobs getMaxQueuedJobs; -}; - -typedef struct _qemuDomainJobPrivateCallbacks qemuDomainJobPrivateCallback= s; -typedef qemuDomainJobPrivateCallbacks *qemuDomainJobPrivateCallbacksPtr; -struct _qemuDomainJobPrivateCallbacks { - /* generic callbacks that we can't really categorize */ - qemuDomainObjPrivateSaveStatus saveStatus; - - /* Job related callbacks */ - qemuDomainJobPrivateJobCallbacksPtr jobcb; -}; - -struct _qemuDomainJobObj { - virCond cond; /* Use to coordinate jobs */ - - /* The following members are for QEMU_JOB_* */ - qemuDomainJob active; /* Currently running job */ - unsigned long long owner; /* Thread id which set current job= */ - const char *ownerAPI; /* The API which owns the job */ - unsigned long long started; /* When the current job started */ - - /* The following members are for QEMU_AGENT_JOB_* */ - qemuDomainAgentJob agentActive; /* Currently running agent job */ - unsigned long long agentOwner; /* Thread id which set current age= nt job */ - const char *agentOwnerAPI; /* The API which owns the agent jo= b */ - unsigned long long agentStarted; /* When the current agent job star= ted */ - - /* The following members are for QEMU_ASYNC_JOB_* */ - virCond asyncCond; /* Use to coordinate with async jo= bs */ - qemuDomainAsyncJob asyncJob; /* Currently active async job */ - unsigned long long asyncOwner; /* Thread which set current async = job */ - const char *asyncOwnerAPI; /* The API which owns the async jo= b */ - unsigned long long asyncStarted; /* When the current async job star= ted */ - int phase; /* Job phase (mainly for migration= s) */ - unsigned long long mask; /* Jobs allowed during async job */ - bool abortJob; /* abort of the job requested */ - char *error; /* job event completion error */ - unsigned long apiFlags; /* flags passed to the API which started the a= sync job */ - - void *privateData; /* job specific collection of data= */ - qemuDomainJobPrivateCallbacksPtr cb; -}; - -const char *qemuDomainAsyncJobPhaseToString(qemuDomainAsyncJob job, - int phase); -int qemuDomainAsyncJobPhaseFromString(qemuDomainAsyncJob job, - const char *phase); - -int qemuDomainObjBeginJob(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj, - qemuDomainJob job) - G_GNUC_WARN_UNUSED_RESULT; -int qemuDomainObjBeginAgentJob(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj, - qemuDomainAgentJob agentJob) - G_GNUC_WARN_UNUSED_RESULT; -int qemuDomainObjBeginAsyncJob(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj, - qemuDomainAsyncJob asyncJob, - virDomainJobOperation operation, - unsigned long apiFlags) - G_GNUC_WARN_UNUSED_RESULT; -int qemuDomainObjBeginNestedJob(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj, - qemuDomainAsyncJob asyncJob) - G_GNUC_WARN_UNUSED_RESULT; -int qemuDomainObjBeginJobNowait(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj, - qemuDomainJob job) - G_GNUC_WARN_UNUSED_RESULT; - -void qemuDomainObjEndJob(virDomainObjPtr obj, qemuDomainJobObjPtr jobObj); -void qemuDomainObjEndAgentJob(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj); -void qemuDomainObjEndAsyncJob(virDomainObjPtr obj, - qemuDomainJobObjPtr jobObj); -void qemuDomainObjAbortAsyncJob(virDomainObjPtr obj, - qemuDomainJobObjPtr job); -void qemuDomainObjSetJobPhase(virDomainObjPtr obj, - qemuDomainJobObjPtr job, - int phase); -void qemuDomainObjSetAsyncJobMask(qemuDomainJobObjPtr job, - unsigned long long allowedJobs); -int qemuDomainObjRestoreJob(qemuDomainJobObjPtr job, - qemuDomainJobObjPtr oldJob); -void qemuDomainObjDiscardAsyncJob(virDomainObjPtr obj, - qemuDomainJobObjPtr job); -void qemuDomainObjReleaseAsyncJob(qemuDomainJobObjPtr job); - -bool qemuDomainTrackJob(qemuDomainJob job); - -void qemuDomainObjFreeJob(qemuDomainJobObjPtr job); - -int -qemuDomainObjInitJob(qemuDomainJobObjPtr job, - qemuDomainJobPrivateCallbacksPtr cb); - -bool qemuDomainJobAllowed(qemuDomainJobObjPtr jobs, qemuDomainJob newJob); - -int -qemuDomainObjPrivateXMLFormatJob(virBufferPtr buf, - virDomainObjPtr vm, - qemuDomainJobObjPtr jobObj); - -int -qemuDomainObjPrivateXMLParseJob(virDomainObjPtr vm, - xmlXPathContextPtr ctxt, - qemuDomainJobObjPtr job); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index c0b986cddf..ca84f9d9f9 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -155,7 +155,7 @@ static int qemuDomainObjStart(virConnectPtr conn, virQEMUDriverPtr driver, virDomainObjPtr vm, unsigned int flags, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); =20 static int qemuDomainManagedSaveLoad(virDomainObjPtr vm, void *opaque); @@ -199,7 +199,7 @@ qemuAutostartDomain(virDomainObjPtr vm, } =20 if (qemuDomainObjStart(NULL, driver, vm, flags, - QEMU_ASYNC_JOB_START) < 0) { + VIR_ASYNC_JOB_START) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to autostart VM '%s': %s"), vm->def->name, virGetLastErrorMessage()); @@ -1753,7 +1753,7 @@ static virDomainPtr qemuDomainCreateXML(virConnectPtr= conn, goto cleanup; } =20 - if (qemuProcessStart(conn, driver, vm, NULL, QEMU_ASYNC_JOB_START, + if (qemuProcessStart(conn, driver, vm, NULL, VIR_ASYNC_JOB_START, NULL, -1, NULL, NULL, VIR_NETDEV_VPORT_PROFILE_OP_CREATE, start_flags) < 0) { @@ -1811,15 +1811,15 @@ static int qemuDomainSuspend(virDomainPtr dom) cfg =3D virQEMUDriverGetConfig(driver); priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_SUSPEND) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_SUSPEND) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_OUT) + if (priv->job.asyncJob =3D=3D VIR_ASYNC_JOB_MIGRATION_OUT) reason =3D VIR_DOMAIN_PAUSED_MIGRATION; - else if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_SNAPSHOT) + else if (priv->job.asyncJob =3D=3D VIR_ASYNC_JOB_SNAPSHOT) reason =3D VIR_DOMAIN_PAUSED_SNAPSHOT; else reason =3D VIR_DOMAIN_PAUSED_USER; @@ -1830,7 +1830,7 @@ static int qemuDomainSuspend(virDomainPtr dom) "%s", _("domain is pmsuspended")); goto endjob; } else if (state !=3D VIR_DOMAIN_PAUSED) { - if (qemuProcessStopCPUs(driver, vm, reason, QEMU_ASYNC_JOB_NONE) <= 0) + if (qemuProcessStopCPUs(driver, vm, reason, VIR_ASYNC_JOB_NONE) < = 0) goto endjob; } if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) @@ -1838,7 +1838,7 @@ static int qemuDomainSuspend(virDomainPtr dom) ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -1866,7 +1866,7 @@ static int qemuDomainResume(virDomainPtr dom) if (virDomainResumeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -1886,7 +1886,7 @@ static int qemuDomainResume(virDomainPtr dom) state =3D=3D VIR_DOMAIN_PAUSED) { if (qemuProcessStartCPUs(driver, vm, VIR_DOMAIN_RUNNING_UNPAUSED, - QEMU_ASYNC_JOB_NONE) < 0) { + VIR_ASYNC_JOB_NONE) < 0) { if (virGetLastErrorCode() =3D=3D VIR_ERR_OK) virReportError(VIR_ERR_OPERATION_FAILED, "%s", _("resume operation failed")); @@ -1898,7 +1898,7 @@ static int qemuDomainResume(virDomainPtr dom) ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -1918,7 +1918,7 @@ qemuDomainShutdownFlagsAgent(virQEMUDriverPtr driver, int agentFlag =3D isReboot ? QEMU_AGENT_SHUTDOWN_REBOOT : QEMU_AGENT_SHUTDOWN_POWERDOWN; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, QEMU_AGENT_JOB_MODIFY)= < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, VIR_AGENT_JOB_MODIFY) < = 0) return -1; =20 if (virDomainObjGetState(vm, NULL) !=3D VIR_DOMAIN_RUNNING) { @@ -1936,7 +1936,7 @@ qemuDomainShutdownFlagsAgent(virQEMUDriverPtr driver, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); return ret; } =20 @@ -1951,7 +1951,7 @@ qemuDomainShutdownFlagsMonitor(virQEMUDriverPtr drive= r, =20 priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjGetState(vm, NULL) !=3D VIR_DOMAIN_RUNNING) { @@ -1967,7 +1967,7 @@ qemuDomainShutdownFlagsMonitor(virQEMUDriverPtr drive= r, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -2051,8 +2051,8 @@ qemuDomainRebootAgent(virQEMUDriverPtr driver, if (!isReboot) agentFlag =3D QEMU_AGENT_SHUTDOWN_POWERDOWN; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_MODIFY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_MODIFY) < 0) return -1; =20 if (!qemuDomainAgentAvailable(vm, agentForced)) @@ -2067,7 +2067,7 @@ qemuDomainRebootAgent(virQEMUDriverPtr driver, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); return ret; } =20 @@ -2080,7 +2080,7 @@ qemuDomainRebootMonitor(virQEMUDriverPtr driver, qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -2093,7 +2093,7 @@ qemuDomainRebootMonitor(virQEMUDriverPtr driver, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -2171,7 +2171,7 @@ qemuDomainReset(virDomainPtr dom, unsigned int flags) if (virDomainResetEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -2189,7 +2189,7 @@ qemuDomainReset(virDomainPtr dom, unsigned int flags) virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_CRAS= HED); =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2229,7 +2229,7 @@ qemuDomainDestroyFlags(virDomainPtr dom, reason =3D=3D VIR_DOMAIN_PAUSED_STARTING_UP && !priv->beingDestroyed); =20 - if (qemuProcessBeginStopJob(vm, QEMU_JOB_DESTROY, + if (qemuProcessBeginStopJob(vm, VIR_JOB_DESTROY, !(flags & VIR_DOMAIN_DESTROY_GRACEFUL)) < = 0) goto cleanup; =20 @@ -2246,11 +2246,11 @@ qemuDomainDestroyFlags(virDomainPtr dom, =20 qemuDomainSetFakeReboot(driver, vm, false); =20 - if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_IN) + if (priv->job.asyncJob =3D=3D VIR_ASYNC_JOB_MIGRATION_IN) stopFlags |=3D VIR_QEMU_PROCESS_STOP_MIGRATED; =20 qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_DESTROYED, - QEMU_ASYNC_JOB_NONE, stopFlags); + VIR_ASYNC_JOB_NONE, stopFlags); event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED_DESTROYED); @@ -2260,7 +2260,7 @@ qemuDomainDestroyFlags(virDomainPtr dom, endjob: if (ret =3D=3D 0) qemuDomainRemoveInactive(driver, vm); - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2335,7 +2335,7 @@ static int qemuDomainSetMemoryFlags(virDomainPtr dom,= unsigned long newmem, if (virDomainSetMemoryFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -2421,7 +2421,7 @@ static int qemuDomainSetMemoryFlags(virDomainPtr dom,= unsigned long newmem, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2461,7 +2461,7 @@ static int qemuDomainSetMemoryStatsPeriod(virDomainPt= r dom, int period, if (virDomainSetMemoryStatsPeriodEnsureACL(dom->conn, vm->def, flags) = < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -2507,7 +2507,7 @@ static int qemuDomainSetMemoryStatsPeriod(virDomainPt= r dom, int period, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2530,7 +2530,7 @@ static int qemuDomainInjectNMI(virDomainPtr domain, u= nsigned int flags) =20 priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -2542,7 +2542,7 @@ static int qemuDomainInjectNMI(virDomainPtr domain, u= nsigned int flags) ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2589,7 +2589,7 @@ static int qemuDomainSendKey(virDomainPtr domain, if (virDomainSendKeyEnsureACL(domain->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -2601,7 +2601,7 @@ static int qemuDomainSendKey(virDomainPtr domain, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2771,7 +2771,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, if (!qemuMigrationSrcIsAllowed(driver, vm, false, 0)) goto cleanup; =20 - if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_SAVE, + if (virDomainObjBeginAsyncJob(vm, &priv->job, VIR_ASYNC_JOB_SAVE, VIR_DOMAIN_JOB_OPERATION_SAVE, flags) <= 0) goto cleanup; =20 @@ -2781,13 +2781,13 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, goto endjob; } =20 - jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP; + jobPriv->current->statsType =3D VIR_DOMAIN_JOB_STATS_TYPE_SAVEDUMP; =20 /* Pause */ if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_RUNNING) { was_running =3D true; if (qemuProcessStopCPUs(driver, vm, VIR_DOMAIN_PAUSED_SAVE, - QEMU_ASYNC_JOB_SAVE) < 0) + VIR_ASYNC_JOB_SAVE) < 0) goto endjob; =20 if (!virDomainObjIsActive(vm)) { @@ -2838,13 +2838,13 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, xml =3D NULL; =20 ret =3D qemuSaveImageCreate(driver, vm, path, data, compressor, - flags, QEMU_ASYNC_JOB_SAVE); + flags, VIR_ASYNC_JOB_SAVE); if (ret < 0) goto endjob; =20 /* Shut it down */ qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_SAVED, - QEMU_ASYNC_JOB_SAVE, 0); + VIR_ASYNC_JOB_SAVE, 0); virDomainAuditStop(vm, "saved"); event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPP= ED, VIR_DOMAIN_EVENT_STOPPED_SAV= ED); @@ -2855,7 +2855,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, virErrorPreserveLast(&save_err); if (qemuProcessStartCPUs(driver, vm, VIR_DOMAIN_RUNNING_SAVE_CANCELED, - QEMU_ASYNC_JOB_SAVE) < 0) { + VIR_ASYNC_JOB_SAVE) < 0) { VIR_WARN("Unable to resume guest CPUs after save failure"); virObjectEventStateQueue(driver->domainEventState, virDomainEventLifecycleNewFromObj(vm, @@ -2865,7 +2865,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, virErrorRestore(&save_err); } } - qemuDomainObjEndAsyncJob(vm, &priv->job); + virDomainObjEndAsyncJob(vm, &priv->job); if (ret =3D=3D 0) qemuDomainRemoveInactiveJob(driver, vm); =20 @@ -3106,7 +3106,7 @@ static int qemuDumpToFd(virQEMUDriverPtr driver, virDomainObjPtr vm, int fd, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, const char *dumpformat) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -3126,7 +3126,7 @@ qemuDumpToFd(virQEMUDriverPtr driver, return -1; =20 if (detach) - jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUMP; + jobPriv->current->statsType =3D VIR_DOMAIN_JOB_STATS_TYPE_MEMDUMP; else g_clear_pointer(&jobPriv->current, qemuDomainJobInfoFree); =20 @@ -3215,7 +3215,7 @@ doCoreDump(virQEMUDriverPtr driver, if (STREQ(memory_dump_format, "elf")) memory_dump_format =3D NULL; =20 - rc =3D qemuDumpToFd(driver, vm, fd, QEMU_ASYNC_JOB_DUMP, + rc =3D qemuDumpToFd(driver, vm, fd, VIR_ASYNC_JOB_DUMP, memory_dump_format); } else { if (dumpformat !=3D VIR_DOMAIN_CORE_DUMP_FORMAT_RAW) { @@ -3229,7 +3229,7 @@ doCoreDump(virQEMUDriverPtr driver, goto cleanup; =20 rc =3D qemuMigrationSrcToFile(driver, vm, fd, compressor, - QEMU_ASYNC_JOB_DUMP); + VIR_ASYNC_JOB_DUMP); } =20 if (rc < 0) @@ -3283,7 +3283,7 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, if (virDomainCoreDumpWithFormatEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_DUMP, + if (virDomainObjBeginAsyncJob(vm, &priv->job, VIR_ASYNC_JOB_DUMP, VIR_DOMAIN_JOB_OPERATION_DUMP, flags) < 0) goto cleanup; @@ -3293,7 +3293,7 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, =20 priv =3D vm->privateData; jobPriv =3D priv->job.privateData; - jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP; + jobPriv->current->statsType =3D VIR_DOMAIN_JOB_STATS_TYPE_SAVEDUMP; =20 /* Migrate will always stop the VM, so the resume condition is independent of whether the stop command is issued. */ @@ -3303,7 +3303,7 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, if (!(flags & VIR_DUMP_LIVE) && virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_RUNNING) { if (qemuProcessStopCPUs(driver, vm, VIR_DOMAIN_PAUSED_DUMP, - QEMU_ASYNC_JOB_DUMP) < 0) + VIR_ASYNC_JOB_DUMP) < 0) goto endjob; paused =3D true; =20 @@ -3322,7 +3322,7 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, endjob: if ((ret =3D=3D 0) && (flags & VIR_DUMP_CRASH)) { qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_CRASHED, - QEMU_ASYNC_JOB_DUMP, 0); + VIR_ASYNC_JOB_DUMP, 0); virDomainAuditStop(vm, "crashed"); event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED, @@ -3339,7 +3339,7 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, if (resume && virDomainObjIsActive(vm)) { if (qemuProcessStartCPUs(driver, vm, VIR_DOMAIN_RUNNING_UNPAUSED, - QEMU_ASYNC_JOB_DUMP) < 0) { + VIR_ASYNC_JOB_DUMP) < 0) { event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT= _SUSPENDED, VIR_DOMAIN_EVENT= _SUSPENDED_API_ERROR); @@ -3350,7 +3350,7 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, } } =20 - qemuDomainObjEndAsyncJob(vm, &priv->job); + virDomainObjEndAsyncJob(vm, &priv->job); if (ret =3D=3D 0 && flags & VIR_DUMP_CRASH) qemuDomainRemoveInactiveJob(driver, vm); =20 @@ -3400,7 +3400,7 @@ qemuDomainScreenshot(virDomainPtr dom, if (virDomainScreenshotEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -3474,7 +3474,7 @@ qemuDomainScreenshot(virDomainPtr dom, if (unlink_tmp) unlink(tmp); =20 - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -3522,7 +3522,7 @@ processWatchdogEvent(virQEMUDriverPtr driver, =20 switch (action) { case VIR_DOMAIN_WATCHDOG_ACTION_DUMP: - if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_DUMP, + if (virDomainObjBeginAsyncJob(vm, &priv->job, VIR_ASYNC_JOB_DUMP, VIR_DOMAIN_JOB_OPERATION_DUMP, flags) < 0) { return; @@ -3539,7 +3539,7 @@ processWatchdogEvent(virQEMUDriverPtr driver, =20 ret =3D qemuProcessStartCPUs(driver, vm, VIR_DOMAIN_RUNNING_UNPAUSED, - QEMU_ASYNC_JOB_DUMP); + VIR_ASYNC_JOB_DUMP); =20 if (ret < 0) virReportError(VIR_ERR_OPERATION_FAILED, @@ -3550,7 +3550,7 @@ processWatchdogEvent(virQEMUDriverPtr driver, } =20 endjob: - qemuDomainObjEndAsyncJob(vm, &priv->job); + virDomainObjEndAsyncJob(vm, &priv->job); } =20 static int @@ -3599,7 +3599,7 @@ processGuestPanicEvent(virQEMUDriverPtr driver, bool removeInactive =3D false; unsigned long flags =3D VIR_DUMP_MEMORY_ONLY; =20 - if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_DUMP, + if (virDomainObjBeginAsyncJob(vm, &priv->job, VIR_ASYNC_JOB_DUMP, VIR_DOMAIN_JOB_OPERATION_DUMP, flags) <= 0) return; =20 @@ -3637,7 +3637,7 @@ processGuestPanicEvent(virQEMUDriverPtr driver, =20 case VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY: qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_CRASHED, - QEMU_ASYNC_JOB_DUMP, 0); + VIR_ASYNC_JOB_DUMP, 0); event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED= _CRASHED); @@ -3665,7 +3665,7 @@ processGuestPanicEvent(virQEMUDriverPtr driver, } =20 endjob: - qemuDomainObjEndAsyncJob(vm, &priv->job); + virDomainObjEndAsyncJob(vm, &priv->job); if (removeInactive) qemuDomainRemoveInactiveJob(driver, vm); } @@ -3683,7 +3683,7 @@ processDeviceDeletedEvent(virQEMUDriverPtr driver, VIR_DEBUG("Removing device %s from domain %p %s", devAlias, vm, vm->def->name); =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -3706,7 +3706,7 @@ processDeviceDeletedEvent(virQEMUDriverPtr driver, devAlias); =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); } =20 =20 @@ -3921,7 +3921,7 @@ processNicRxFilterChangedEvent(virDomainObjPtr vm, "from domain %p %s", devAlias, vm, vm->def->name); =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -4003,7 +4003,7 @@ processNicRxFilterChangedEvent(virDomainObjPtr vm, } =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virNetDevRxFilterFree(hostFilter); @@ -4049,7 +4049,7 @@ processSerialChangedEvent(virQEMUDriverPtr driver, memset(&dev, 0, sizeof(dev)); } =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -4090,7 +4090,7 @@ processSerialChangedEvent(virQEMUDriverPtr driver, } =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); } =20 =20 @@ -4104,7 +4104,7 @@ processBlockJobEvent(virDomainObjPtr vm, g_autoptr(qemuBlockJobData) job =3D NULL; qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -4126,10 +4126,10 @@ processBlockJobEvent(virDomainObjPtr vm, =20 job->newstate =3D status; =20 - qemuBlockJobUpdate(vm, job, QEMU_ASYNC_JOB_NONE); + qemuBlockJobUpdate(vm, job, VIR_ASYNC_JOB_NONE); =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); } =20 =20 @@ -4139,7 +4139,7 @@ processJobStatusChangeEvent(virDomainObjPtr vm, { qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -4147,10 +4147,10 @@ processJobStatusChangeEvent(virDomainObjPtr vm, goto endjob; } =20 - qemuBlockJobUpdate(vm, job, QEMU_ASYNC_JOB_NONE); + qemuBlockJobUpdate(vm, job, VIR_ASYNC_JOB_NONE); =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); } =20 =20 @@ -4165,7 +4165,7 @@ processMonitorEOFEvent(virQEMUDriverPtr driver, unsigned int stopFlags =3D 0; virObjectEventPtr event =3D NULL; =20 - if (qemuProcessBeginStopJob(vm, QEMU_JOB_DESTROY, true) < 0) + if (qemuProcessBeginStopJob(vm, VIR_JOB_DESTROY, true) < 0) return; =20 if (!virDomainObjIsActive(vm)) { @@ -4182,7 +4182,7 @@ processMonitorEOFEvent(virQEMUDriverPtr driver, auditReason =3D "failed"; } =20 - if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_IN) { + if (priv->job.asyncJob =3D=3D VIR_ASYNC_JOB_MIGRATION_IN) { stopFlags |=3D VIR_QEMU_PROCESS_STOP_MIGRATED; qemuMigrationDstErrorSave(driver, vm->def->name, qemuMonitorLastError(priv->mon)); @@ -4190,13 +4190,13 @@ processMonitorEOFEvent(virQEMUDriverPtr driver, =20 event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPP= ED, eventReason); - qemuProcessStop(driver, vm, stopReason, QEMU_ASYNC_JOB_NONE, stopFlags= ); + qemuProcessStop(driver, vm, stopReason, VIR_ASYNC_JOB_NONE, stopFlags); virDomainAuditStop(vm, auditReason); virObjectEventStateQueue(driver->domainEventState, event); =20 endjob: qemuDomainRemoveInactive(driver, vm); - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); } =20 =20 @@ -4453,11 +4453,11 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, =20 =20 if (useAgent) { - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_MODIFY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_MODIFY) < 0) goto cleanup; } else { - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; } =20 @@ -4474,9 +4474,9 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, =20 endjob: if (useAgent) - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); else - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -4602,7 +4602,7 @@ qemuDomainPinVcpuFlags(virDomainPtr dom, if (virDomainPinVcpuFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -4641,7 +4641,7 @@ qemuDomainPinVcpuFlags(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -4732,7 +4732,7 @@ qemuDomainPinEmulator(virDomainPtr dom, =20 priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -4798,7 +4798,7 @@ qemuDomainPinEmulator(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: if (cgroup_emulator) @@ -4919,8 +4919,8 @@ qemuDomainGetVcpusFlags(virDomainPtr dom, unsigned in= t flags) goto cleanup; =20 if (flags & VIR_DOMAIN_VCPU_GUEST) { - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_QUERY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -4938,7 +4938,7 @@ qemuDomainGetVcpusFlags(virDomainPtr dom, unsigned in= t flags) qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); =20 if (ncpuinfo < 0) goto cleanup; @@ -5003,7 +5003,7 @@ qemuDomainGetIOThreadsLive(virDomainObjPtr vm, size_t i; int ret =3D -1; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -5052,7 +5052,7 @@ qemuDomainGetIOThreadsLive(virDomainObjPtr vm, ret =3D niothreads; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: if (info_ret) { @@ -5190,7 +5190,7 @@ qemuDomainPinIOThread(virDomainPtr dom, if (virDomainPinIOThreadEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -5279,7 +5279,7 @@ qemuDomainPinIOThread(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: if (cgroup_iothread) @@ -5640,7 +5640,7 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, =20 priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -5727,7 +5727,7 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 return ret; } @@ -6076,7 +6076,7 @@ qemuDomainRestoreFlags(virConnectPtr conn, goto cleanup; =20 ret =3D qemuSaveImageStartVM(conn, driver, vm, &fd, data, path, - false, QEMU_ASYNC_JOB_START); + false, VIR_ASYNC_JOB_START); =20 qemuProcessEndJob(vm); =20 @@ -6290,7 +6290,7 @@ qemuDomainObjRestore(virConnectPtr conn, const char *path, bool start_paused, bool bypass_cache, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { virDomainDefPtr def =3D NULL; qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -6500,7 +6500,7 @@ qemuDomainObjStart(virConnectPtr conn, virQEMUDriverPtr driver, virDomainObjPtr vm, unsigned int flags, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { int ret =3D -1; g_autofree char *managed_save =3D NULL; @@ -6611,7 +6611,7 @@ qemuDomainCreateWithFlags(virDomainPtr dom, unsigned = int flags) } =20 if (qemuDomainObjStart(dom->conn, driver, vm, flags, - QEMU_ASYNC_JOB_START) < 0) + VIR_ASYNC_JOB_START) < 0) goto endjob; =20 dom->id =3D vm->def->id; @@ -6751,7 +6751,7 @@ qemuDomainUndefineFlags(virDomainPtr dom, if (virDomainUndefineFlagsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (!vm->persistent) { @@ -6847,7 +6847,7 @@ qemuDomainUndefineFlags(virDomainPtr dom, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -7012,7 +7012,7 @@ qemuDomainAttachDeviceLive(virDomainObjPtr vm, } =20 if (ret =3D=3D 0) - ret =3D qemuDomainUpdateDeviceList(vm, QEMU_ASYNC_JOB_NONE); + ret =3D qemuDomainUpdateDeviceList(vm, VIR_ASYNC_JOB_NONE); =20 return ret; } @@ -7827,7 +7827,7 @@ qemuDomainAttachDeviceFlags(virDomainPtr dom, if (virDomainAttachDeviceFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjUpdateModificationImpact(vm, &flags) < 0) @@ -7839,7 +7839,7 @@ qemuDomainAttachDeviceFlags(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -7884,7 +7884,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr d= om, if (virDomainUpdateDeviceFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjUpdateModificationImpact(vm, &flags) < 0) @@ -7953,7 +7953,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr d= om, } =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainDefFree(vmdef); @@ -8023,7 +8023,7 @@ qemuDomainDetachDeviceLiveAndConfig(virQEMUDriverPtr = driver, if ((rc =3D qemuDomainDetachDeviceLive(vm, dev_copy, driver, false= )) < 0) goto cleanup; =20 - if (rc =3D=3D 0 && qemuDomainUpdateDeviceList(vm, QEMU_ASYNC_JOB_N= ONE) < 0) + if (rc =3D=3D 0 && qemuDomainUpdateDeviceList(vm, VIR_ASYNC_JOB_NO= NE) < 0) goto cleanup; =20 /* @@ -8106,7 +8106,7 @@ qemuDomainDetachDeviceAliasLiveAndConfig(virQEMUDrive= rPtr driver, if ((rc =3D qemuDomainDetachDeviceLive(vm, &dev, driver, true)) < = 0) goto cleanup; =20 - if (rc =3D=3D 0 && qemuDomainUpdateDeviceList(vm, QEMU_ASYNC_JOB_N= ONE) < 0) + if (rc =3D=3D 0 && qemuDomainUpdateDeviceList(vm, VIR_ASYNC_JOB_NO= NE) < 0) goto cleanup; } =20 @@ -8142,7 +8142,7 @@ qemuDomainDetachDeviceFlags(virDomainPtr dom, if (virDomainDetachDeviceFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjUpdateModificationImpact(vm, &flags) < 0) @@ -8154,7 +8154,7 @@ qemuDomainDetachDeviceFlags(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -8180,7 +8180,7 @@ qemuDomainDetachDeviceAlias(virDomainPtr dom, if (virDomainDetachDeviceAliasEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjUpdateModificationImpact(vm, &flags) < 0) @@ -8192,7 +8192,7 @@ qemuDomainDetachDeviceAlias(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -8255,7 +8255,7 @@ static int qemuDomainSetAutostart(virDomainPtr dom, autostart =3D (autostart !=3D 0); =20 if (vm->autostart !=3D autostart) { - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (!(configFile =3D virDomainConfigFile(cfg->configDir, vm->def->= name))) @@ -8293,7 +8293,7 @@ static int qemuDomainSetAutostart(virDomainPtr dom, vm->autostart =3D autostart; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); } ret =3D 0; =20 @@ -8401,7 +8401,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, goto cleanup; } =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -8435,7 +8435,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, } =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -8577,7 +8577,7 @@ qemuDomainSetMemoryParameters(virDomainPtr dom, goto cleanup; } =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 /* QEMU and LXC implementation are identical */ @@ -8608,7 +8608,7 @@ qemuDomainSetMemoryParameters(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -8831,7 +8831,7 @@ qemuDomainSetNumaParameters(virDomainPtr dom, } } =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -8886,7 +8886,7 @@ qemuDomainSetNumaParameters(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virBitmapFree(nodeset); @@ -9040,7 +9040,7 @@ qemuDomainSetPerfEvents(virDomainPtr dom, if (virDomainSetPerfEventsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -9082,7 +9082,7 @@ qemuDomainSetPerfEvents(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -9116,7 +9116,7 @@ qemuDomainGetPerfEvents(virDomainPtr dom, if (virDomainGetPerfEventsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (!(def =3D virDomainObjGetOneDef(vm, flags))) @@ -9143,7 +9143,7 @@ qemuDomainGetPerfEvents(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -9317,7 +9317,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr do= m, goto cleanup; } =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -9551,7 +9551,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr do= m, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainDefFree(persistentDefCopy); @@ -9845,7 +9845,7 @@ qemuDomainBlockResize(virDomainPtr dom, if (virDomainBlockResizeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -9890,7 +9890,7 @@ qemuDomainBlockResize(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -10045,7 +10045,7 @@ qemuDomainBlockStats(virDomainPtr dom, if (virDomainBlockStatsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -10068,7 +10068,7 @@ qemuDomainBlockStats(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -10105,7 +10105,7 @@ qemuDomainBlockStatsFlags(virDomainPtr dom, if (virDomainBlockStatsFlagsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -10158,7 +10158,7 @@ qemuDomainBlockStatsFlags(virDomainPtr dom, *nparams =3D nstats; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: VIR_FREE(blockstats); @@ -10252,7 +10252,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom, if (virDomainSetInterfaceParametersEnsureACL(dom->conn, vm->def, flags= ) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -10426,7 +10426,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virNetDevBandwidthFree(bandwidth); @@ -10544,7 +10544,7 @@ qemuDomainGetInterfaceParameters(virDomainPtr dom, return ret; } =20 -/* This functions assumes that job QEMU_JOB_QUERY is started by a caller */ +/* This functions assumes that job VIR_JOB_QUERY is started by a caller */ static int qemuDomainMemoryStatsInternal(virDomainObjPtr vm, virDomainMemoryStatPtr stats, @@ -10602,12 +10602,12 @@ qemuDomainMemoryStats(virDomainPtr dom, if (virDomainMemoryStatsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 ret =3D qemuDomainMemoryStatsInternal(vm, stats, nr_stats); =20 - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -10708,7 +10708,7 @@ qemuDomainMemoryPeek(virDomainPtr dom, goto cleanup; } =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -10752,7 +10752,7 @@ qemuDomainMemoryPeek(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: VIR_FORCE_CLOSE(fd); @@ -10989,7 +10989,7 @@ qemuDomainGetBlockInfo(virDomainPtr dom, if (virDomainGetBlockInfoEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (!(disk =3D virDomainDiskByName(vm->def, path, false))) { @@ -11061,7 +11061,7 @@ qemuDomainGetBlockInfo(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); cleanup: VIR_FREE(entry); virDomainObjEndAPI(&vm); @@ -12548,19 +12548,19 @@ qemuDomainGetJobInfoMigrationStats(virDomainObjPt= r vm, qemuDomainObjPrivatePtr priv =3D vm->privateData; bool events =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVE= NT); =20 - if (jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_ACTIVE || - jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_MIGRATING || - jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED || - jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_POSTCOPY) { + if (jobInfo->status =3D=3D VIR_DOMAIN_JOB_STATUS_ACTIVE || + jobInfo->status =3D=3D VIR_DOMAIN_JOB_STATUS_MIGRATING || + jobInfo->status =3D=3D VIR_DOMAIN_JOB_STATUS_QEMU_COMPLETED || + jobInfo->status =3D=3D VIR_DOMAIN_JOB_STATUS_POSTCOPY) { if (events && - jobInfo->status !=3D QEMU_DOMAIN_JOB_STATUS_ACTIVE && - qemuMigrationAnyFetchStats(vm, QEMU_ASYNC_JOB_NONE, + jobInfo->status !=3D VIR_DOMAIN_JOB_STATUS_ACTIVE && + qemuMigrationAnyFetchStats(vm, VIR_ASYNC_JOB_NONE, jobInfo, NULL) < 0) return -1; =20 - if (jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_ACTIVE && - jobInfo->statsType =3D=3D QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION= && - qemuMigrationSrcFetchMirrorStats(vm, QEMU_ASYNC_JOB_NONE, + if (jobInfo->status =3D=3D VIR_DOMAIN_JOB_STATUS_ACTIVE && + jobInfo->statsType =3D=3D VIR_DOMAIN_JOB_STATS_TYPE_MIGRATION = && + qemuMigrationSrcFetchMirrorStats(vm, VIR_ASYNC_JOB_NONE, jobInfo) < 0) return -1; =20 @@ -12580,7 +12580,7 @@ qemuDomainGetJobInfoDumpStats(virDomainObjPtr vm, qemuMonitorDumpStats stats =3D { 0 }; int rc; =20 - if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_NONE) < 0) return -1; =20 rc =3D qemuMonitorQueryDump(priv->mon, &stats); @@ -12604,7 +12604,7 @@ qemuDomainGetJobInfoDumpStats(virDomainObjPtr vm, break; =20 case QEMU_MONITOR_DUMP_STATUS_ACTIVE: - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_ACTIVE; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_ACTIVE; VIR_DEBUG("dump active, bytes written=3D'%llu' remaining=3D'%llu'", jobInfo->stats.dump.completed, jobInfo->stats.dump.total - @@ -12612,7 +12612,7 @@ qemuDomainGetJobInfoDumpStats(virDomainObjPtr vm, break; =20 case QEMU_MONITOR_DUMP_STATUS_COMPLETED: - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_COMPLETED; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_COMPLETED; VIR_DEBUG("dump completed, bytes written=3D'%llu'", jobInfo->stats.dump.completed); break; @@ -12640,14 +12640,14 @@ qemuDomainGetJobStatsInternal(virDomainObjPtr vm, return 0; } =20 - if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_IN) { + if (priv->job.asyncJob =3D=3D VIR_ASYNC_JOB_MIGRATION_IN) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("migration statistics are available only on " "the source host")); return -1; } =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -12660,30 +12660,30 @@ qemuDomainGetJobStatsInternal(virDomainObjPtr vm, *jobInfo =3D qemuDomainJobInfoCopy(jobPriv->current); =20 switch ((*jobInfo)->statsType) { - case QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION: - case QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP: + case VIR_DOMAIN_JOB_STATS_TYPE_MIGRATION: + case VIR_DOMAIN_JOB_STATS_TYPE_SAVEDUMP: if (qemuDomainGetJobInfoMigrationStats(vm, *jobInfo) < 0) goto cleanup; break; =20 - case QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUMP: + case VIR_DOMAIN_JOB_STATS_TYPE_MEMDUMP: if (qemuDomainGetJobInfoDumpStats(vm, *jobInfo) < 0) goto cleanup; break; =20 - case QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP: + case VIR_DOMAIN_JOB_STATS_TYPE_BACKUP: if (qemuBackupGetJobInfoStats(vm, *jobInfo) < 0) goto cleanup; break; =20 - case QEMU_DOMAIN_JOB_STATS_TYPE_NONE: + case VIR_DOMAIN_JOB_STATS_TYPE_NONE: break; } =20 ret =3D 0; =20 cleanup: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -12708,7 +12708,7 @@ qemuDomainGetJobInfo(virDomainPtr dom, goto cleanup; =20 if (!jobInfo || - jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_NONE) { + jobInfo->status =3D=3D VIR_DOMAIN_JOB_STATUS_NONE) { ret =3D 0; goto cleanup; } @@ -12750,7 +12750,7 @@ qemuDomainGetJobStats(virDomainPtr dom, goto cleanup; =20 if (!jobInfo || - jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_NONE) { + jobInfo->status =3D=3D VIR_DOMAIN_JOB_STATUS_NONE) { *type =3D VIR_DOMAIN_JOB_NONE; *params =3D NULL; *nparams =3D 0; @@ -12777,7 +12777,7 @@ qemuDomainAbortJobMigration(virDomainObjPtr vm) =20 VIR_DEBUG("Cancelling migration job at client request"); =20 - qemuDomainObjAbortAsyncJob(vm, &priv->job); + virDomainObjAbortAsyncJob(vm, &priv->job); qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorMigrateCancel(priv->mon); if (qemuDomainObjExitMonitor(vm) < 0) @@ -12803,7 +12803,7 @@ static int qemuDomainAbortJob(virDomainPtr dom) if (virDomainAbortJobEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_ABORT) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_ABORT) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -12812,25 +12812,25 @@ static int qemuDomainAbortJob(virDomainPtr dom) jobPriv =3D priv->job.privateData; =20 switch (priv->job.asyncJob) { - case QEMU_ASYNC_JOB_NONE: + case VIR_ASYNC_JOB_NONE: virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("no job is active on the domain")); break; =20 - case QEMU_ASYNC_JOB_MIGRATION_IN: + case VIR_ASYNC_JOB_MIGRATION_IN: virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("cannot abort incoming migration;" " use virDomainDestroy instead")); break; =20 - case QEMU_ASYNC_JOB_START: + case VIR_ASYNC_JOB_START: virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("cannot abort VM start;" " use virDomainDestroy instead")); break; =20 - case QEMU_ASYNC_JOB_MIGRATION_OUT: - if ((jobPriv->current->status =3D=3D QEMU_DOMAIN_JOB_STATUS_POSTCO= PY || + case VIR_ASYNC_JOB_MIGRATION_OUT: + if ((jobPriv->current->status =3D=3D VIR_DOMAIN_JOB_STATUS_POSTCOP= Y || (virDomainObjGetState(vm, &reason) =3D=3D VIR_DOMAIN_PAUSED && reason =3D=3D VIR_DOMAIN_PAUSED_POSTCOPY))) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", @@ -12841,11 +12841,11 @@ static int qemuDomainAbortJob(virDomainPtr dom) ret =3D qemuDomainAbortJobMigration(vm); break; =20 - case QEMU_ASYNC_JOB_SAVE: + case VIR_ASYNC_JOB_SAVE: ret =3D qemuDomainAbortJobMigration(vm); break; =20 - case QEMU_ASYNC_JOB_DUMP: + case VIR_ASYNC_JOB_DUMP: if (priv->job.apiFlags & VIR_DUMP_MEMORY_ONLY) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("cannot abort memory-only dump")); @@ -12855,23 +12855,23 @@ static int qemuDomainAbortJob(virDomainPtr dom) ret =3D qemuDomainAbortJobMigration(vm); break; =20 - case QEMU_ASYNC_JOB_SNAPSHOT: + case VIR_ASYNC_JOB_SNAPSHOT: ret =3D qemuDomainAbortJobMigration(vm); break; =20 - case QEMU_ASYNC_JOB_BACKUP: - qemuBackupJobCancelBlockjobs(vm, priv->backup, true, QEMU_ASYNC_JO= B_NONE); + case VIR_ASYNC_JOB_BACKUP: + qemuBackupJobCancelBlockjobs(vm, priv->backup, true, VIR_ASYNC_JOB= _NONE); ret =3D 0; break; =20 - case QEMU_ASYNC_JOB_LAST: + case VIR_ASYNC_JOB_LAST: default: - virReportEnumRangeError(qemuDomainAsyncJob, priv->job.asyncJob); + virReportEnumRangeError(virDomainAsyncJob, priv->job.asyncJob); break; } =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -12900,7 +12900,7 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom, if (virDomainMigrateSetMaxDowntimeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MIGRATION_OP) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MIGRATION_OP) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -12917,7 +12917,7 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom, downtime) < 0) goto endjob; =20 - if (qemuMigrationParamsApply(vm, QEMU_ASYNC_JOB_NONE, + if (qemuMigrationParamsApply(vm, VIR_ASYNC_JOB_NONE, migParams) < 0) goto endjob; } else { @@ -12930,7 +12930,7 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -12959,13 +12959,13 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom, if (virDomainMigrateGetMaxDowntimeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - if (qemuMigrationParamsFetch(vm, QEMU_ASYNC_JOB_NONE, + if (qemuMigrationParamsFetch(vm, VIR_ASYNC_JOB_NONE, &migParams) < 0) goto endjob; =20 @@ -12985,7 +12985,7 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: qemuMigrationParamsFree(migParams); @@ -13015,7 +13015,7 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr d= om, if (virDomainMigrateGetCompressionCacheEnsureACL(dom->conn, vm->def) <= 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -13029,7 +13029,7 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr d= om, } =20 if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_PARAM_XBZRLE_CA= CHE_SIZE)) { - if (qemuMigrationParamsFetch(vm, QEMU_ASYNC_JOB_NONE, + if (qemuMigrationParamsFetch(vm, VIR_ASYNC_JOB_NONE, &migParams) < 0) goto endjob; =20 @@ -13047,7 +13047,7 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr d= om, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -13075,7 +13075,7 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr d= om, if (virDomainMigrateSetCompressionCacheEnsureACL(dom->conn, vm->def) <= 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MIGRATION_OP) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MIGRATION_OP) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -13098,7 +13098,7 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr d= om, cacheSize) < 0) goto endjob; =20 - if (qemuMigrationParamsApply(vm, QEMU_ASYNC_JOB_NONE, + if (qemuMigrationParamsApply(vm, VIR_ASYNC_JOB_NONE, migParams) < 0) goto endjob; } else { @@ -13111,7 +13111,7 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr d= om, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -13158,7 +13158,7 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, goto cleanup; } =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MIGRATION_OP) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MIGRATION_OP) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -13183,7 +13183,7 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, bandwidth * 1024 * 1024) < 0) goto endjob; =20 - if (qemuMigrationParamsApply(vm, QEMU_ASYNC_JOB_NONE, + if (qemuMigrationParamsApply(vm, VIR_ASYNC_JOB_NONE, migParams) < 0) goto endjob; } else { @@ -13201,7 +13201,7 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -13219,13 +13219,13 @@ qemuDomainMigrationGetPostcopyBandwidth(virDomain= ObjPtr vm, qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) goto cleanup; =20 - if (qemuMigrationParamsFetch(vm, QEMU_ASYNC_JOB_NONE, + if (qemuMigrationParamsFetch(vm, VIR_ASYNC_JOB_NONE, &migParams) < 0) goto cleanup; =20 @@ -13256,7 +13256,7 @@ qemuDomainMigrationGetPostcopyBandwidth(virDomainOb= jPtr vm, ret =3D 0; =20 cleanup: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -13314,13 +13314,13 @@ qemuDomainMigrateStartPostCopy(virDomainPtr dom, if (virDomainMigrateStartPostCopyEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MIGRATION_OP) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MIGRATION_OP) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) goto endjob; =20 - if (priv->job.asyncJob !=3D QEMU_ASYNC_JOB_MIGRATION_OUT) { + if (priv->job.asyncJob !=3D VIR_ASYNC_JOB_MIGRATION_OUT) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("post-copy can only be started while " "outgoing migration is in progress")); @@ -13341,7 +13341,7 @@ qemuDomainMigrateStartPostCopy(virDomainPtr dom, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14040,7 +14040,7 @@ static int qemuDomainQemuMonitorCommand(virDomainPt= r domain, const char *cmd, if (virDomainQemuMonitorCommandEnsureACL(domain->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14056,7 +14056,7 @@ static int qemuDomainQemuMonitorCommand(virDomainPt= r domain, const char *cmd, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14374,7 +14374,7 @@ qemuDomainBlockPullCommon(virDomainObjPtr vm, goto cleanup; } =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14470,7 +14470,7 @@ qemuDomainBlockPullCommon(virDomainObjPtr vm, qemuBlockJobStarted(job, vm); =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: qemuBlockJobStartupFinalize(vm, job); @@ -14504,7 +14504,7 @@ qemuDomainBlockJobAbort(virDomainPtr dom, if (virDomainBlockJobAbortEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14558,13 +14558,13 @@ qemuDomainBlockJobAbort(virDomainPtr dom, ignore_value(virDomainObjSave(vm, driver->xmlopt, cfg->stateDir)); =20 if (!async) { - qemuBlockJobUpdate(vm, job, QEMU_ASYNC_JOB_NONE); + qemuBlockJobUpdate(vm, job, VIR_ASYNC_JOB_NONE); while (qemuBlockJobIsRunning(job)) { if (virDomainObjWait(vm) < 0) { ret =3D -1; goto endjob; } - qemuBlockJobUpdate(vm, job, QEMU_ASYNC_JOB_NONE); + qemuBlockJobUpdate(vm, job, VIR_ASYNC_JOB_NONE); } =20 if (pivot && @@ -14586,8 +14586,8 @@ qemuDomainBlockJobAbort(virDomainPtr dom, =20 endjob: if (job && !async) - qemuBlockJobSyncEnd(vm, job, QEMU_ASYNC_JOB_NONE); - qemuDomainObjEndJob(vm, &priv->job); + qemuBlockJobSyncEnd(vm, job, VIR_ASYNC_JOB_NONE); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14666,7 +14666,7 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom, if (virDomainGetBlockJobInfoEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14694,7 +14694,7 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom, } =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14736,7 +14736,7 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom, if (virDomainBlockJobSetSpeedEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -14759,7 +14759,7 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -14938,7 +14938,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, return -1; } =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -15115,7 +15115,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, goto endjob; } } else { - if (!(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, QEM= U_ASYNC_JOB_NONE))) + if (!(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, VIR= _ASYNC_JOB_NONE))) goto endjob; =20 if (qemuBlockStorageSourceCreateDetectSize(blockNamedNodeData, @@ -15157,7 +15157,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, =20 if (crdata && qemuBlockStorageSourceCreate(vm, mirror, mirrorBacking, mirror= ->backingStore, - crdata->srcdata[0], QEMU_ASYNC_JO= B_NONE) < 0) + crdata->srcdata[0], VIR_ASYNC_JOB= _NONE) < 0) goto endjob; } =20 @@ -15214,7 +15214,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, if (need_unlink && virStorageFileUnlink(mirror) < 0) VIR_WARN("%s", _("unable to remove just-created copy target")); virStorageFileDeinit(mirror); - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); qemuBlockJobStartupFinalize(vm, job); =20 return ret; @@ -15438,7 +15438,7 @@ qemuDomainBlockCommit(virDomainPtr dom, if (virDomainBlockCommitEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -15654,7 +15654,7 @@ qemuDomainBlockCommit(virDomainPtr dom, virErrorRestore(&orig_err); } qemuBlockJobStartupFinalize(vm, job); - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -15683,7 +15683,7 @@ qemuDomainOpenGraphics(virDomainPtr dom, if (virDomainOpenGraphicsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -15726,7 +15726,7 @@ qemuDomainOpenGraphics(virDomainPtr dom, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -15794,14 +15794,14 @@ qemuDomainOpenGraphicsFD(virDomainPtr dom, if (qemuSecurityClearSocketLabel(driver->securityManager, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; qemuDomainObjEnterMonitor(vm); ret =3D qemuMonitorOpenGraphics(priv->mon, protocol, pair[1], "graphic= sfd", (flags & VIR_DOMAIN_OPEN_GRAPHICS_SKIPAU= TH)); if (qemuDomainObjExitMonitor(vm) < 0) ret =3D -1; - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); if (ret < 0) goto cleanup; =20 @@ -16041,7 +16041,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, cfg =3D virQEMUDriverGetConfig(driver); priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -16305,7 +16305,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: VIR_FREE(info.group_name); @@ -16349,7 +16349,7 @@ qemuDomainGetBlockIoTune(virDomainPtr dom, if (virDomainGetBlockIoTuneEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 /* the API check guarantees that only one of the definitions will be s= et */ @@ -16462,7 +16462,7 @@ qemuDomainGetBlockIoTune(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: VIR_FREE(reply.group_name); @@ -16495,7 +16495,7 @@ qemuDomainGetDiskErrors(virDomainPtr dom, if (virDomainGetDiskErrorsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -16536,7 +16536,7 @@ qemuDomainGetDiskErrors(virDomainPtr dom, ret =3D n; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -16574,7 +16574,7 @@ qemuDomainSetMetadata(virDomainPtr dom, if (virDomainSetMetadataEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 ret =3D virDomainObjSetMetadata(vm, type, metadata, key, uri, @@ -16587,7 +16587,7 @@ qemuDomainSetMetadata(virDomainPtr dom, virObjectEventStateQueue(driver->domainEventState, ev); } =20 - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -16696,7 +16696,7 @@ qemuDomainQueryWakeupSuspendSupport(virDomainObjPtr= vm, if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_QUERY_CURRENT_MACHINE)) return -1; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) return -1; =20 if ((ret =3D virDomainObjCheckActive(vm)) < 0) @@ -16705,7 +16705,7 @@ qemuDomainQueryWakeupSuspendSupport(virDomainObjPtr= vm, ret =3D qemuDomainProbeQMPCurrentMachine(vm, wakeupSupported); =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -16718,8 +16718,8 @@ qemuDomainPMSuspendAgent(virDomainObjPtr vm, qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_MODIFY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_MODIFY) < 0) return -1; =20 if ((ret =3D virDomainObjCheckActive(vm)) < 0) @@ -16733,7 +16733,7 @@ qemuDomainPMSuspendAgent(virDomainObjPtr vm, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); return ret; } =20 @@ -16828,7 +16828,7 @@ qemuDomainPMWakeup(virDomainPtr dom, if (virDomainPMWakeupEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -16840,7 +16840,7 @@ qemuDomainPMWakeup(virDomainPtr dom, ret =3D -1; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -16886,8 +16886,8 @@ qemuDomainQemuAgentCommand(virDomainPtr domain, if (virDomainQemuAgentCommandEnsureACL(domain->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_MODIFY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -16905,7 +16905,7 @@ qemuDomainQemuAgentCommand(virDomainPtr domain, VIR_FREE(result); =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -16984,8 +16984,8 @@ qemuDomainFSTrim(virDomainPtr dom, if (virDomainFSTrimEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_MODIFY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -16999,7 +16999,7 @@ qemuDomainFSTrim(virDomainPtr dom, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -17156,8 +17156,8 @@ qemuDomainGetHostnameAgent(virDomainObjPtr vm, qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_QUERY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_QUERY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17172,7 +17172,7 @@ qemuDomainGetHostnameAgent(virDomainObjPtr vm, =20 ret =3D 0; endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); return ret; } =20 @@ -17189,7 +17189,7 @@ qemuDomainGetHostnameLease(virDomainObjPtr vm, int ret =3D -1; qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17231,7 +17231,7 @@ qemuDomainGetHostnameLease(virDomainObjPtr vm, =20 ret =3D 0; endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -17302,8 +17302,8 @@ qemuDomainGetTime(virDomainPtr dom, if (virDomainGetTimeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_QUERY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17322,7 +17322,7 @@ qemuDomainGetTime(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -17340,8 +17340,8 @@ qemuDomainSetTimeAgent(virDomainObjPtr vm, qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_MODIFY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_MODIFY) < 0) return -1; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17355,7 +17355,7 @@ qemuDomainSetTimeAgent(virDomainObjPtr vm, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); return ret; } =20 @@ -17397,7 +17397,7 @@ qemuDomainSetTime(virDomainPtr dom, if (qemuDomainSetTimeAgent(vm, seconds, nseconds, rtcSync) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17417,7 +17417,7 @@ qemuDomainSetTime(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -17445,8 +17445,8 @@ qemuDomainFSFreeze(virDomainPtr dom, if (virDomainFSFreezeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_MODIFY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17455,7 +17455,7 @@ qemuDomainFSFreeze(virDomainPtr dom, ret =3D qemuSnapshotFSFreeze(vm, mountpoints, nmountpoints); =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -17489,8 +17489,8 @@ qemuDomainFSThaw(virDomainPtr dom, if (virDomainFSThawEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_MODIFY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -17499,7 +17499,7 @@ qemuDomainFSThaw(virDomainPtr dom, ret =3D qemuSnapshotFSThaw(vm, true); =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -18002,7 +18002,7 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr driver G_GN= UC_UNUSED, goto cleanup; =20 if (HAVE_JOB(privflags) && virDomainObjIsActive(dom) && - qemuDomainRefreshVcpuHalted(dom, QEMU_ASYNC_JOB_NONE) < 0) { + qemuDomainRefreshVcpuHalted(dom, VIR_ASYNC_JOB_NONE) < 0) { /* it's ok to be silent and go ahead, because halted vcpu info * wasn't here from the beginning */ virResetLastError(); @@ -18743,9 +18743,9 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, int rv; =20 if (flags & VIR_CONNECT_GET_ALL_DOMAINS_STATS_NOWAIT) - rv =3D qemuDomainObjBeginJobNowait(vm, &priv->job, QEMU_JO= B_QUERY); + rv =3D virDomainObjBeginJobNowait(vm, &priv->job, VIR_JOB_= QUERY); else - rv =3D qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUER= Y); + rv =3D virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY); =20 if (rv =3D=3D 0) domflags |=3D QEMU_DOMAIN_STATS_HAVE_JOB; @@ -18756,7 +18756,7 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, domflags |=3D QEMU_DOMAIN_STATS_BACKING; if (qemuDomainGetStats(conn, vm, stats, &tmp, domflags) < 0) { if (HAVE_JOB(domflags) && vm) - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 virObjectUnlock(vm); goto cleanup; @@ -18766,7 +18766,7 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, tmpstats[nstats++] =3D tmp; =20 if (HAVE_JOB(domflags)) - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 virObjectUnlock(vm); } @@ -18814,8 +18814,8 @@ qemuDomainGetFSInfoAgent(virDomainObjPtr vm, qemuAgentPtr agent; qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_QUERY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_QUERY) < 0) return ret; =20 if (virDomainObjCheckActive(vm) < 0) @@ -18829,7 +18829,7 @@ qemuDomainGetFSInfoAgent(virDomainObjPtr vm, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); return ret; } =20 @@ -18928,7 +18928,7 @@ qemuDomainGetFSInfo(virDomainPtr dom, if ((nfs =3D qemuDomainGetFSInfoAgent(vm, &agentinfo)) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -18937,7 +18937,7 @@ qemuDomainGetFSInfo(virDomainPtr dom, ret =3D virDomainFSInfoFormat(agentinfo, nfs, vm->def, info); =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: g_free(agentinfo); @@ -18976,8 +18976,8 @@ qemuDomainInterfaceAddresses(virDomainPtr dom, break; =20 case VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT: - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_QUERY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -18988,7 +18988,7 @@ qemuDomainInterfaceAddresses(virDomainPtr dom, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); =20 break; =20 @@ -19031,8 +19031,8 @@ qemuDomainSetUserPassword(virDomainPtr dom, if (virDomainSetUserPasswordEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_MODIFY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -19052,7 +19052,7 @@ qemuDomainSetUserPassword(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -19187,7 +19187,7 @@ static int qemuDomainRename(virDomainPtr dom, =20 priv =3D vm->privateData; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjIsActive(vm)) { @@ -19234,7 +19234,7 @@ static int qemuDomainRename(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -19327,8 +19327,8 @@ qemuDomainGetGuestVcpus(virDomainPtr dom, if (virDomainGetGuestVcpusEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, - QEMU_AGENT_JOB_QUERY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, + VIR_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -19347,7 +19347,7 @@ qemuDomainGetGuestVcpus(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: VIR_FREE(info); @@ -19389,7 +19389,7 @@ qemuDomainSetGuestVcpus(virDomainPtr dom, if (virDomainSetGuestVcpusEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, QEMU_AGENT_JOB_MODIFY)= < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, VIR_AGENT_JOB_MODIFY) < = 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -19435,7 +19435,7 @@ qemuDomainSetGuestVcpus(virDomainPtr dom, qemuDomainObjExitAgent(vm, agent); =20 endjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); =20 cleanup: VIR_FREE(info); @@ -19485,7 +19485,7 @@ qemuDomainSetVcpu(virDomainPtr dom, if (virDomainSetVcpuEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -19512,7 +19512,7 @@ qemuDomainSetVcpu(virDomainPtr dom, ret =3D qemuDomainSetVcpuInternal(driver, vm, def, persistentDef, map,= !!state); =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virBitmapFree(map); @@ -19544,7 +19544,7 @@ qemuDomainSetBlockThreshold(virDomainPtr dom, if (virDomainSetBlockThresholdEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -19561,7 +19561,7 @@ qemuDomainSetBlockThreshold(virDomainPtr dom, =20 if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV) && !src->nodestorage && - qemuBlockNodeNamesDetect(vm, QEMU_ASYNC_JOB_NONE) < 0) + qemuBlockNodeNamesDetect(vm, VIR_ASYNC_JOB_NONE) < 0) goto endjob; =20 if (!src->nodestorage) { @@ -19581,7 +19581,7 @@ qemuDomainSetBlockThreshold(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -19639,7 +19639,7 @@ qemuDomainSetLifecycleAction(virDomainPtr dom, if (virDomainSetLifecycleActionEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0) @@ -19670,7 +19670,7 @@ qemuDomainSetLifecycleAction(virDomainPtr dom, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virDomainObjEndAPI(&vm); @@ -19763,7 +19763,7 @@ qemuDomainGetSEVMeasurement(virDomainObjPtr vm, =20 virCheckFlags(VIR_TYPED_PARAM_STRING_OKAY, -1); =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) return -1; =20 qemuDomainObjEnterMonitor(vm); @@ -19783,7 +19783,7 @@ qemuDomainGetSEVMeasurement(virDomainObjPtr vm, ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); return ret; } =20 @@ -19966,7 +19966,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom, if (virDomainGetGuestInfoEnsureACL(dom->conn, vm->def) < 0) goto cleanup; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, QEMU_AGENT_JOB_QUERY) = < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, VIR_AGENT_JOB_QUERY) < 0) goto cleanup; =20 if (!qemuDomainAgentAvailable(vm, true)) @@ -20014,10 +20014,10 @@ qemuDomainGetGuestInfo(virDomainPtr dom, qemuDomainObjExitAgent(vm, agent); =20 endagentjob: - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); =20 if (nfs > 0) { - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_QUERY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_QUERY) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) @@ -20028,7 +20028,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom, qemuAgentFSInfoFormatParams(agentfsinfo, nfs, vm->def, params, npa= rams, &maxparams); =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); } =20 cleanup: diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 7b626ee383..6927739501 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -323,7 +323,7 @@ qemuDomainChangeMediaLegacy(virDomainObjPtr vm, int qemuHotplugAttachDBusVMState(virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; g_autoptr(virJSONValue) props =3D NULL; @@ -368,7 +368,7 @@ qemuHotplugAttachDBusVMState(virQEMUDriverPtr driver, */ int qemuHotplugRemoveDBusVMState(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret; @@ -405,7 +405,7 @@ qemuHotplugRemoveDBusVMState(virDomainObjPtr vm, static int qemuHotplugAttachManagedPR(virDomainObjPtr vm, virStorageSourcePtr src, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; virJSONValuePtr props =3D NULL; @@ -453,7 +453,7 @@ qemuHotplugAttachManagedPR(virDomainObjPtr vm, */ static int qemuHotplugRemoveManagedPR(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; virErrorPtr orig_err; @@ -618,7 +618,7 @@ qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver, if (qemuDomainStorageSourceChainAccessAllow(driver, vm, newsrc) < 0) goto cleanup; =20 - if (qemuHotplugAttachManagedPR(vm, newsrc, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuHotplugAttachManagedPR(vm, newsrc, VIR_ASYNC_JOB_NONE) < 0) goto cleanup; =20 if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) @@ -654,7 +654,7 @@ qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver, =20 /* remove PR manager object if unneeded */ if (managedpr) - ignore_value(qemuHotplugRemoveManagedPR(vm, QEMU_ASYNC_JOB_NONE)); + ignore_value(qemuHotplugRemoveManagedPR(vm, VIR_ASYNC_JOB_NONE)); =20 /* revert old image do the disk definition */ if (oldsrc) @@ -716,7 +716,7 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, if (VIR_REALLOC_N(vm->def->disks, vm->def->ndisks + 1) < 0) goto cleanup; =20 - if (qemuHotplugAttachManagedPR(vm, disk->src, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuHotplugAttachManagedPR(vm, disk->src, VIR_ASYNC_JOB_NONE) < 0) goto cleanup; =20 qemuDomainObjEnterMonitor(vm); @@ -779,7 +779,7 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, ret =3D -2; =20 if (virStorageSourceChainHasManagedPR(disk->src) && - qemuHotplugRemoveManagedPR(vm, QEMU_ASYNC_JOB_NONE) < 0) + qemuHotplugRemoveManagedPR(vm, VIR_ASYNC_JOB_NONE) < 0) ret =3D -2; =20 virDomainAuditDisk(vm, NULL, disk->src, "attach", false); @@ -1665,7 +1665,7 @@ qemuDomainAttachHostPCIDevice(virQEMUDriverPtr driver, =20 void qemuDomainDelTLSObjects(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, const char *secAlias, const char *tlsAlias) { @@ -1695,7 +1695,7 @@ qemuDomainDelTLSObjects(virDomainObjPtr vm, =20 int qemuDomainAddTLSObjects(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, virJSONValuePtr *secProps, virJSONValuePtr *tlsProps) { @@ -1802,7 +1802,7 @@ qemuDomainAddChardevTLSObjects(virQEMUDriverPtr drive= r, goto cleanup; dev->data.tcp.tlscreds =3D true; =20 - if (qemuDomainAddTLSObjects(vm, QEMU_ASYNC_JOB_NONE, + if (qemuDomainAddTLSObjects(vm, VIR_ASYNC_JOB_NONE, &secProps, &tlsProps) < 0) goto cleanup; =20 @@ -1922,7 +1922,7 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr d= river, ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias)); ignore_value(qemuDomainObjExitMonitor(vm)); virErrorRestore(&orig_err); - qemuDomainDelTLSObjects(vm, QEMU_ASYNC_JOB_NONE, + qemuDomainDelTLSObjects(vm, VIR_ASYNC_JOB_NONE, secAlias, tlsAlias); goto audit; } @@ -2202,7 +2202,7 @@ int qemuDomainAttachChrDevice(virQEMUDriverPtr driver, ignore_value(qemuDomainObjExitMonitor(vm)); virErrorRestore(&orig_err); =20 - qemuDomainDelTLSObjects(vm, QEMU_ASYNC_JOB_NONE, + qemuDomainDelTLSObjects(vm, VIR_ASYNC_JOB_NONE, secAlias, tlsAlias); goto audit; } @@ -2317,7 +2317,7 @@ qemuDomainAttachRNGDevice(virQEMUDriverPtr driver, releaseaddr =3D false; virErrorRestore(&orig_err); =20 - qemuDomainDelTLSObjects(vm, QEMU_ASYNC_JOB_NONE, + qemuDomainDelTLSObjects(vm, VIR_ASYNC_JOB_NONE, secAlias, tlsAlias); goto audit; } @@ -2415,13 +2415,13 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, virObjectEventStateQueue(driver->domainEventState, event); =20 /* fix the balloon size */ - ignore_value(qemuProcessRefreshBalloonState(vm, QEMU_ASYNC_JOB_NONE)); + ignore_value(qemuProcessRefreshBalloonState(vm, VIR_ASYNC_JOB_NONE)); =20 /* mem is consumed by vm->def */ mem =3D NULL; =20 /* this step is best effort, removing the device would be so much trou= ble */ - ignore_value(qemuDomainUpdateMemoryDeviceInfo(vm, QEMU_ASYNC_JOB_NONE)= ); + ignore_value(qemuDomainUpdateMemoryDeviceInfo(vm, VIR_ASYNC_JOB_NONE)); =20 ret =3D 0; =20 @@ -4099,7 +4099,7 @@ qemuDomainChangeGraphics(virQEMUDriverPtr driver, if (qemuDomainChangeGraphicsPasswords(vm, VIR_DOMAIN_GRAPHICS_= TYPE_VNC, &dev->data.vnc.auth, cfg->vncPassword, - QEMU_ASYNC_JOB_NONE) < 0) + VIR_ASYNC_JOB_NONE) < 0) return -1; =20 /* Steal the new dev's char * reference */ @@ -4146,7 +4146,7 @@ qemuDomainChangeGraphics(virQEMUDriverPtr driver, if (qemuDomainChangeGraphicsPasswords(vm, VIR_DOMAIN_GRAPHICS_= TYPE_SPICE, &dev->data.spice.auth, cfg->spicePassword, - QEMU_ASYNC_JOB_NONE) < 0) + VIR_ASYNC_JOB_NONE) < 0) return -1; =20 /* Steal the new dev's char * reference */ @@ -4281,7 +4281,7 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver, ignore_value(qemuRemoveSharedDevice(driver, &dev, vm->def->name)); =20 if (virStorageSourceChainHasManagedPR(disk->src) && - qemuHotplugRemoveManagedPR(vm, QEMU_ASYNC_JOB_NONE) < 0) + qemuHotplugRemoveManagedPR(vm, VIR_ASYNC_JOB_NONE) < 0) goto cleanup; =20 ret =3D 0; @@ -4358,7 +4358,7 @@ qemuDomainRemoveMemoryDevice(virQEMUDriverPtr driver, virDomainMemoryDefFree(mem); =20 /* fix the balloon size */ - ignore_value(qemuProcessRefreshBalloonState(vm, QEMU_ASYNC_JOB_NONE)); + ignore_value(qemuProcessRefreshBalloonState(vm, VIR_ASYNC_JOB_NONE)); =20 /* decrease the mlock limit after memory unplug if necessary */ ignore_value(qemuDomainAdjustMaxMemLock(vm, false)); @@ -5903,7 +5903,7 @@ qemuDomainRemoveVcpu(virDomainObjPtr vm, virErrorPtr save_error =3D NULL; size_t i; =20 - if (qemuDomainRefreshVcpuInfo(vm, QEMU_ASYNC_JOB_NONE, false) < 0) + if (qemuDomainRefreshVcpuInfo(vm, VIR_ASYNC_JOB_NONE, false) < 0) return -1; =20 /* validation requires us to set the expected state prior to calling i= t */ @@ -6052,7 +6052,7 @@ qemuDomainHotplugAddVcpu(virQEMUDriverPtr driver, if (newhotplug) vm->def->individualvcpus =3D true; =20 - if (qemuDomainRefreshVcpuInfo(vm, QEMU_ASYNC_JOB_NONE, false) < 0) + if (qemuDomainRefreshVcpuInfo(vm, VIR_ASYNC_JOB_NONE, false) < 0) goto cleanup; =20 /* validation requires us to set the expected state prior to calling i= t */ diff --git a/src/qemu/qemu_hotplug.h b/src/qemu/qemu_hotplug.h index 51af92f840..3618af87c7 100644 --- a/src/qemu/qemu_hotplug.h +++ b/src/qemu/qemu_hotplug.h @@ -32,12 +32,12 @@ int qemuDomainChangeEjectableMedia(virQEMUDriverPtr dri= ver, bool force); =20 void qemuDomainDelTLSObjects(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, const char *secAlias, const char *tlsAlias); =20 int qemuDomainAddTLSObjects(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, virJSONValuePtr *secProps, virJSONValuePtr *tlsProps); =20 @@ -146,7 +146,7 @@ unsigned long long qemuDomainGetUnplugTimeout(virDomain= ObjPtr vm) G_GNUC_NO_INLI =20 int qemuHotplugAttachDBusVMState(virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); =20 int qemuHotplugRemoveDBusVMState(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 4fa2e4cf62..b29f3130b7 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -83,7 +83,7 @@ VIR_ENUM_IMPL(virMigrationJobPhase, =20 static int qemuMigrationJobStart(virDomainObjPtr vm, - qemuDomainAsyncJob job, + virDomainAsyncJob job, unsigned long apiFlags) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT; =20 @@ -103,7 +103,7 @@ qemuMigrationJobContinue(virDomainObjPtr obj) =20 static bool qemuMigrationJobIsActive(virDomainObjPtr vm, - qemuDomainAsyncJob job) + virDomainAsyncJob job) ATTRIBUTE_NONNULL(1); =20 static void @@ -148,7 +148,7 @@ qemuMigrationSrcRestoreDomainState(virQEMUDriverPtr dri= ver, virDomainObjPtr vm) /* we got here through some sort of failure; start the domain agai= n */ if (qemuProcessStartCPUs(driver, vm, VIR_DOMAIN_RUNNING_MIGRATION_CANCELED, - QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) { + VIR_ASYNC_JOB_MIGRATION_OUT) < 0) { /* Hm, we already know we are in error here. We don't want to * overwrite the previous error, though, so we just throw some= thing * to the logs and hope for the best */ @@ -420,7 +420,7 @@ qemuMigrationDstStartNBDServer(virQEMUDriverPtr driver, devicename =3D diskAlias; } =20 - if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_IN= ) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_IN)= < 0) goto cleanup; =20 if (port =3D=3D 0) { @@ -463,7 +463,7 @@ qemuMigrationDstStopNBDServer(virDomainObjPtr vm, if (!mig->nbd) return 0; =20 - if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_IN) < = 0) + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_IN) < 0) return -1; =20 if (qemuMonitorNBDServerStop(priv->mon) < 0) @@ -505,7 +505,7 @@ qemuMigrationNBDReportMirrorError(qemuBlockJobDataPtr j= ob, */ static int qemuMigrationSrcNBDStorageCopyReady(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { size_t i; size_t notReady =3D 0; @@ -559,7 +559,7 @@ qemuMigrationSrcNBDStorageCopyReady(virDomainObjPtr vm, */ static int qemuMigrationSrcNBDCopyCancelled(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, bool check) { size_t i; @@ -643,7 +643,7 @@ qemuMigrationSrcNBDCopyCancelOne(virDomainObjPtr vm, virDomainDiskDefPtr disk, qemuBlockJobDataPtr job, bool failNoJob, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; int rv; @@ -688,7 +688,7 @@ qemuMigrationSrcNBDCopyCancelOne(virDomainObjPtr vm, static int qemuMigrationSrcNBDCopyCancel(virDomainObjPtr vm, bool check, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, virConnectPtr dconn) { virErrorPtr err =3D NULL; @@ -836,7 +836,7 @@ qemuMigrationSrcNBDStorageCopyBlockdev(virDomainObjPtr = vm, false))) return -1; =20 - if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_OUT) <= 0) + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_OUT) < = 0) return -1; =20 mon_ret =3D qemuBlockStorageSourceAttachApply(qemuDomainGetMonitor(vm)= , data); @@ -877,7 +877,7 @@ qemuMigrationSrcNBDStorageCopyDriveMirror(virDomainObjP= tr vm, diskAlias); } =20 - if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_OUT) <= 0) + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_OUT) < = 0) return -1; =20 mon_ret =3D qemuMonitorDriveMirror(qemuDomainGetMonitor(vm), @@ -1032,14 +1032,14 @@ qemuMigrationSrcNBDStorageCopy(virQEMUDriverPtr dri= ver, } } =20 - while ((rv =3D qemuMigrationSrcNBDStorageCopyReady(vm, QEMU_ASYNC_JOB_= MIGRATION_OUT)) !=3D 1) { + while ((rv =3D qemuMigrationSrcNBDStorageCopyReady(vm, VIR_ASYNC_JOB_M= IGRATION_OUT)) !=3D 1) { if (rv < 0) return -1; =20 if (priv->job.abortJob) { - jobPriv->current->status =3D QEMU_DOMAIN_JOB_STATUS_CANCELED; + jobPriv->current->status =3D VIR_DOMAIN_JOB_STATUS_CANCELED; virReportError(VIR_ERR_OPERATION_ABORTED, _("%s: %s"), - qemuDomainAsyncJobTypeToString(priv->job.asyncJ= ob), + virDomainAsyncJobTypeToString(priv->job.asyncJo= b), _("canceled by client")); return -1; } @@ -1054,7 +1054,7 @@ qemuMigrationSrcNBDStorageCopy(virQEMUDriverPtr drive= r, return -1; } =20 - qemuMigrationSrcFetchMirrorStats(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + qemuMigrationSrcFetchMirrorStats(vm, VIR_ASYNC_JOB_MIGRATION_OUT, jobPriv->current); =20 /* Okay, all disks are ready. Modify migrate_flags */ @@ -1406,7 +1406,7 @@ qemuMigrationAnyPostcopyFailed(virQEMUDriverPtr drive= r, if (state =3D=3D VIR_DOMAIN_RUNNING) { if (qemuProcessStopCPUs(driver, vm, VIR_DOMAIN_PAUSED_POSTCOPY_FAILED, - QEMU_ASYNC_JOB_MIGRATION_IN) < 0) + VIR_ASYNC_JOB_MIGRATION_IN) < 0) VIR_WARN("Unable to pause guest CPUs for %s", vm->def->name); } else { virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, @@ -1438,31 +1438,31 @@ qemuMigrationUpdateJobType(qemuDomainJobInfoPtr job= Info) { switch ((qemuMonitorMigrationStatus) jobInfo->stats.mig.status) { case QEMU_MONITOR_MIGRATION_STATUS_POSTCOPY: - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_POSTCOPY; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_POSTCOPY; break; =20 case QEMU_MONITOR_MIGRATION_STATUS_COMPLETED: - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_QEMU_COMPLETED; break; =20 case QEMU_MONITOR_MIGRATION_STATUS_INACTIVE: - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_NONE; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_NONE; break; =20 case QEMU_MONITOR_MIGRATION_STATUS_ERROR: - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_FAILED; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_FAILED; break; =20 case QEMU_MONITOR_MIGRATION_STATUS_CANCELLED: - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_CANCELED; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_CANCELED; break; =20 case QEMU_MONITOR_MIGRATION_STATUS_PRE_SWITCHOVER: - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_PAUSED; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_PAUSED; break; =20 case QEMU_MONITOR_MIGRATION_STATUS_DEVICE: - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_MIGRATING; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_MIGRATING; break; =20 case QEMU_MONITOR_MIGRATION_STATUS_SETUP: @@ -1477,7 +1477,7 @@ qemuMigrationUpdateJobType(qemuDomainJobInfoPtr jobIn= fo) =20 int qemuMigrationAnyFetchStats(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, qemuDomainJobInfoPtr jobInfo, char **error) { @@ -1505,23 +1505,23 @@ qemuMigrationJobName(virDomainObjPtr vm) qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 switch (priv->job.asyncJob) { - case QEMU_ASYNC_JOB_MIGRATION_OUT: + case VIR_ASYNC_JOB_MIGRATION_OUT: return _("migration out job"); - case QEMU_ASYNC_JOB_SAVE: + case VIR_ASYNC_JOB_SAVE: return _("domain save job"); - case QEMU_ASYNC_JOB_DUMP: + case VIR_ASYNC_JOB_DUMP: return _("domain core dump job"); - case QEMU_ASYNC_JOB_NONE: + case VIR_ASYNC_JOB_NONE: return _("undefined"); - case QEMU_ASYNC_JOB_MIGRATION_IN: + case VIR_ASYNC_JOB_MIGRATION_IN: return _("migration in job"); - case QEMU_ASYNC_JOB_SNAPSHOT: + case VIR_ASYNC_JOB_SNAPSHOT: return _("snapshot job"); - case QEMU_ASYNC_JOB_START: + case VIR_ASYNC_JOB_START: return _("start job"); - case QEMU_ASYNC_JOB_BACKUP: + case VIR_ASYNC_JOB_BACKUP: return _("backup job"); - case QEMU_ASYNC_JOB_LAST: + case VIR_ASYNC_JOB_LAST: default: return _("job"); } @@ -1530,7 +1530,7 @@ qemuMigrationJobName(virDomainObjPtr vm) =20 static int qemuMigrationJobCheckStatus(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; @@ -1548,28 +1548,28 @@ qemuMigrationJobCheckStatus(virDomainObjPtr vm, qemuMigrationUpdateJobType(jobInfo); =20 switch (jobInfo->status) { - case QEMU_DOMAIN_JOB_STATUS_NONE: + case VIR_DOMAIN_JOB_STATUS_NONE: virReportError(VIR_ERR_OPERATION_FAILED, _("%s: %s"), qemuMigrationJobName(vm), _("is not active")); goto cleanup; =20 - case QEMU_DOMAIN_JOB_STATUS_FAILED: + case VIR_DOMAIN_JOB_STATUS_FAILED: virReportError(VIR_ERR_OPERATION_FAILED, _("%s: %s"), qemuMigrationJobName(vm), error ? error : _("unexpectedly failed")); goto cleanup; =20 - case QEMU_DOMAIN_JOB_STATUS_CANCELED: + case VIR_DOMAIN_JOB_STATUS_CANCELED: virReportError(VIR_ERR_OPERATION_ABORTED, _("%s: %s"), qemuMigrationJobName(vm), _("canceled by client")); goto cleanup; =20 - case QEMU_DOMAIN_JOB_STATUS_COMPLETED: - case QEMU_DOMAIN_JOB_STATUS_ACTIVE: - case QEMU_DOMAIN_JOB_STATUS_MIGRATING: - case QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED: - case QEMU_DOMAIN_JOB_STATUS_POSTCOPY: - case QEMU_DOMAIN_JOB_STATUS_PAUSED: + case VIR_DOMAIN_JOB_STATUS_COMPLETED: + case VIR_DOMAIN_JOB_STATUS_ACTIVE: + case VIR_DOMAIN_JOB_STATUS_MIGRATING: + case VIR_DOMAIN_JOB_STATUS_QEMU_COMPLETED: + case VIR_DOMAIN_JOB_STATUS_POSTCOPY: + case VIR_DOMAIN_JOB_STATUS_PAUSED: break; } =20 @@ -1598,7 +1598,7 @@ enum qemuMigrationCompletedFlags { */ static int qemuMigrationAnyCompleted(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, virConnectPtr dconn, unsigned int flags) { @@ -1634,7 +1634,7 @@ qemuMigrationAnyCompleted(virDomainObjPtr vm, * wait again for the real end of the migration. */ if (flags & QEMU_MIGRATION_COMPLETED_PRE_SWITCHOVER && - jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_PAUSED) { + jobInfo->status =3D=3D VIR_DOMAIN_JOB_STATUS_PAUSED) { VIR_DEBUG("Migration paused before switchover"); return 1; } @@ -1644,38 +1644,38 @@ qemuMigrationAnyCompleted(virDomainObjPtr vm, * will continue waiting until the migrate state changes to completed. */ if (flags & QEMU_MIGRATION_COMPLETED_POSTCOPY && - jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_POSTCOPY) { + jobInfo->status =3D=3D VIR_DOMAIN_JOB_STATUS_POSTCOPY) { VIR_DEBUG("Migration switched to post-copy"); return 1; } =20 - if (jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED) + if (jobInfo->status =3D=3D VIR_DOMAIN_JOB_STATUS_QEMU_COMPLETED) return 1; else return 0; =20 error: switch (jobInfo->status) { - case QEMU_DOMAIN_JOB_STATUS_MIGRATING: - case QEMU_DOMAIN_JOB_STATUS_POSTCOPY: - case QEMU_DOMAIN_JOB_STATUS_PAUSED: + case VIR_DOMAIN_JOB_STATUS_MIGRATING: + case VIR_DOMAIN_JOB_STATUS_POSTCOPY: + case VIR_DOMAIN_JOB_STATUS_PAUSED: /* The migration was aborted by us rather than QEMU itself. */ - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_FAILED; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_FAILED; return -2; =20 - case QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED: + case VIR_DOMAIN_JOB_STATUS_QEMU_COMPLETED: /* Something failed after QEMU already finished the migration. */ - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_FAILED; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_FAILED; return -1; =20 - case QEMU_DOMAIN_JOB_STATUS_FAILED: - case QEMU_DOMAIN_JOB_STATUS_CANCELED: + case VIR_DOMAIN_JOB_STATUS_FAILED: + case VIR_DOMAIN_JOB_STATUS_CANCELED: /* QEMU aborted the migration. */ return -1; =20 - case QEMU_DOMAIN_JOB_STATUS_ACTIVE: - case QEMU_DOMAIN_JOB_STATUS_COMPLETED: - case QEMU_DOMAIN_JOB_STATUS_NONE: + case VIR_DOMAIN_JOB_STATUS_ACTIVE: + case VIR_DOMAIN_JOB_STATUS_COMPLETED: + case VIR_DOMAIN_JOB_STATUS_NONE: /* Impossible. */ break; } @@ -1689,7 +1689,7 @@ qemuMigrationAnyCompleted(virDomainObjPtr vm, */ static int qemuMigrationSrcWaitForCompletion(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, virConnectPtr dconn, unsigned int flags) { @@ -1699,7 +1699,7 @@ qemuMigrationSrcWaitForCompletion(virDomainObjPtr vm, bool events =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVE= NT); int rv; =20 - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_MIGRATING; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_MIGRATING; =20 while ((rv =3D qemuMigrationAnyCompleted(vm, asyncJob, dconn, flags)) !=3D 1) { @@ -1709,7 +1709,7 @@ qemuMigrationSrcWaitForCompletion(virDomainObjPtr vm, if (events) { if (virDomainObjWait(vm) < 0) { if (virDomainObjIsActive(vm)) - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_FAILED; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_FAILED; return -2; } } else { @@ -1729,11 +1729,11 @@ qemuMigrationSrcWaitForCompletion(virDomainObjPtr v= m, qemuDomainJobInfoUpdateDowntime(jobInfo); g_clear_pointer(&jobPriv->completed, qemuDomainJobInfoFree); jobPriv->completed =3D qemuDomainJobInfoCopy(jobInfo); - jobPriv->completed->status =3D QEMU_DOMAIN_JOB_STATUS_COMPLETED; + jobPriv->completed->status =3D VIR_DOMAIN_JOB_STATUS_COMPLETED; =20 - if (asyncJob !=3D QEMU_ASYNC_JOB_MIGRATION_OUT && - jobInfo->status =3D=3D QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED) - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_COMPLETED; + if (asyncJob !=3D VIR_ASYNC_JOB_MIGRATION_OUT && + jobInfo->status =3D=3D VIR_DOMAIN_JOB_STATUS_QEMU_COMPLETED) + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_COMPLETED; =20 return 0; } @@ -1741,7 +1741,7 @@ qemuMigrationSrcWaitForCompletion(virDomainObjPtr vm, =20 static int qemuMigrationDstWaitForCompletion(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, bool postcopy) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -1849,7 +1849,7 @@ qemuMigrationSrcGraphicsRelocate(virDomainObjPtr vm, goto cleanup; } =20 - if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_OUT) = =3D=3D 0) { + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_OUT) = =3D=3D 0) { qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; =20 ret =3D qemuMonitorGraphicsRelocate(priv->mon, type, listenAddress, @@ -1942,7 +1942,7 @@ qemuMigrationDstGetURI(const char *migrateFrom, int qemuMigrationDstRun(virDomainObjPtr vm, const char *uri, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; int rv; @@ -1963,7 +1963,7 @@ qemuMigrationDstRun(virDomainObjPtr vm, if (qemuDomainObjExitMonitor(vm) < 0 || rv < 0) return -1; =20 - if (asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_IN) { + if (asyncJob =3D=3D VIR_ASYNC_JOB_MIGRATION_IN) { /* qemuMigrationDstWaitForCompletion is called from the Finish pha= se */ return 0; } @@ -1991,11 +1991,11 @@ qemuMigrationSrcCleanup(virDomainObjPtr vm, =20 VIR_DEBUG("vm=3D%s, conn=3D%p, asyncJob=3D%s, phase=3D%s", vm->def->name, conn, - qemuDomainAsyncJobTypeToString(priv->job.asyncJob), - qemuDomainAsyncJobPhaseToString(priv->job.asyncJob, + virDomainAsyncJobTypeToString(priv->job.asyncJob), + virDomainAsyncJobPhaseToString(priv->job.asyncJob, priv->job.phase)); =20 - if (!qemuMigrationJobIsActive(vm, QEMU_ASYNC_JOB_MIGRATION_OUT)) + if (!qemuMigrationJobIsActive(vm, VIR_ASYNC_JOB_MIGRATION_OUT)) return; =20 VIR_DEBUG("The connection which started outgoing migration of domain %= s" @@ -2005,17 +2005,17 @@ qemuMigrationSrcCleanup(virDomainObjPtr vm, switch ((virMigrationJobPhase) priv->job.phase) { case VIR_MIGRATION_PHASE_BEGIN3: /* just forget we were about to migrate */ - qemuDomainObjDiscardAsyncJob(vm, &priv->job); + virDomainObjDiscardAsyncJob(vm, &priv->job); break; =20 case VIR_MIGRATION_PHASE_PERFORM3_DONE: VIR_WARN("Migration of domain %s finished but we don't know if the" " domain was successfully started on destination or not", vm->def->name); - qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + qemuMigrationParamsReset(vm, VIR_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags); /* clear the job and let higher levels decide what to do */ - qemuDomainObjDiscardAsyncJob(vm, &priv->job); + virDomainObjDiscardAsyncJob(vm, &priv->job); break; =20 case VIR_MIGRATION_PHASE_PERFORM3: @@ -2061,11 +2061,11 @@ qemuMigrationSrcBeginPhase(virQEMUDriverPtr driver, cookieout, cookieoutlen, nmigrate_disks, migrate_disks, flags); =20 - /* Only set the phase if we are inside QEMU_ASYNC_JOB_MIGRATION_OUT. + /* Only set the phase if we are inside VIR_ASYNC_JOB_MIGRATION_OUT. * Otherwise we will start the async job later in the perform phase lo= sing * change protection. */ - if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_OUT) + if (priv->job.asyncJob =3D=3D VIR_ASYNC_JOB_MIGRATION_OUT) qemuMigrationJobSetPhase(vm, VIR_MIGRATION_PHASE_BEGIN3); =20 if (!qemuMigrationSrcIsAllowed(driver, vm, true, flags)) @@ -2206,17 +2206,17 @@ qemuMigrationSrcBegin(virConnectPtr conn, virQEMUDriverPtr driver =3D conn->privateData; qemuDomainObjPrivatePtr priv =3D vm->privateData; char *xml =3D NULL; - qemuDomainAsyncJob asyncJob; + virDomainAsyncJob asyncJob; =20 if ((flags & VIR_MIGRATE_CHANGE_PROTECTION)) { - if (qemuMigrationJobStart(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + if (qemuMigrationJobStart(vm, VIR_ASYNC_JOB_MIGRATION_OUT, flags) < 0) goto cleanup; - asyncJob =3D QEMU_ASYNC_JOB_MIGRATION_OUT; + asyncJob =3D VIR_ASYNC_JOB_MIGRATION_OUT; } else { - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; - asyncJob =3D QEMU_ASYNC_JOB_NONE; + asyncJob =3D VIR_ASYNC_JOB_NONE; } =20 qemuMigrationSrcStoreDomainState(vm); @@ -2259,7 +2259,7 @@ qemuMigrationSrcBegin(virConnectPtr conn, if (flags & VIR_MIGRATE_CHANGE_PROTECTION) qemuMigrationJobFinish(vm); else - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); goto cleanup; } =20 @@ -2276,15 +2276,15 @@ qemuMigrationDstPrepareCleanup(virQEMUDriverPtr dri= ver, VIR_DEBUG("driver=3D%p, vm=3D%s, job=3D%s, asyncJob=3D%s", driver, vm->def->name, - qemuDomainJobTypeToString(priv->job.active), - qemuDomainAsyncJobTypeToString(priv->job.asyncJob)); + virDomainJobTypeToString(priv->job.active), + virDomainAsyncJobTypeToString(priv->job.asyncJob)); =20 virPortAllocatorRelease(priv->migrationPort); priv->migrationPort =3D 0; =20 - if (!qemuMigrationJobIsActive(vm, QEMU_ASYNC_JOB_MIGRATION_IN)) + if (!qemuMigrationJobIsActive(vm, VIR_ASYNC_JOB_MIGRATION_IN)) return; - qemuDomainObjDiscardAsyncJob(vm, &priv->job); + virDomainObjDiscardAsyncJob(vm, &priv->job); } =20 static qemuProcessIncomingDefPtr @@ -2523,7 +2523,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, !!(flags & VIR_MIGRATE_NON_SHARED= _INC)) < 0) goto cleanup; =20 - if (qemuMigrationJobStart(vm, QEMU_ASYNC_JOB_MIGRATION_IN, flags) < 0) + if (qemuMigrationJobStart(vm, VIR_ASYNC_JOB_MIGRATION_IN, flags) < 0) goto cleanup; qemuMigrationJobSetPhase(vm, VIR_MIGRATION_PHASE_PREPARE); =20 @@ -2539,7 +2539,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, =20 startFlags =3D VIR_QEMU_PROCESS_START_AUTODESTROY; =20 - if (qemuProcessInit(driver, vm, mig->cpu, QEMU_ASYNC_JOB_MIGRATION_IN, + if (qemuProcessInit(driver, vm, mig->cpu, VIR_ASYNC_JOB_MIGRATION_IN, true, startFlags) < 0) goto stopjob; stopProcess =3D true; @@ -2557,7 +2557,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, if (qemuProcessPrepareHost(driver, vm, startFlags) < 0) goto stopjob; =20 - rv =3D qemuProcessLaunch(dconn, driver, vm, QEMU_ASYNC_JOB_MIGRATION_I= N, + rv =3D qemuProcessLaunch(dconn, driver, vm, VIR_ASYNC_JOB_MIGRATION_IN, incoming, NULL, VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_START, startFlags); @@ -2582,7 +2582,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, goto stopjob; } =20 - if (qemuMigrationParamsCheck(vm, QEMU_ASYNC_JOB_MIGRATION_IN, + if (qemuMigrationParamsCheck(vm, VIR_ASYNC_JOB_MIGRATION_IN, migParams, mig->caps->automatic) < 0) goto stopjob; =20 @@ -2590,7 +2590,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, * set the migration TLS parameters */ if (flags & VIR_MIGRATE_TLS) { if (qemuMigrationParamsEnableTLS(driver, vm, true, - QEMU_ASYNC_JOB_MIGRATION_IN, + VIR_ASYNC_JOB_MIGRATION_IN, &tlsAlias, NULL, migParams) < 0) goto stopjob; @@ -2599,7 +2599,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, goto stopjob; } =20 - if (qemuMigrationParamsApply(vm, QEMU_ASYNC_JOB_MIGRATION_IN, + if (qemuMigrationParamsApply(vm, VIR_ASYNC_JOB_MIGRATION_IN, migParams) < 0) goto stopjob; =20 @@ -2637,10 +2637,10 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, =20 if (incoming->deferredURI && qemuMigrationDstRun(vm, incoming->deferredURI, - QEMU_ASYNC_JOB_MIGRATION_IN) < 0) + VIR_ASYNC_JOB_MIGRATION_IN) < 0) goto stopjob; =20 - if (qemuProcessFinishStartup(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, + if (qemuProcessFinishStartup(driver, vm, VIR_ASYNC_JOB_MIGRATION_IN, false, VIR_DOMAIN_PAUSED_MIGRATION) < 0) goto stopjob; =20 @@ -2706,7 +2706,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, return ret; =20 stopjob: - qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_MIGRATION_IN, + qemuMigrationParamsReset(vm, VIR_ASYNC_JOB_MIGRATION_IN, jobPriv->migParams, priv->job.apiFlags); =20 if (stopProcess) { @@ -2715,7 +2715,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, stopFlags |=3D VIR_QEMU_PROCESS_STOP_NO_RELABEL; virDomainAuditStart(vm, "migrated", false); qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FAILED, - QEMU_ASYNC_JOB_MIGRATION_IN, stopFlags); + VIR_ASYNC_JOB_MIGRATION_IN, stopFlags); } =20 qemuMigrationJobFinish(vm); @@ -3010,7 +3010,7 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, */ if (virDomainObjGetState(vm, &reason) =3D=3D VIR_DOMAIN_PAUSED && reason =3D=3D VIR_DOMAIN_PAUSED_POSTCOPY && - qemuMigrationAnyFetchStats(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + qemuMigrationAnyFetchStats(vm, VIR_ASYNC_JOB_MIGRATION_OUT, jobInfo, NULL) < 0) VIR_WARN("Could not refresh migration statistics"); =20 @@ -3033,7 +3033,7 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, qemuMigrationSrcWaitForSpice(vm); =20 qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_MIGRATED, - QEMU_ASYNC_JOB_MIGRATION_OUT, + VIR_ASYNC_JOB_MIGRATION_OUT, VIR_QEMU_PROCESS_STOP_MIGRATED); virDomainAuditStop(vm, "migrated"); =20 @@ -3049,7 +3049,7 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, virErrorPreserveLast(&orig_err); =20 /* cancel any outstanding NBD jobs */ - qemuMigrationSrcNBDCopyCancel(vm, false, QEMU_ASYNC_JOB_MIGRATION_= OUT, NULL); + qemuMigrationSrcNBDCopyCancel(vm, false, VIR_ASYNC_JOB_MIGRATION_O= UT, NULL); =20 virErrorRestore(&orig_err); =20 @@ -3059,7 +3059,7 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, else qemuMigrationSrcRestoreDomainState(driver, vm); =20 - qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + qemuMigrationParamsReset(vm, VIR_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags); =20 if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) @@ -3083,7 +3083,7 @@ qemuMigrationSrcConfirm(virQEMUDriverPtr driver, =20 cfg =3D virQEMUDriverGetConfig(driver); =20 - if (!qemuMigrationJobIsActive(vm, QEMU_ASYNC_JOB_MIGRATION_OUT)) + if (!qemuMigrationJobIsActive(vm, VIR_ASYNC_JOB_MIGRATION_OUT)) goto cleanup; =20 if (cancelled) @@ -3387,7 +3387,7 @@ qemuMigrationSrcConnect(virQEMUDriverPtr driver, static int qemuMigrationSrcContinue(virDomainObjPtr vm, qemuMonitorMigrationStatus status, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret; @@ -3413,10 +3413,10 @@ qemuMigrationSetDBusVMState(virQEMUDriverPtr driver, if (virStringListLength((const char **)priv->dbusVMStateIds) > 0) { int rv; =20 - if (qemuHotplugAttachDBusVMState(driver, vm, QEMU_ASYNC_JOB_NONE) = < 0) + if (qemuHotplugAttachDBusVMState(driver, vm, VIR_ASYNC_JOB_NONE) <= 0) return -1; =20 - if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_NONE) < 0) return -1; =20 rv =3D qemuMonitorSetDBusVMStateIdList(priv->mon, @@ -3427,7 +3427,7 @@ qemuMigrationSetDBusVMState(virQEMUDriverPtr driver, =20 return rv; } else { - if (qemuHotplugRemoveDBusVMState(vm, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuHotplugRemoveDBusVMState(vm, VIR_ASYNC_JOB_NONE) < 0) return -1; } =20 @@ -3530,7 +3530,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, if (qemuMigrationSrcGraphicsRelocate(vm, mig, graphicsuri) < 0) VIR_WARN("unable to provide data for graphics client relocation"); =20 - if (qemuMigrationParamsCheck(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + if (qemuMigrationParamsCheck(vm, VIR_ASYNC_JOB_MIGRATION_OUT, migParams, mig->caps->automatic) < 0) goto error; =20 @@ -3544,7 +3544,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, hostname =3D spec->dest.host.name; =20 if (qemuMigrationParamsEnableTLS(driver, vm, false, - QEMU_ASYNC_JOB_MIGRATION_OUT, + VIR_ASYNC_JOB_MIGRATION_OUT, &tlsAlias, hostname, migParams) < 0) goto error; @@ -3558,7 +3558,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, migrate_speed * 1024 * 1024) < 0) goto error; =20 - if (qemuMigrationParamsApply(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + if (qemuMigrationParamsApply(vm, VIR_ASYNC_JOB_MIGRATION_OUT, migParams) < 0) goto error; =20 @@ -3601,20 +3601,20 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, if (!(flags & VIR_MIGRATE_LIVE) && virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_RUNNING) { if (qemuProcessStopCPUs(driver, vm, VIR_DOMAIN_PAUSED_MIGRATION, - QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) + VIR_ASYNC_JOB_MIGRATION_OUT) < 0) goto error; } =20 - if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_OUT) <= 0) + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_OUT) < = 0) goto error; =20 if (priv->job.abortJob) { /* explicitly do this *after* we entered the monitor, * as this is a critical section so we are guaranteed * priv->job.abortJob will not change */ - jobPriv->current->status =3D QEMU_DOMAIN_JOB_STATUS_CANCELED; + jobPriv->current->status =3D VIR_DOMAIN_JOB_STATUS_CANCELED; virReportError(VIR_ERR_OPERATION_ABORTED, _("%s: %s"), - qemuDomainAsyncJobTypeToString(priv->job.asyncJob), + virDomainAsyncJobTypeToString(priv->job.asyncJob), _("canceled by client")); goto exit_monitor; } @@ -3685,7 +3685,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, if (flags & VIR_MIGRATE_POSTCOPY) waitFlags |=3D QEMU_MIGRATION_COMPLETED_POSTCOPY; =20 - rc =3D qemuMigrationSrcWaitForCompletion(vm, QEMU_ASYNC_JOB_MIGRATION_= OUT, + rc =3D qemuMigrationSrcWaitForCompletion(vm, VIR_ASYNC_JOB_MIGRATION_O= UT, dconn, waitFlags); if (rc =3D=3D -2) { goto error; @@ -3708,7 +3708,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, =20 if (mig->nbd && qemuMigrationSrcNBDCopyCancel(vm, true, - QEMU_ASYNC_JOB_MIGRATION_OUT, + VIR_ASYNC_JOB_MIGRATION_OUT, dconn) < 0) goto error; =20 @@ -3716,14 +3716,14 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, * resume it now once we finished all block jobs and wait for the real * end of the migration. */ - if (jobPriv->current->status =3D=3D QEMU_DOMAIN_JOB_STATUS_PAUSED) { + if (jobPriv->current->status =3D=3D VIR_DOMAIN_JOB_STATUS_PAUSED) { if (qemuMigrationSrcContinue(vm, QEMU_MONITOR_MIGRATION_STATUS_PRE= _SWITCHOVER, - QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) + VIR_ASYNC_JOB_MIGRATION_OUT) < 0) goto error; =20 waitFlags ^=3D QEMU_MIGRATION_COMPLETED_PRE_SWITCHOVER; =20 - rc =3D qemuMigrationSrcWaitForCompletion(vm, QEMU_ASYNC_JOB_MIGRAT= ION_OUT, + rc =3D qemuMigrationSrcWaitForCompletion(vm, VIR_ASYNC_JOB_MIGRATI= ON_OUT, dconn, waitFlags); if (rc =3D=3D -2) { goto error; @@ -3774,8 +3774,8 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, =20 if (virDomainObjIsActive(vm)) { if (cancel && - jobPriv->current->status !=3D QEMU_DOMAIN_JOB_STATUS_QEMU_COMP= LETED && - qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_MIGRATION_OU= T) =3D=3D 0) { + jobPriv->current->status !=3D VIR_DOMAIN_JOB_STATUS_QEMU_COMPL= ETED && + qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_OUT= ) =3D=3D 0) { qemuMonitorMigrateCancel(priv->mon); ignore_value(qemuDomainObjExitMonitor(vm)); } @@ -3783,11 +3783,11 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, /* cancel any outstanding NBD jobs */ if (mig && mig->nbd) qemuMigrationSrcNBDCopyCancel(vm, false, - QEMU_ASYNC_JOB_MIGRATION_OUT, + VIR_ASYNC_JOB_MIGRATION_OUT, dconn); =20 - if (jobPriv->current->status !=3D QEMU_DOMAIN_JOB_STATUS_CANCELED) - jobPriv->current->status =3D QEMU_DOMAIN_JOB_STATUS_FAILED; + if (jobPriv->current->status !=3D VIR_DOMAIN_JOB_STATUS_CANCELED) + jobPriv->current->status =3D VIR_DOMAIN_JOB_STATUS_FAILED; } =20 if (iothread) @@ -4634,7 +4634,7 @@ qemuMigrationSrcPerformJob(virQEMUDriverPtr driver, qemuDomainObjPrivatePtr priv =3D vm->privateData; qemuDomainJobPrivatePtr jobPriv =3D priv->job.privateData; =20 - if (qemuMigrationJobStart(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, flags) < 0) + if (qemuMigrationJobStart(vm, VIR_ASYNC_JOB_MIGRATION_OUT, flags) < 0) goto cleanup; =20 if (!(flags & VIR_MIGRATE_OFFLINE) && virDomainObjCheckActive(vm) < 0) @@ -4672,7 +4672,7 @@ qemuMigrationSrcPerformJob(virQEMUDriverPtr driver, */ if (!v3proto) { qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_MIGRATED, - QEMU_ASYNC_JOB_MIGRATION_OUT, + VIR_ASYNC_JOB_MIGRATION_OUT, VIR_QEMU_PROCESS_STOP_MIGRATED); virDomainAuditStop(vm, "migrated"); event =3D virDomainEventLifecycleNewFromObj(vm, @@ -4688,7 +4688,7 @@ qemuMigrationSrcPerformJob(virQEMUDriverPtr driver, * here */ if (!v3proto && ret < 0) - qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + qemuMigrationParamsReset(vm, VIR_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags); =20 qemuMigrationSrcRestoreDomainState(driver, vm); @@ -4735,10 +4735,10 @@ qemuMigrationSrcPerformPhase(virQEMUDriverPtr drive= r, =20 /* If we didn't start the job in the begin phase, start it now. */ if (!(flags & VIR_MIGRATE_CHANGE_PROTECTION)) { - if (qemuMigrationJobStart(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + if (qemuMigrationJobStart(vm, VIR_ASYNC_JOB_MIGRATION_OUT, flags) < 0) return ret; - } else if (!qemuMigrationJobIsActive(vm, QEMU_ASYNC_JOB_MIGRATION_OUT)= ) { + } else if (!qemuMigrationJobIsActive(vm, VIR_ASYNC_JOB_MIGRATION_OUT))= { return ret; } =20 @@ -4764,7 +4764,7 @@ qemuMigrationSrcPerformPhase(virQEMUDriverPtr driver, =20 endjob: if (ret < 0) { - qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + qemuMigrationParamsReset(vm, VIR_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags); qemuMigrationJobFinish(vm); } else { @@ -4981,7 +4981,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, port =3D priv->migrationPort; priv->migrationPort =3D 0; =20 - if (!qemuMigrationJobIsActive(vm, QEMU_ASYNC_JOB_MIGRATION_IN)) { + if (!qemuMigrationJobIsActive(vm, VIR_ASYNC_JOB_MIGRATION_IN)) { qemuMigrationDstErrorReport(driver, vm->def->name); goto cleanup; } @@ -5017,7 +5017,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, /* Check for a possible error on the monitor in case Finish was ca= lled * earlier than monitor EOF handler got a chance to process the er= ror */ - qemuDomainCheckMonitor(vm, QEMU_ASYNC_JOB_MIGRATION_IN); + qemuDomainCheckMonitor(vm, VIR_ASYNC_JOB_MIGRATION_IN); goto endjob; } =20 @@ -5038,7 +5038,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, goto endjob; =20 if (qemuRefreshVirtioChannelState(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_IN) < 0) + VIR_ASYNC_JOB_MIGRATION_IN) < 0) goto endjob; =20 if (qemuConnectAgent(driver, vm) < 0) @@ -5066,7 +5066,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, /* We need to wait for QEMU to process all data sent by the source * before starting guest CPUs. */ - if (qemuMigrationDstWaitForCompletion(vm, QEMU_ASYNC_JOB_MIGRATION_IN, + if (qemuMigrationDstWaitForCompletion(vm, VIR_ASYNC_JOB_MIGRATION_IN, !!(flags & VIR_MIGRATE_POSTCOPY)= ) < 0) { /* There's not much we can do for v2 protocol since the * original domain on the source host is already gone. @@ -5077,14 +5077,14 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, =20 /* Now that the state data was transferred we can refresh the actual s= tate * of the devices */ - if (qemuProcessRefreshState(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN) <= 0) { + if (qemuProcessRefreshState(driver, vm, VIR_ASYNC_JOB_MIGRATION_IN) < = 0) { /* Similarly to the case above v2 protocol will not be able to rec= over * from this. Let's ignore this and perhaps stuff will not break. = */ if (v3proto) goto endjob; } =20 - if (jobPriv->current->status =3D=3D QEMU_DOMAIN_JOB_STATUS_POSTCOPY) + if (jobPriv->current->status =3D=3D VIR_DOMAIN_JOB_STATUS_POSTCOPY) inPostCopy =3D true; =20 if (!(flags & VIR_MIGRATE_PAUSED)) { @@ -5095,7 +5095,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, if (qemuProcessStartCPUs(driver, vm, inPostCopy ? VIR_DOMAIN_RUNNING_POSTCOPY : VIR_DOMAIN_RUNNING_MIGRATED, - QEMU_ASYNC_JOB_MIGRATION_IN) < 0) { + VIR_ASYNC_JOB_MIGRATION_IN) < 0) { if (virGetLastErrorCode() =3D=3D VIR_ERR_OK) virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("resume operation failed")); @@ -5134,7 +5134,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, } =20 if (inPostCopy) { - if (qemuMigrationDstWaitForCompletion(vm, QEMU_ASYNC_JOB_MIGRATION= _IN, + if (qemuMigrationDstWaitForCompletion(vm, VIR_ASYNC_JOB_MIGRATION_= IN, false) < 0) { goto endjob; } @@ -5183,7 +5183,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, virDomainObjIsActive(vm)) { if (doKill) { qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FAILED, - QEMU_ASYNC_JOB_MIGRATION_IN, + VIR_ASYNC_JOB_MIGRATION_IN, VIR_QEMU_PROCESS_STOP_MIGRATED); virDomainAuditStop(vm, "failed"); event =3D virDomainEventLifecycleNewFromObj(vm, @@ -5198,8 +5198,8 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, if (dom) { if (jobInfo) { jobPriv->completed =3D g_steal_pointer(&jobInfo); - jobPriv->completed->status =3D QEMU_DOMAIN_JOB_STATUS_COMPLETE= D; - jobPriv->completed->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_M= IGRATION; + jobPriv->completed->status =3D VIR_DOMAIN_JOB_STATUS_COMPLETED; + jobPriv->completed->statsType =3D VIR_DOMAIN_JOB_STATS_TYPE_MI= GRATION; } =20 if (qemuMigrationBakeCookie(mig, driver, vm, @@ -5215,7 +5215,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, g_clear_pointer(&jobPriv->completed, qemuDomainJobInfoFree); } =20 - qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_MIGRATION_IN, + qemuMigrationParamsReset(vm, VIR_ASYNC_JOB_MIGRATION_IN, jobPriv->migParams, priv->job.apiFlags); =20 qemuMigrationJobFinish(vm); @@ -5245,7 +5245,7 @@ int qemuMigrationSrcToFile(virQEMUDriverPtr driver, virDomainObjPtr vm, int fd, virCommandPtr compressor, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; bool bwParam =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_PA= RAM_BANDWIDTH); @@ -5426,7 +5426,7 @@ qemuMigrationSrcCancel(virDomainObjPtr vm) =20 if (storage && qemuMigrationSrcNBDCopyCancel(vm, false, - QEMU_ASYNC_JOB_NONE, NULL) < 0) + VIR_ASYNC_JOB_NONE, NULL) < 0) return -1; =20 return 0; @@ -5435,7 +5435,7 @@ qemuMigrationSrcCancel(virDomainObjPtr vm) =20 static int qemuMigrationJobStart(virDomainObjPtr vm, - qemuDomainAsyncJob job, + virDomainAsyncJob job, unsigned long apiFlags) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -5443,22 +5443,22 @@ qemuMigrationJobStart(virDomainObjPtr vm, virDomainJobOperation op; unsigned long long mask; =20 - if (job =3D=3D QEMU_ASYNC_JOB_MIGRATION_IN) { + if (job =3D=3D VIR_ASYNC_JOB_MIGRATION_IN) { op =3D VIR_DOMAIN_JOB_OPERATION_MIGRATION_IN; - mask =3D QEMU_JOB_NONE; + mask =3D VIR_JOB_NONE; } else { op =3D VIR_DOMAIN_JOB_OPERATION_MIGRATION_OUT; - mask =3D QEMU_JOB_DEFAULT_MASK | - JOB_MASK(QEMU_JOB_SUSPEND) | - JOB_MASK(QEMU_JOB_MIGRATION_OP); + mask =3D VIR_JOB_DEFAULT_MASK | + JOB_MASK(VIR_JOB_SUSPEND) | + JOB_MASK(VIR_JOB_MIGRATION_OP); } =20 - if (qemuDomainObjBeginAsyncJob(vm, &priv->job, job, op, apiFlags) < 0) + if (virDomainObjBeginAsyncJob(vm, &priv->job, job, op, apiFlags) < 0) return -1; =20 - jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION; + jobPriv->current->statsType =3D VIR_DOMAIN_JOB_STATS_TYPE_MIGRATION; =20 - qemuDomainObjSetAsyncJobMask(&priv->job, mask); + virDomainObjSetAsyncJobMask(&priv->job, mask); return 0; } =20 @@ -5475,7 +5475,7 @@ qemuMigrationJobSetPhase(virDomainObjPtr vm, return; } =20 - qemuDomainObjSetJobPhase(vm, &priv->job, phase); + virDomainObjSetJobPhase(vm, &priv->job, phase); } =20 static void @@ -5489,19 +5489,19 @@ static void qemuMigrationJobContinue(virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - qemuDomainObjReleaseAsyncJob(&priv->job); + virDomainObjReleaseAsyncJob(&priv->job); } =20 static bool qemuMigrationJobIsActive(virDomainObjPtr vm, - qemuDomainAsyncJob job) + virDomainAsyncJob job) { qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 if (priv->job.asyncJob !=3D job) { const char *msg; =20 - if (job =3D=3D QEMU_ASYNC_JOB_MIGRATION_IN) + if (job =3D=3D VIR_ASYNC_JOB_MIGRATION_IN) msg =3D _("domain '%s' is not processing incoming migration"); else msg =3D _("domain '%s' is not being migrated"); @@ -5516,7 +5516,7 @@ static void qemuMigrationJobFinish(virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - qemuDomainObjEndAsyncJob(vm, &priv->job); + virDomainObjEndAsyncJob(vm, &priv->job); } =20 =20 @@ -5574,7 +5574,7 @@ qemuMigrationDstErrorReport(virQEMUDriverPtr driver, =20 int qemuMigrationSrcFetchMirrorStats(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, qemuDomainJobInfoPtr jobInfo) { size_t i; diff --git a/src/qemu/qemu_migration.h b/src/qemu/qemu_migration.h index 8f5e2d0f81..da087671cc 100644 --- a/src/qemu/qemu_migration.h +++ b/src/qemu/qemu_migration.h @@ -191,7 +191,7 @@ qemuMigrationSrcToFile(virQEMUDriverPtr driver, virDomainObjPtr vm, int fd, virCommandPtr compressor, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT; =20 int @@ -199,7 +199,7 @@ qemuMigrationSrcCancel(virDomainObjPtr vm); =20 int qemuMigrationAnyFetchStats(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, qemuDomainJobInfoPtr jobInfo, char **error); =20 @@ -226,7 +226,7 @@ qemuMigrationDstGetURI(const char *migrateFrom, int qemuMigrationDstRun(virDomainObjPtr vm, const char *uri, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); =20 void qemuMigrationAnyPostcopyFailed(virQEMUDriverPtr driver, @@ -234,5 +234,5 @@ qemuMigrationAnyPostcopyFailed(virQEMUDriverPtr driver, =20 int qemuMigrationSrcFetchMirrorStats(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, qemuDomainJobInfoPtr jobInfo); diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_coo= kie.c index 68f4735bc7..ea43060c4d 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -1051,7 +1051,7 @@ qemuMigrationCookieStatisticsXMLParse(xmlXPathContext= Ptr ctxt) jobInfo =3D g_new0(qemuDomainJobInfo, 1); =20 stats =3D &jobInfo->stats.mig; - jobInfo->status =3D QEMU_DOMAIN_JOB_STATUS_COMPLETED; + jobInfo->status =3D VIR_DOMAIN_JOB_STATUS_COMPLETED; =20 virXPathULongLong("string(./started[1])", ctxt, &jobInfo->started); virXPathULongLong("string(./stopped[1])", ctxt, &jobInfo->stopped); diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index 12f94098c5..c8f835f8d8 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -810,7 +810,7 @@ qemuMigrationParamsApply(virDomainObjPtr vm, if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; =20 - if (asyncJob =3D=3D QEMU_ASYNC_JOB_NONE) { + if (asyncJob =3D=3D VIR_ASYNC_JOB_NONE) { if (!virBitmapIsAllClear(migParams->caps)) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Migration capabilities can only be set by " @@ -1118,7 +1118,7 @@ qemuMigrationParamsCheck(virDomainObjPtr vm, qemuMigrationParty party; size_t i; =20 - if (asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_OUT) + if (asyncJob =3D=3D VIR_ASYNC_JOB_MIGRATION_OUT) party =3D QEMU_MIGRATION_SOURCE; else party =3D QEMU_MIGRATION_DESTINATION; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index b394bcbd3f..ca03486bc4 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -422,7 +422,7 @@ qemuProcessHandleReset(qemuMonitorPtr mon G_GNUC_UNUSED, if (vm->def->onReboot =3D=3D VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY || vm->def->onReboot =3D=3D VIR_DOMAIN_LIFECYCLE_ACTION_PRESERVE) { =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -432,11 +432,11 @@ qemuProcessHandleReset(qemuMonitorPtr mon G_GNUC_UNUS= ED, } =20 qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_DESTROYED, - QEMU_ASYNC_JOB_NONE, 0); + VIR_ASYNC_JOB_NONE, 0); virDomainAuditStop(vm, "destroyed"); qemuDomainRemoveInactive(driver, vm); endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); } =20 ret =3D 0; @@ -467,7 +467,7 @@ qemuProcessFakeReboot(void *opaque) =20 VIR_DEBUG("vm=3D%p", vm); virObjectLock(vm); - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -490,7 +490,7 @@ qemuProcessFakeReboot(void *opaque) =20 if (qemuProcessStartCPUs(driver, vm, reason, - QEMU_ASYNC_JOB_NONE) < 0) { + VIR_ASYNC_JOB_NONE) < 0) { if (virGetLastErrorCode() =3D=3D VIR_ERR_OK) virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("resume operation failed")); @@ -505,7 +505,7 @@ qemuProcessFakeReboot(void *opaque) ret =3D 0; =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: priv->pausedShutdown =3D false; @@ -669,8 +669,8 @@ qemuProcessHandleStop(qemuMonitorPtr mon G_GNUC_UNUSED, * reveal it in domain state nor sent events */ if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_RUNNING && !priv->pausedShutdown) { - if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_OUT) { - if (jobPriv->current->status =3D=3D QEMU_DOMAIN_JOB_STATUS_POS= TCOPY) + if (priv->job.asyncJob =3D=3D VIR_ASYNC_JOB_MIGRATION_OUT) { + if (jobPriv->current->status =3D=3D VIR_DOMAIN_JOB_STATUS_POST= COPY) reason =3D VIR_DOMAIN_PAUSED_POSTCOPY; else reason =3D VIR_DOMAIN_PAUSED_MIGRATION; @@ -1630,7 +1630,7 @@ qemuProcessHandleSpiceMigrated(qemuMonitorPtr mon G_G= NUC_UNUSED, =20 priv =3D vm->privateData; jobPriv =3D priv->job.privateData; - if (priv->job.asyncJob !=3D QEMU_ASYNC_JOB_MIGRATION_OUT) { + if (priv->job.asyncJob !=3D VIR_ASYNC_JOB_MIGRATION_OUT) { VIR_DEBUG("got SPICE_MIGRATE_COMPLETED event without a migration j= ob"); goto cleanup; } @@ -1665,7 +1665,7 @@ qemuProcessHandleMigrationStatus(qemuMonitorPtr mon G= _GNUC_UNUSED, =20 priv =3D vm->privateData; jobPriv =3D priv->job.privateData; - if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_NONE) { + if (priv->job.asyncJob =3D=3D VIR_ASYNC_JOB_NONE) { VIR_DEBUG("got MIGRATION event without a migration job"); goto cleanup; } @@ -1674,7 +1674,7 @@ qemuProcessHandleMigrationStatus(qemuMonitorPtr mon G= _GNUC_UNUSED, virDomainObjBroadcast(vm); =20 if (status =3D=3D QEMU_MONITOR_MIGRATION_STATUS_POSTCOPY && - priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_OUT && + priv->job.asyncJob =3D=3D VIR_ASYNC_JOB_MIGRATION_OUT && virDomainObjGetState(vm, &reason) =3D=3D VIR_DOMAIN_PAUSED && reason =3D=3D VIR_DOMAIN_PAUSED_MIGRATION) { VIR_DEBUG("Correcting paused state reason for domain %s to %s", @@ -1714,7 +1714,7 @@ qemuProcessHandleMigrationPass(qemuMonitorPtr mon G_G= NUC_UNUSED, vm, vm->def->name, pass); =20 priv =3D vm->privateData; - if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_NONE) { + if (priv->job.asyncJob =3D=3D VIR_ASYNC_JOB_NONE) { VIR_DEBUG("got MIGRATION_PASS event without a migration job"); goto cleanup; } @@ -1746,7 +1746,7 @@ qemuProcessHandleDumpCompleted(qemuMonitorPtr mon G_G= NUC_UNUSED, =20 priv =3D vm->privateData; jobPriv =3D priv->job.privateData; - if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_NONE) { + if (priv->job.asyncJob =3D=3D VIR_ASYNC_JOB_NONE) { VIR_DEBUG("got DUMP_COMPLETED event without a dump_completed job"); goto cleanup; } @@ -1949,7 +1949,7 @@ qemuProcessMonitorLogFree(void *opaque) =20 static int qemuProcessInitMonitor(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { int ret; =20 @@ -2249,7 +2249,7 @@ qemuProcessRefreshChannelVirtioState(virQEMUDriverPtr= driver, int qemuRefreshVirtioChannelState(virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; virHashTablePtr info =3D NULL; @@ -2586,7 +2586,7 @@ qemuProcessInitCpuAffinity(virDomainObjPtr vm G_GNUC_= UNUSED) /* set link states to down on interfaces at qemu start */ static int qemuProcessSetLinkStates(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; virDomainDefPtr def =3D vm->def; @@ -3207,7 +3207,7 @@ qemuProcessPrepareMonitorChr(virDomainChrSourceDefPtr= monConfig, int qemuProcessStartCPUs(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainRunningReason reason, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { int ret =3D -1; qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -3259,7 +3259,7 @@ qemuProcessStartCPUs(virQEMUDriverPtr driver, virDoma= inObjPtr vm, int qemuProcessStopCPUs(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainPausedReason reason, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { int ret =3D -1; qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -3419,7 +3419,7 @@ qemuProcessUpdateState(virDomainObjPtr vm) static int qemuProcessRecoverMigrationIn(virQEMUDriverPtr driver, virDomainObjPtr vm, - const qemuDomainJobObj *job, + const virDomainJobObj *job, virDomainState state, int reason) { @@ -3454,7 +3454,7 @@ qemuProcessRecoverMigrationIn(virQEMUDriverPtr driver, vm->def->name); if (qemuProcessStartCPUs(driver, vm, VIR_DOMAIN_RUNNING_MIGRATED, - QEMU_ASYNC_JOB_NONE) < 0) { + VIR_ASYNC_JOB_NONE) < 0) { VIR_WARN("Could not resume domain %s", vm->def->name); } break; @@ -3472,7 +3472,7 @@ qemuProcessRecoverMigrationIn(virQEMUDriverPtr driver, break; } =20 - qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_NONE, + qemuMigrationParamsReset(vm, VIR_ASYNC_JOB_NONE, jobPriv->migParams, job->apiFlags); return 0; } @@ -3480,7 +3480,7 @@ qemuProcessRecoverMigrationIn(virQEMUDriverPtr driver, static int qemuProcessRecoverMigrationOut(virQEMUDriverPtr driver, virDomainObjPtr vm, - const qemuDomainJobObj *job, + const virDomainJobObj *job, virDomainState state, int reason, unsigned int *stopFlags) @@ -3562,13 +3562,13 @@ qemuProcessRecoverMigrationOut(virQEMUDriverPtr dri= ver, reason =3D=3D VIR_DOMAIN_PAUSED_UNKNOWN)) { if (qemuProcessStartCPUs(driver, vm, VIR_DOMAIN_RUNNING_MIGRATION_CANCELED, - QEMU_ASYNC_JOB_NONE) < 0) { + VIR_ASYNC_JOB_NONE) < 0) { VIR_WARN("Could not resume domain %s", vm->def->name); } } } =20 - qemuMigrationParamsReset(vm, QEMU_ASYNC_JOB_NONE, + qemuMigrationParamsReset(vm, VIR_ASYNC_JOB_NONE, jobPriv->migParams, job->apiFlags); return 0; } @@ -3576,7 +3576,7 @@ qemuProcessRecoverMigrationOut(virQEMUDriverPtr drive= r, static int qemuProcessRecoverJob(virQEMUDriverPtr driver, virDomainObjPtr vm, - const qemuDomainJobObj *job, + const virDomainJobObj *job, unsigned int *stopFlags) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -3588,21 +3588,21 @@ qemuProcessRecoverJob(virQEMUDriverPtr driver, state =3D virDomainObjGetState(vm, &reason); =20 switch (job->asyncJob) { - case QEMU_ASYNC_JOB_MIGRATION_OUT: + case VIR_ASYNC_JOB_MIGRATION_OUT: if (qemuProcessRecoverMigrationOut(driver, vm, job, state, reason, stopFlags) < 0) return -1; break; =20 - case QEMU_ASYNC_JOB_MIGRATION_IN: + case VIR_ASYNC_JOB_MIGRATION_IN: if (qemuProcessRecoverMigrationIn(driver, vm, job, state, reason) < 0) return -1; break; =20 - case QEMU_ASYNC_JOB_SAVE: - case QEMU_ASYNC_JOB_DUMP: - case QEMU_ASYNC_JOB_SNAPSHOT: + case VIR_ASYNC_JOB_SAVE: + case VIR_ASYNC_JOB_DUMP: + case VIR_ASYNC_JOB_SNAPSHOT: qemuDomainObjEnterMonitor(vm); ignore_value(qemuMonitorMigrateCancel(priv->mon)); if (qemuDomainObjExitMonitor(vm) < 0) @@ -3612,53 +3612,53 @@ qemuProcessRecoverJob(virQEMUDriverPtr driver, * recovering an async job, this function is run at startup * and must resume things using sync monitor connections. */ if (state =3D=3D VIR_DOMAIN_PAUSED && - ((job->asyncJob =3D=3D QEMU_ASYNC_JOB_DUMP && + ((job->asyncJob =3D=3D VIR_ASYNC_JOB_DUMP && reason =3D=3D VIR_DOMAIN_PAUSED_DUMP) || - (job->asyncJob =3D=3D QEMU_ASYNC_JOB_SAVE && + (job->asyncJob =3D=3D VIR_ASYNC_JOB_SAVE && reason =3D=3D VIR_DOMAIN_PAUSED_SAVE) || - (job->asyncJob =3D=3D QEMU_ASYNC_JOB_SNAPSHOT && + (job->asyncJob =3D=3D VIR_ASYNC_JOB_SNAPSHOT && (reason =3D=3D VIR_DOMAIN_PAUSED_SNAPSHOT || reason =3D=3D VIR_DOMAIN_PAUSED_MIGRATION)) || reason =3D=3D VIR_DOMAIN_PAUSED_UNKNOWN)) { if (qemuProcessStartCPUs(driver, vm, VIR_DOMAIN_RUNNING_SAVE_CANCELED, - QEMU_ASYNC_JOB_NONE) < 0) { + VIR_ASYNC_JOB_NONE) < 0) { VIR_WARN("Could not resume domain '%s' after migration to= file", vm->def->name); } } break; =20 - case QEMU_ASYNC_JOB_START: + case VIR_ASYNC_JOB_START: /* Already handled in VIR_DOMAIN_PAUSED_STARTING_UP check. */ break; =20 - case QEMU_ASYNC_JOB_BACKUP: + case VIR_ASYNC_JOB_BACKUP: ignore_value(virTimeMillisNow(&now)); =20 /* Restore the config of the async job which is not persisted */ priv->jobs_queued++; - priv->job.asyncJob =3D QEMU_ASYNC_JOB_BACKUP; + priv->job.asyncJob =3D VIR_ASYNC_JOB_BACKUP; priv->job.asyncOwnerAPI =3D virThreadJobGet(); priv->job.asyncStarted =3D now; =20 - qemuDomainObjSetAsyncJobMask(&priv->job, - (QEMU_JOB_DEFAULT_MASK | - JOB_MASK(QEMU_JOB_SUSPEND) | - JOB_MASK(QEMU_JOB_MODIFY))); + virDomainObjSetAsyncJobMask(&priv->job, + (VIR_JOB_DEFAULT_MASK | + JOB_MASK(VIR_JOB_SUSPEND) | + JOB_MASK(VIR_JOB_MODIFY))); =20 /* We reset the job parameters for backup so that the job will look * active. This is possible because we are able to recover the sta= te * of blockjobs and also the backup job allows all sub-job types */ jobPriv->current =3D g_new0(qemuDomainJobInfo, 1); jobPriv->current->operation =3D VIR_DOMAIN_JOB_OPERATION_BACKUP; - jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP; - jobPriv->current->status =3D QEMU_DOMAIN_JOB_STATUS_ACTIVE; + jobPriv->current->statsType =3D VIR_DOMAIN_JOB_STATS_TYPE_BACKUP; + jobPriv->current->status =3D VIR_DOMAIN_JOB_STATUS_ACTIVE; jobPriv->current->started =3D now; break; =20 - case QEMU_ASYNC_JOB_NONE: - case QEMU_ASYNC_JOB_LAST: + case VIR_ASYNC_JOB_NONE: + case VIR_ASYNC_JOB_LAST: break; } =20 @@ -3666,36 +3666,36 @@ qemuProcessRecoverJob(virQEMUDriverPtr driver, return -1; =20 /* In case any special handling is added for job type that has been ig= nored - * before, QEMU_DOMAIN_TRACK_JOBS (from qemu_domain.h) needs to be upd= ated + * before, VIR_DOMAIN_TRACK_JOBS (from qemu_domain.h) needs to be upda= ted * for the job to be properly tracked in domain state XML. */ switch (job->active) { - case QEMU_JOB_QUERY: + case VIR_JOB_QUERY: /* harmless */ break; =20 - case QEMU_JOB_DESTROY: + case VIR_JOB_DESTROY: VIR_DEBUG("Domain %s should have already been destroyed", vm->def->name); return -1; =20 - case QEMU_JOB_SUSPEND: + case VIR_JOB_SUSPEND: /* mostly harmless */ break; =20 - case QEMU_JOB_MODIFY: + case VIR_JOB_MODIFY: /* XXX depending on the command we may be in an inconsistent state= and * we should probably fall back to "monitor error" state and refus= e to */ break; =20 - case QEMU_JOB_MIGRATION_OP: - case QEMU_JOB_ABORT: - case QEMU_JOB_ASYNC: - case QEMU_JOB_ASYNC_NESTED: + case VIR_JOB_MIGRATION_OP: + case VIR_JOB_ABORT: + case VIR_JOB_ASYNC: + case VIR_JOB_ASYNC_NESTED: /* async job was already handled above */ - case QEMU_JOB_NONE: - case QEMU_JOB_LAST: + case VIR_JOB_NONE: + case VIR_JOB_LAST: break; } =20 @@ -3715,7 +3715,7 @@ qemuProcessUpdateDevices(virQEMUDriverPtr driver, =20 old =3D priv->qemuDevices; priv->qemuDevices =3D NULL; - if (qemuDomainUpdateDeviceList(vm, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuDomainUpdateDeviceList(vm, VIR_ASYNC_JOB_NONE) < 0) goto cleanup; =20 qemuDevices =3D (const char **)priv->qemuDevices; @@ -4191,7 +4191,7 @@ qemuProcessTranslateCPUFeatures(const char *name, =20 static int qemuProcessFetchGuestCPU(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, virCPUDataPtr *enabled, virCPUDataPtr *disabled) { @@ -4297,7 +4297,7 @@ qemuProcessUpdateLiveGuestCPU(virDomainObjPtr vm, =20 static int qemuProcessUpdateAndVerifyCPU(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { virCPUDataPtr cpu =3D NULL; virCPUDataPtr disabled =3D NULL; @@ -4323,7 +4323,7 @@ qemuProcessUpdateAndVerifyCPU(virDomainObjPtr vm, =20 static int qemuProcessFetchCPUDefinitions(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, virDomainCapsCPUModelsPtr *cpuModels) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -4345,7 +4345,7 @@ qemuProcessFetchCPUDefinitions(virDomainObjPtr vm, =20 static int qemuProcessUpdateCPU(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { g_autoptr(virCPUData) cpu =3D NULL; g_autoptr(virCPUData) disabled =3D NULL; @@ -4562,9 +4562,9 @@ qemuProcessIncomingDefNew(virQEMUCapsPtr qemuCaps, =20 =20 /* - * This function starts a new QEMU_ASYNC_JOB_START async job. The user is + * This function starts a new VIR_ASYNC_JOB_START async job. The user is * responsible for calling qemuProcessEndJob to stop this job and for pass= ing - * QEMU_ASYNC_JOB_START as @asyncJob argument to any function requiring th= is + * VIR_ASYNC_JOB_START as @asyncJob argument to any function requiring this * parameter between qemuProcessBeginJob and qemuProcessEndJob. */ int @@ -4574,11 +4574,11 @@ qemuProcessBeginJob(virDomainObjPtr vm, { qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 - if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_START, + if (virDomainObjBeginAsyncJob(vm, &priv->job, VIR_ASYNC_JOB_START, operation, apiFlags) < 0) return -1; =20 - qemuDomainObjSetAsyncJobMask(&priv->job, QEMU_JOB_NONE); + virDomainObjSetAsyncJobMask(&priv->job, VIR_JOB_NONE); return 0; } =20 @@ -4587,7 +4587,7 @@ void qemuProcessEndJob(virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - qemuDomainObjEndAsyncJob(vm, &priv->job); + virDomainObjEndAsyncJob(vm, &priv->job); } =20 =20 @@ -5045,7 +5045,7 @@ qemuProcessSetupRawIO(virQEMUDriverPtr driver, =20 static int qemuProcessSetupBalloon(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { unsigned long long balloon =3D vm->def->mem.cur_balloon; qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -5517,7 +5517,7 @@ int qemuProcessInit(virQEMUDriverPtr driver, virDomainObjPtr vm, virCPUDefPtr updatedCPU, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, bool migration, unsigned int flags) { @@ -5910,7 +5910,7 @@ qemuProcessVcpusSortOrder(const void *a, =20 static int qemuProcessSetupHotpluggableVcpus(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { unsigned int maxvcpus =3D virDomainDefGetVcpusMax(vm->def); qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -6593,7 +6593,7 @@ qemuProcessGenID(virDomainObjPtr vm, */ static int qemuProcessSetupDiskThrottlingBlockdev(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; size_t i; @@ -6664,7 +6664,7 @@ int qemuProcessLaunch(virConnectPtr conn, virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, qemuProcessIncomingDefPtr incoming, virDomainMomentObjPtr snapshot, virNetDevVPortProfileOp vmop, @@ -7008,7 +7008,7 @@ qemuProcessLaunch(virConnectPtr conn, int qemuProcessRefreshState(virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 @@ -7043,7 +7043,7 @@ qemuProcessRefreshState(virQEMUDriverPtr driver, int qemuProcessFinishStartup(virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, bool startCPUs, virDomainPausedReason pausedReason) { @@ -7081,7 +7081,7 @@ qemuProcessStart(virConnectPtr conn, virQEMUDriverPtr driver, virDomainObjPtr vm, virCPUDefPtr updatedCPU, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, const char *migrateFrom, int migrateFd, const char *migratePath, @@ -7101,7 +7101,7 @@ qemuProcessStart(virConnectPtr conn, "migrateFrom=3D%s migrateFd=3D%d migratePath=3D%s " "snapshot=3D%p vmop=3D%d flags=3D0x%x", conn, driver, vm, vm->def->name, vm->def->id, - qemuDomainAsyncJobTypeToString(asyncJob), + virDomainAsyncJobTypeToString(asyncJob), NULLSTR(migrateFrom), migrateFd, NULLSTR(migratePath), snapshot, vmop, flags); =20 @@ -7216,7 +7216,7 @@ qemuProcessCreatePretendCmd(virQEMUDriverPtr driver, if (jsonPropsValidation) buildflags =3D QEMU_BUILD_COMMANDLINE_VALIDATE_KEEP_JSON; =20 - if (qemuProcessInit(driver, vm, NULL, QEMU_ASYNC_JOB_NONE, + if (qemuProcessInit(driver, vm, NULL, VIR_ASYNC_JOB_NONE, !!migrateURI, flags) < 0) return NULL; =20 @@ -7276,7 +7276,7 @@ qemuProcessKill(virDomainObjPtr vm, unsigned int flag= s) */ int qemuProcessBeginStopJob(virDomainObjPtr vm, - qemuDomainJob job, + virDomainJob job, bool forceKill) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -7295,7 +7295,7 @@ qemuProcessBeginStopJob(virDomainObjPtr vm, /* Wake up anything waiting on domain condition */ virDomainObjBroadcast(vm); =20 - if (qemuDomainObjBeginJob(vm, &priv->job, job) < 0) + if (virDomainObjBeginJob(vm, &priv->job, job) < 0) goto cleanup; =20 ret =3D 0; @@ -7309,7 +7309,7 @@ qemuProcessBeginStopJob(virDomainObjPtr vm, void qemuProcessStop(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainShutoffReason reason, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, unsigned int flags) { int ret; @@ -7328,21 +7328,21 @@ void qemuProcessStop(virQEMUDriverPtr driver, vm, vm->def->name, vm->def->id, (long long)vm->pid, virDomainShutoffReasonTypeToString(reason), - qemuDomainAsyncJobTypeToString(asyncJob), + virDomainAsyncJobTypeToString(asyncJob), flags); =20 /* This method is routinely used in clean up paths. Disable error * reporting so we don't squash a legit error. */ virErrorPreserveLast(&orig_err); =20 - if (asyncJob !=3D QEMU_ASYNC_JOB_NONE) { - if (qemuDomainObjBeginNestedJob(vm, &priv->job, asyncJob) < 0) + if (asyncJob !=3D VIR_ASYNC_JOB_NONE) { + if (virDomainObjBeginNestedJob(vm, &priv->job, asyncJob) < 0) goto cleanup; - } else if (priv->job.asyncJob !=3D QEMU_ASYNC_JOB_NONE && + } else if (priv->job.asyncJob !=3D VIR_ASYNC_JOB_NONE && priv->job.asyncOwner =3D=3D virThreadSelfID() && - priv->job.active !=3D QEMU_JOB_ASYNC_NESTED) { + priv->job.active !=3D VIR_JOB_ASYNC_NESTED) { VIR_WARN("qemuProcessStop called without a nested job (async=3D%s)= ", - qemuDomainAsyncJobTypeToString(asyncJob)); + virDomainAsyncJobTypeToString(asyncJob)); } =20 if (!virDomainObjIsActive(vm)) { @@ -7558,7 +7558,7 @@ void qemuProcessStop(virQEMUDriverPtr driver, =20 /* clean up a possible backup job */ if (priv->backup) - qemuBackupJobTerminate(vm, QEMU_DOMAIN_JOB_STATUS_CANCELED); + qemuBackupJobTerminate(vm, VIR_DOMAIN_JOB_STATUS_CANCELED); =20 qemuProcessRemoveDomainStatus(driver, vm); =20 @@ -7641,8 +7641,8 @@ void qemuProcessStop(virQEMUDriverPtr driver, virDomainObjRemoveTransientDef(vm); =20 endjob: - if (asyncJob !=3D QEMU_ASYNC_JOB_NONE) - qemuDomainObjEndJob(vm, &priv->job); + if (asyncJob !=3D VIR_ASYNC_JOB_NONE) + virDomainObjEndJob(vm, &priv->job); =20 cleanup: virErrorRestore(&orig_err); @@ -7661,22 +7661,22 @@ qemuProcessAutoDestroy(virDomainObjPtr dom, =20 VIR_DEBUG("vm=3D%s, conn=3D%p", dom->def->name, conn); =20 - if (priv->job.asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_IN) + if (priv->job.asyncJob =3D=3D VIR_ASYNC_JOB_MIGRATION_IN) stopFlags |=3D VIR_QEMU_PROCESS_STOP_MIGRATED; =20 if (priv->job.asyncJob) { VIR_DEBUG("vm=3D%s has long-term job active, cancelling", dom->def->name); - qemuDomainObjDiscardAsyncJob(dom, &priv->job); + virDomainObjDiscardAsyncJob(dom, &priv->job); } =20 VIR_DEBUG("Killing domain"); =20 - if (qemuProcessBeginStopJob(dom, QEMU_JOB_DESTROY, true) < 0) + if (qemuProcessBeginStopJob(dom, VIR_JOB_DESTROY, true) < 0) return; =20 qemuProcessStop(driver, dom, VIR_DOMAIN_SHUTOFF_DESTROYED, - QEMU_ASYNC_JOB_NONE, stopFlags); + VIR_ASYNC_JOB_NONE, stopFlags); =20 virDomainAuditStop(dom, "destroyed"); event =3D virDomainEventLifecycleNewFromObj(dom, @@ -7685,7 +7685,7 @@ qemuProcessAutoDestroy(virDomainObjPtr dom, =20 qemuDomainRemoveInactive(driver, dom); =20 - qemuDomainObjEndJob(dom, &priv->job); + virDomainObjEndJob(dom, &priv->job); =20 virObjectEventStateQueue(driver->domainEventState, event); } @@ -7719,7 +7719,7 @@ bool qemuProcessAutoDestroyActive(virQEMUDriverPtr dr= iver, =20 int qemuProcessRefreshDisks(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; bool blockdev =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV); @@ -7775,7 +7775,7 @@ qemuProcessRefreshDisks(virDomainObjPtr vm, =20 static int qemuProcessRefreshCPUMigratability(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; virDomainDefPtr def =3D vm->def; @@ -7833,7 +7833,7 @@ qemuProcessRefreshCPU(virQEMUDriverPtr driver, if (!vm->def->cpu) return 0; =20 - if (qemuProcessRefreshCPUMigratability(vm, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuProcessRefreshCPUMigratability(vm, VIR_ASYNC_JOB_NONE) < 0) return -1; =20 if (!(host =3D virQEMUDriverGetHostCPU(driver))) { @@ -7868,7 +7868,7 @@ qemuProcessRefreshCPU(virQEMUDriverPtr driver, if (virCPUUpdate(vm->def->os.arch, vm->def->cpu, cpu) < 0) return -1; =20 - if (qemuProcessUpdateCPU(vm, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuProcessUpdateCPU(vm, VIR_ASYNC_JOB_NONE) < 0) return -1; } else if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_E= XPANSION)) { /* We only try to fix CPUs when the libvirt/QEMU combo used to sta= rt @@ -8010,7 +8010,7 @@ qemuProcessReconnect(void *opaque) virQEMUDriverPtr driver =3D data->driver; virDomainObjPtr obj =3D data->obj; qemuDomainObjPrivatePtr priv; - qemuDomainJobObj oldjob; + virDomainJobObj oldjob; int state; int reason; g_autoptr(virQEMUDriverConfig) cfg =3D NULL; @@ -8025,13 +8025,13 @@ qemuProcessReconnect(void *opaque) VIR_FREE(data); =20 priv =3D obj->privateData; - qemuDomainObjRestoreJob(&priv->job, &oldjob); - if (oldjob.asyncJob =3D=3D QEMU_ASYNC_JOB_MIGRATION_IN) + virDomainObjRestoreJob(&priv->job, &oldjob); + if (oldjob.asyncJob =3D=3D VIR_ASYNC_JOB_MIGRATION_IN) stopFlags |=3D VIR_QEMU_PROCESS_STOP_MIGRATED; =20 cfg =3D virQEMUDriverGetConfig(driver); =20 - if (qemuDomainObjBeginJob(obj, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(obj, &priv->job, VIR_JOB_MODIFY) < 0) goto error; jobStarted =3D true; =20 @@ -8064,7 +8064,7 @@ qemuProcessReconnect(void *opaque) tryMonReconn =3D true; =20 /* XXX check PID liveliness & EXE path */ - if (qemuConnectMonitor(driver, obj, QEMU_ASYNC_JOB_NONE, retry, NULL) = < 0) + if (qemuConnectMonitor(driver, obj, VIR_ASYNC_JOB_NONE, retry, NULL) <= 0) goto error; =20 priv->machineName =3D qemuDomainGetMachineName(obj); @@ -8164,12 +8164,12 @@ qemuProcessReconnect(void *opaque) if (qemuProcessRefreshCPU(driver, obj) < 0) goto error; =20 - if (qemuDomainRefreshVcpuInfo(obj, QEMU_ASYNC_JOB_NONE, true) < 0) + if (qemuDomainRefreshVcpuInfo(obj, VIR_ASYNC_JOB_NONE, true) < 0) goto error; =20 qemuDomainVcpuPersistOrder(obj->def); =20 - if (qemuProcessDetectIOThreadPIDs(obj, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuProcessDetectIOThreadPIDs(obj, VIR_ASYNC_JOB_NONE) < 0) goto error; =20 if (qemuSecurityReserveLabel(driver->securityManager, obj->def, obj->p= id) < 0) @@ -8179,20 +8179,20 @@ qemuProcessReconnect(void *opaque) =20 qemuProcessFiltersInstantiate(obj->def); =20 - if (qemuProcessRefreshDisks(obj, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuProcessRefreshDisks(obj, VIR_ASYNC_JOB_NONE) < 0) goto error; =20 if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV) && - qemuBlockNodeNamesDetect(obj, QEMU_ASYNC_JOB_NONE) < 0) + qemuBlockNodeNamesDetect(obj, VIR_ASYNC_JOB_NONE) < 0) goto error; =20 - if (qemuRefreshVirtioChannelState(driver, obj, QEMU_ASYNC_JOB_NONE) < = 0) + if (qemuRefreshVirtioChannelState(driver, obj, VIR_ASYNC_JOB_NONE) < 0) goto error; =20 /* If querying of guest's RTC failed, report error, but do not kill th= e domain. */ qemuRefreshRTC(obj); =20 - if (qemuProcessRefreshBalloonState(obj, QEMU_ASYNC_JOB_NONE) < 0) + if (qemuProcessRefreshBalloonState(obj, VIR_ASYNC_JOB_NONE) < 0) goto error; =20 if (qemuProcessRecoverJob(driver, obj, &oldjob, &stopFlags) < 0) @@ -8258,7 +8258,7 @@ qemuProcessReconnect(void *opaque) if (jobStarted) { if (!virDomainObjIsActive(obj)) qemuDomainRemoveInactive(driver, obj); - qemuDomainObjEndJob(obj, &priv->job); + virDomainObjEndJob(obj, &priv->job); } else { if (!virDomainObjIsActive(obj)) qemuDomainRemoveInactiveJob(driver, obj); @@ -8291,7 +8291,7 @@ qemuProcessReconnect(void *opaque) * thread didn't have a chance to start playing with the domain yet * (it's all we can do anyway). */ - qemuProcessStop(driver, obj, state, QEMU_ASYNC_JOB_NONE, stopFlags= ); + qemuProcessStop(driver, obj, state, VIR_ASYNC_JOB_NONE, stopFlags); } goto cleanup; } @@ -8336,7 +8336,7 @@ qemuProcessReconnectHelper(virDomainObjPtr obj, * object. */ qemuProcessStop(src->driver, obj, VIR_DOMAIN_SHUTOFF_FAILED, - QEMU_ASYNC_JOB_NONE, 0); + VIR_ASYNC_JOB_NONE, 0); qemuDomainRemoveInactiveJobLocked(src->driver, obj); =20 virDomainObjEndAPI(&obj); diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h index 448b65537a..fb3cd85bb2 100644 --- a/src/qemu/qemu_process.h +++ b/src/qemu/qemu_process.h @@ -32,11 +32,11 @@ int qemuProcessPrepareMonitorChr(virDomainChrSourceDefP= tr monConfig, int qemuProcessStartCPUs(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainRunningReason reason, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); int qemuProcessStopCPUs(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainPausedReason reason, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); =20 int qemuProcessBuildDestroyMemoryPaths(virQEMUDriverPtr driver, virDomainObjPtr vm, @@ -86,7 +86,7 @@ int qemuProcessStart(virConnectPtr conn, virQEMUDriverPtr driver, virDomainObjPtr vm, virCPUDefPtr updatedCPU, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, const char *migrateFrom, int stdin_fd, const char *stdin_path, @@ -105,7 +105,7 @@ virCommandPtr qemuProcessCreatePretendCmd(virQEMUDriver= Ptr driver, int qemuProcessInit(virQEMUDriverPtr driver, virDomainObjPtr vm, virCPUDefPtr updatedCPU, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, bool migration, unsigned int flags); =20 @@ -122,7 +122,7 @@ int qemuProcessPrepareHost(virQEMUDriverPtr driver, int qemuProcessLaunch(virConnectPtr conn, virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, qemuProcessIncomingDefPtr incoming, virDomainMomentObjPtr snapshot, virNetDevVPortProfileOp vmop, @@ -130,13 +130,13 @@ int qemuProcessLaunch(virConnectPtr conn, =20 int qemuProcessFinishStartup(virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, bool startCPUs, virDomainPausedReason pausedReason); =20 int qemuProcessRefreshState(virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); =20 typedef enum { VIR_QEMU_PROCESS_STOP_MIGRATED =3D 1 << 0, @@ -144,12 +144,12 @@ typedef enum { } qemuProcessStopFlags; =20 int qemuProcessBeginStopJob(virDomainObjPtr vm, - qemuDomainJob job, + virDomainJob job, bool forceKill); void qemuProcessStop(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainShutoffReason reason, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, unsigned int flags); =20 typedef enum { @@ -190,13 +190,13 @@ int qemuProcessSetupIOThread(virDomainObjPtr vm, =20 int qemuRefreshVirtioChannelState(virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); =20 int qemuProcessRefreshBalloonState(virDomainObjPtr vm, int asyncJob); =20 int qemuProcessRefreshDisks(virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); =20 int qemuProcessStartManagedPRDaemon(virDomainObjPtr vm) G_GNUC_NO_INLINE; =20 diff --git a/src/qemu/qemu_saveimage.c b/src/qemu/qemu_saveimage.c index 52468056ad..28d2349869 100644 --- a/src/qemu/qemu_saveimage.c +++ b/src/qemu/qemu_saveimage.c @@ -261,7 +261,7 @@ qemuSaveImageCreate(virQEMUDriverPtr driver, virQEMUSaveDataPtr data, virCommandPtr compressor, unsigned int flags, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); bool needUnlink =3D false; @@ -578,7 +578,7 @@ qemuSaveImageStartVM(virConnectPtr conn, virQEMUSaveDataPtr data, const char *path, bool start_paused, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; int ret =3D -1; diff --git a/src/qemu/qemu_saveimage.h b/src/qemu/qemu_saveimage.h index f9fecbcc46..39c4ec128a 100644 --- a/src/qemu/qemu_saveimage.h +++ b/src/qemu/qemu_saveimage.h @@ -22,7 +22,7 @@ #include "datatypes.h" =20 #include "qemu_conf.h" -#include "qemu_domainjob.h" +#include "virdomainjob.h" #include "qemu_domain.h" =20 /* It would be nice to replace 'Qemud' with 'Qemu' but @@ -69,7 +69,7 @@ qemuSaveImageStartVM(virConnectPtr conn, virQEMUSaveDataPtr data, const char *path, bool start_paused, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5) ATTRIBUTE_NONNULL(6); =20 int @@ -98,7 +98,7 @@ qemuSaveImageCreate(virQEMUDriverPtr driver, virQEMUSaveDataPtr data, virCommandPtr compressor, unsigned int flags, - qemuDomainAsyncJob asyncJob); + virDomainAsyncJob asyncJob); =20 int virQEMUSaveDataWrite(virQEMUSaveDataPtr data, diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index 8d216bbdbd..0692a4e7f3 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -284,7 +284,7 @@ qemuSnapshotCreateActiveInternal(virQEMUDriverPtr drive= r, * domain. Thus we stop and start CPUs ourselves. */ if (qemuProcessStopCPUs(driver, vm, VIR_DOMAIN_PAUSED_SAVE, - QEMU_ASYNC_JOB_SNAPSHOT) < 0) + VIR_ASYNC_JOB_SNAPSHOT) < 0) goto cleanup; =20 resume =3D true; @@ -295,7 +295,7 @@ qemuSnapshotCreateActiveInternal(virQEMUDriverPtr drive= r, } } =20 - if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_SNAPSHOT) < 0) { + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_SNAPSHOT) < 0) { resume =3D false; goto cleanup; } @@ -313,7 +313,7 @@ qemuSnapshotCreateActiveInternal(virQEMUDriverPtr drive= r, event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_S= TOPPED, VIR_DOMAIN_EVENT_STOPPED_FROM_SNA= PSHOT); qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT, - QEMU_ASYNC_JOB_SNAPSHOT, 0); + VIR_ASYNC_JOB_SNAPSHOT, 0); virDomainAuditStop(vm, "from-snapshot"); resume =3D false; } @@ -322,7 +322,7 @@ qemuSnapshotCreateActiveInternal(virQEMUDriverPtr drive= r, if (resume && virDomainObjIsActive(vm) && qemuProcessStartCPUs(driver, vm, VIR_DOMAIN_RUNNING_UNPAUSED, - QEMU_ASYNC_JOB_SNAPSHOT) < 0) { + VIR_ASYNC_JOB_SNAPSHOT) < 0) { event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_SUSPENDED, VIR_DOMAIN_EVENT_SUSPENDED_API_ER= ROR); @@ -793,7 +793,7 @@ qemuSnapshotDiskCleanup(qemuSnapshotDiskDataPtr data, size_t ndata, virQEMUDriverPtr driver, virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { virErrorPtr orig_err; size_t i; @@ -884,7 +884,7 @@ qemuSnapshotDiskPrepareOneBlockdev(virDomainObjPtr vm, virQEMUDriverConfigPtr cfg, bool reuse, virHashTablePtr blockNamedNodeData, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; g_autoptr(virStorageSource) terminator =3D NULL; @@ -939,7 +939,7 @@ qemuSnapshotDiskPrepareOne(virQEMUDriverPtr driver, virHashTablePtr blockNamedNodeData, bool reuse, bool blockdev, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, virJSONValuePtr actions) { virDomainDiskDefPtr persistdisk; @@ -1051,7 +1051,7 @@ qemuSnapshotDiskPrepare(virQEMUDriverPtr driver, bool reuse, bool blockdev, virHashTablePtr blockNamedNodeData, - qemuDomainAsyncJob asyncJob, + virDomainAsyncJob asyncJob, qemuSnapshotDiskDataPtr *rdata, size_t *rndata, virJSONValuePtr actions) @@ -1156,7 +1156,7 @@ qemuSnapshotCreateDiskActive(virQEMUDriverPtr driver, virHashTablePtr blockNamedNodeData, unsigned int flags, virQEMUDriverConfigPtr cfg, - qemuDomainAsyncJob asyncJob) + virDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; g_autoptr(virJSONValue) actions =3D NULL; @@ -1248,16 +1248,16 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr d= river, if (flags & VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE) { int freeze; =20 - if (qemuDomainObjBeginAgentJob(vm, &priv->job, QEMU_AGENT_JOB_MODI= FY) < 0) + if (virDomainObjBeginAgentJob(vm, &priv->job, VIR_AGENT_JOB_MODIFY= ) < 0) goto cleanup; =20 if (virDomainObjCheckActive(vm) < 0) { - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); goto cleanup; } =20 freeze =3D qemuSnapshotFSFreeze(vm, NULL, 0); - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); =20 if (freeze < 0) { /* the helper reported the error */ @@ -1281,7 +1281,7 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, =20 if (memory && !(flags & VIR_DOMAIN_SNAPSHOT_CREATE_LIVE)) { if (qemuProcessStopCPUs(driver, vm, VIR_DOMAIN_PAUSED_SNAPSHOT, - QEMU_ASYNC_JOB_SNAPSHOT) < 0) + VIR_ASYNC_JOB_SNAPSHOT) < 0) goto cleanup; =20 if (!virDomainObjIsActive(vm)) { @@ -1298,7 +1298,7 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, * migration step as qemu deactivates bitmaps after migration so the r= esult * would be wrong */ if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV) && - !(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, QEMU_ASYNC_= JOB_SNAPSHOT))) + !(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, VIR_ASYNC_J= OB_SNAPSHOT))) goto cleanup; =20 /* do the memory snapshot if necessary */ @@ -1309,12 +1309,12 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr d= river, if (!qemuMigrationSrcIsAllowed(driver, vm, false, 0)) goto cleanup; =20 - jobPriv->current->statsType =3D QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUM= P; + jobPriv->current->statsType =3D VIR_DOMAIN_JOB_STATS_TYPE_SAVEDUMP; =20 /* allow the migration job to be cancelled or the domain to be pau= sed */ - qemuDomainObjSetAsyncJobMask(&priv->job, (QEMU_JOB_DEFAULT_MASK | - JOB_MASK(QEMU_JOB_SUSPEND) | - JOB_MASK(QEMU_JOB_MIGRATION_OP))= ); + virDomainObjSetAsyncJobMask(&priv->job, (VIR_JOB_DEFAULT_MASK | + JOB_MASK(VIR_JOB_SUSPEND) | + JOB_MASK(VIR_JOB_MIGRATION_OP))); =20 if ((compressed =3D qemuSaveImageGetCompressionProgram(cfg->snapsh= otImageFormat, &compressor, @@ -1335,21 +1335,21 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr d= river, =20 if ((ret =3D qemuSaveImageCreate(driver, vm, snapdef->file, data, compressor, 0, - QEMU_ASYNC_JOB_SNAPSHOT)) < 0) + VIR_ASYNC_JOB_SNAPSHOT)) < 0) goto cleanup; =20 /* the memory image was created, remove it on errors */ memory_unlink =3D true; =20 /* forbid any further manipulation */ - qemuDomainObjSetAsyncJobMask(&priv->job, QEMU_JOB_DEFAULT_MASK); + virDomainObjSetAsyncJobMask(&priv->job, VIR_JOB_DEFAULT_MASK); } =20 /* the domain is now paused if a memory snapshot was requested */ =20 if ((ret =3D qemuSnapshotCreateDiskActive(driver, vm, snap, blockNamedNodeData, flags, cfg, - QEMU_ASYNC_JOB_SNAPSHOT)) < 0) + VIR_ASYNC_JOB_SNAPSHOT)) < 0) goto cleanup; =20 /* the snapshot is complete now */ @@ -1357,7 +1357,7 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_S= TOPPED, VIR_DOMAIN_EVENT_STOPPED_FROM_SNA= PSHOT); qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT, - QEMU_ASYNC_JOB_SNAPSHOT, 0); + VIR_ASYNC_JOB_SNAPSHOT, 0); virDomainAuditStop(vm, "from-snapshot"); resume =3D false; thaw =3D 0; @@ -1379,7 +1379,7 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, if (resume && virDomainObjIsActive(vm) && qemuProcessStartCPUs(driver, vm, VIR_DOMAIN_RUNNING_UNPAUSED, - QEMU_ASYNC_JOB_SNAPSHOT) < 0) { + VIR_ASYNC_JOB_SNAPSHOT) < 0) { event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_SUSPENDED, VIR_DOMAIN_EVENT_SUSPENDED_API_ER= ROR); @@ -1393,7 +1393,7 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, } =20 if (thaw !=3D 0 && - qemuDomainObjBeginAgentJob(vm, &priv->job, QEMU_AGENT_JOB_MODIFY) = >=3D 0 && + virDomainObjBeginAgentJob(vm, &priv->job, VIR_AGENT_JOB_MODIFY) >= =3D 0 && virDomainObjIsActive(vm)) { if (qemuSnapshotFSThaw(vm, ret =3D=3D 0 && thaw > 0) < 0) { /* helper reported the error, if it was needed */ @@ -1401,7 +1401,7 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, ret =3D -1; } =20 - qemuDomainObjEndAgentJob(vm, &priv->job); + virDomainObjEndAgentJob(vm, &priv->job); } =20 virQEMUSaveDataFree(data); @@ -1544,11 +1544,11 @@ qemuSnapshotCreateXML(virDomainPtr domain, * a regular job, so we need to set the job mask to disallow query as * 'savevm' blocks the monitor. External snapshot will then modify the * job mask appropriately. */ - if (qemuDomainObjBeginAsyncJob(vm, &priv->job, QEMU_ASYNC_JOB_SNAPSHOT, - VIR_DOMAIN_JOB_OPERATION_SNAPSHOT, flag= s) < 0) + if (virDomainObjBeginAsyncJob(vm, &priv->job, VIR_ASYNC_JOB_SNAPSHOT, + VIR_DOMAIN_JOB_OPERATION_SNAPSHOT, flags= ) < 0) goto cleanup; =20 - qemuDomainObjSetAsyncJobMask(&priv->job, QEMU_JOB_NONE); + virDomainObjSetAsyncJobMask(&priv->job, VIR_JOB_NONE); =20 if (redefine) { if (virDomainSnapshotRedefinePrep(vm, &def, &snap, @@ -1679,7 +1679,7 @@ qemuSnapshotCreateXML(virDomainPtr domain, virDomainSnapshotObjListRemove(vm->snapshots, snap); } =20 - qemuDomainObjEndAsyncJob(vm, &priv->job); + virDomainObjEndAsyncJob(vm, &priv->job); =20 cleanup: return snapshot; @@ -1719,7 +1719,7 @@ qemuSnapshotRevert(virDomainObjPtr vm, qemuDomainSaveCookiePtr cookie; virCPUDefPtr origCPU =3D NULL; unsigned int start_flags =3D VIR_QEMU_PROCESS_START_GEN_VMID; - qemuDomainAsyncJob jobType =3D QEMU_ASYNC_JOB_START; + virDomainAsyncJob jobType =3D VIR_ASYNC_JOB_START; bool defined =3D false; =20 virCheckFlags(VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING | @@ -1891,7 +1891,7 @@ qemuSnapshotRevert(virDomainObjPtr vm, virResetError(err); qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT, - QEMU_ASYNC_JOB_START, 0); + VIR_ASYNC_JOB_START, 0); virDomainAuditStop(vm, "from-snapshot"); detail =3D VIR_DOMAIN_EVENT_STOPPED_FROM_SNAPSHOT; event =3D virDomainEventLifecycleNewFromObj(vm, @@ -1900,7 +1900,7 @@ qemuSnapshotRevert(virDomainObjPtr vm, virObjectEventStateQueue(driver->domainEventState, eve= nt); /* Start after stop won't be an async start job, so * reset to none */ - jobType =3D QEMU_ASYNC_JOB_NONE; + jobType =3D VIR_ASYNC_JOB_NONE; goto load; } } @@ -1909,7 +1909,7 @@ qemuSnapshotRevert(virDomainObjPtr vm, /* Transitions 5, 6 */ if (qemuProcessStopCPUs(driver, vm, VIR_DOMAIN_PAUSED_FROM_SNAPSHOT, - QEMU_ASYNC_JOB_START) < 0) + VIR_ASYNC_JOB_START) < 0) goto endjob; if (!virDomainObjIsActive(vm)) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -1918,7 +1918,7 @@ qemuSnapshotRevert(virDomainObjPtr vm, } } =20 - if (qemuDomainObjEnterMonitorAsync(vm, QEMU_ASYNC_JOB_START) <= 0) + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_START) < = 0) goto endjob; rc =3D qemuMonitorLoadSnapshot(priv->mon, snap->def->name); if (qemuDomainObjExitMonitor(vm) < 0) @@ -2028,7 +2028,7 @@ qemuSnapshotRevert(virDomainObjPtr vm, if (virDomainObjIsActive(vm)) { /* Transitions 4, 7 */ qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT, - QEMU_ASYNC_JOB_START, 0); + VIR_ASYNC_JOB_START, 0); virDomainAuditStop(vm, "from-snapshot"); detail =3D VIR_DOMAIN_EVENT_STOPPED_FROM_SNAPSHOT; event =3D virDomainEventLifecycleNewFromObj(vm, @@ -2057,7 +2057,7 @@ qemuSnapshotRevert(virDomainObjPtr vm, =20 virObjectEventStateQueue(driver->domainEventState, event); rc =3D qemuProcessStart(snapshot->domain->conn, driver, vm, NU= LL, - QEMU_ASYNC_JOB_START, NULL, -1, NULL, NU= LL, + VIR_ASYNC_JOB_START, NULL, -1, NULL, NUL= L, VIR_NETDEV_VPORT_PROFILE_OP_CREATE, start_flags); virDomainAuditStart(vm, "from-snapshot", rc >=3D 0); @@ -2185,7 +2185,7 @@ qemuSnapshotDelete(virDomainObjPtr vm, VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY | VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY, -1); =20 - if (qemuDomainObjBeginJob(vm, &priv->job, QEMU_JOB_MODIFY) < 0) + if (virDomainObjBeginJob(vm, &priv->job, VIR_JOB_MODIFY) < 0) goto cleanup; =20 if (!(snap =3D qemuSnapObjFromSnapshot(vm, snapshot))) @@ -2258,7 +2258,7 @@ qemuSnapshotDelete(virDomainObjPtr vm, } =20 endjob: - qemuDomainObjEndJob(vm, &priv->job); + virDomainObjEndJob(vm, &priv->job); =20 cleanup: return ret; --=20 2.25.1