From nobody Fri Dec 19 20:58:02 2025 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; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1619013959; cv=none; d=zohomail.com; s=zohoarc; b=bCxbo8osoa/N5nM0c8ylx6c+9BJ32HEqWiFES8QGsZ6a7v0PLOZdWp+BffaywnJ7vW8eRl+ul4VmVUrud+zLuknwg875ItLLy4kyMLDGndtYfrjOidikQG3C3zOXv9V72AizvMtALCwX2cbR+uJY2V5+eAiFSASEyUoWot08EQk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619013959; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=agLZvObWYPhzFq1jozzUEOCVTtlPH9BG39rfEpJzyHw=; b=oDWacSBNqqaKGOra20ICJ0zI/4LamI9VacUTDCjakSUTsRupXTv8LAjA8LEAGuI/QV3p8PoJFRMNUI1u5wG4lI+fP36uGesUDSrxg50Cb4nrbVOyOu2+EGU97uzujnhyfcoaPp8jQM8/vzCIYzDEDHobptEth9ihaet3pjUYtRs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass 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 1619013959305409.33473631478614; Wed, 21 Apr 2021 07:05:59 -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-179-XzVzh5cxMA6uBZpTVplpFQ-1; Wed, 21 Apr 2021 10:05:53 -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 8B211100A637; Wed, 21 Apr 2021 14:04:56 +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 65FA360C5F; Wed, 21 Apr 2021 14:04:56 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id F32631806D1A; Wed, 21 Apr 2021 14:04:55 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 13LE4mBP023976 for ; Wed, 21 Apr 2021 10:04:48 -0400 Received: by smtp.corp.redhat.com (Postfix) id C428A6091B; Wed, 21 Apr 2021 14:04:48 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.33]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1DA7B6085A for ; Wed, 21 Apr 2021 14:04:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1619013957; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=agLZvObWYPhzFq1jozzUEOCVTtlPH9BG39rfEpJzyHw=; b=FSDxftYlyW6xg9NX2gduvnt5iZXER4qWdzx/UawCHyctZNrGSYXIbmNcJiObvk1J6hL5Lf xR+W0L5KyURG9En0ioho/38SNQXBhZExn8geVTQ8diznpVUOd4xrlX1nIFKELVsG0a3D0b +ZQ9cXBZnZaI39t3TCMMaVRHvM5oDac= X-MC-Unique: XzVzh5cxMA6uBZpTVplpFQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 03/10] qemu: monitor: Add 'force' argument for 'block-job-cancel' QMP command Date: Wed, 21 Apr 2021 16:04:33 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" In certain cases such as when aborting migration we don't really care for completion of the blockjob. Add 'force' as parameter of 'block-job-cancel'. Signed-off-by: Peter Krempa --- src/qemu/qemu_driver.c | 2 +- src/qemu/qemu_migration.c | 2 +- src/qemu/qemu_monitor.c | 7 ++++--- src/qemu/qemu_monitor.h | 3 ++- src/qemu/qemu_monitor_json.c | 4 +++- src/qemu/qemu_monitor_json.h | 3 ++- tests/qemumonitorjsontest.c | 2 +- 7 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index d908e95ba7..7a9ad03489 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -14510,7 +14510,7 @@ qemuDomainBlockJobAbort(virDomainPtr dom, if (blockdev) ret =3D qemuMonitorJobCancel(priv->mon, job->name, false); else - ret =3D qemuMonitorBlockJobCancel(priv->mon, job->name); + ret =3D qemuMonitorBlockJobCancel(priv->mon, job->name, false); if (qemuDomainObjExitMonitor(driver, vm) < 0) { ret =3D -1; goto endjob; diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index df88f954ed..b9143166cb 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -732,7 +732,7 @@ qemuMigrationSrcNBDCopyCancelOne(virQEMUDriver *driver, if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) return -1; - rv =3D qemuMonitorBlockJobCancel(priv->mon, job->name); + rv =3D qemuMonitorBlockJobCancel(priv->mon, job->name, false); if (qemuDomainObjExitMonitor(driver, vm) < 0 || rv < 0) return -1; diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index f3f14c46b6..fa8a027aa6 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -3403,13 +3403,14 @@ qemuMonitorBlockStream(qemuMonitor *mon, int qemuMonitorBlockJobCancel(qemuMonitor *mon, - const char *jobname) + const char *jobname, + bool force) { - VIR_DEBUG("jobname=3D%s", jobname); + VIR_DEBUG("jobname=3D%s force=3D%d", jobname, force); QEMU_CHECK_MONITOR(mon); - return qemuMonitorJSONBlockJobCancel(mon, jobname); + return qemuMonitorJSONBlockJobCancel(mon, jobname, force); } diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 230d00a894..95f1a10e31 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -1081,7 +1081,8 @@ int qemuMonitorBlockStream(qemuMonitor *mon, ATTRIBUTE_NONNULL(2); int qemuMonitorBlockJobCancel(qemuMonitor *mon, - const char *jobname) + const char *jobname, + bool force) ATTRIBUTE_NONNULL(2); int qemuMonitorBlockJobSetSpeed(qemuMonitor *mon, diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 8f3ccb0c63..dc74c86158 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -5217,13 +5217,15 @@ qemuMonitorJSONBlockStream(qemuMonitor *mon, int qemuMonitorJSONBlockJobCancel(qemuMonitor *mon, - const char *jobname) + const char *jobname, + bool force) { g_autoptr(virJSONValue) cmd =3D NULL; g_autoptr(virJSONValue) reply =3D NULL; if (!(cmd =3D qemuMonitorJSONMakeCommand("block-job-cancel", "s:device", jobname, + "B:force", force, NULL))) return -1; diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index 0846325a81..486ba5a593 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -325,7 +325,8 @@ int qemuMonitorJSONBlockStream(qemuMonitor *mon, ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); int qemuMonitorJSONBlockJobCancel(qemuMonitor *mon, - const char *jobname) + const char *jobname, + bool force) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); int diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index 8ed6509159..9e53b65289 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -1218,7 +1218,7 @@ GEN_TEST_FUNC(qemuMonitorJSONBitmapRemove, "foodev", = "newnode") GEN_TEST_FUNC(qemuMonitorJSONJobDismiss, "jobname") GEN_TEST_FUNC(qemuMonitorJSONJobCancel, "jobname", false) GEN_TEST_FUNC(qemuMonitorJSONJobComplete, "jobname") -GEN_TEST_FUNC(qemuMonitorJSONBlockJobCancel, "jobname") +GEN_TEST_FUNC(qemuMonitorJSONBlockJobCancel, "jobname", true) static int testQemuMonitorJSONqemuMonitorJSONNBDServerStart(const void *opaque) --=20 2.30.2