From nobody Wed Nov 12 21:50:26 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1574441547; cv=none; d=zohomail.com; s=zohoarc; b=kRjGJFqPqV2DzJGXDuViIByKsV0N8q8E0eolmHNmCCwLAP+j0T8p+RFR/oAjGdFUWptsFE0VX/RYmELUFfzKnpzQqGDB2SLboQrc68LpbW2t7g9zeSgWFINxlb7Z77W4yi75cW1Fo+g6kXx57nADXJnsYdTLW5Ua9zh0hD3mUu4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1574441547; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=N71bCkeEmFSODmHaBuaJPIbj18h0+RvLK7sZTaIwMuU=; b=Wgqf6ZvFmTAXw+b+4lEUNuI5r2KDxCKE4Nimw6EDEXbDz8ogbJ2q+bXvAbVeFMLdwVJDiZXoWa4jLuk3TGafqacl3zwz8ivTX1qbnhQXIYoQVA0yF20bM5meoUBdyI/z3u1Ut+WZfTQCsPS/EtOr+eXPBxcNu1aG/T96G5O+uKE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1574441547963765.7278500986158; Fri, 22 Nov 2019 08:52:27 -0800 (PST) Received: from localhost ([::1]:53068 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYCAR-0007LF-Rl for importer@patchew.org; Fri, 22 Nov 2019 11:52:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53987) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYC6V-0005YP-DY for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iYC6T-00044a-VI for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:19 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:30253 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iYC6T-000441-SH for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:17 -0500 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-54-oZuBV2hMNo-7KmtgLVaCzw-1; Fri, 22 Nov 2019 11:48:14 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8DF82801E76; Fri, 22 Nov 2019 16:48:13 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.46]) by smtp.corp.redhat.com (Postfix) with ESMTP id BDF54691A4; Fri, 22 Nov 2019 16:48:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574441297; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=N71bCkeEmFSODmHaBuaJPIbj18h0+RvLK7sZTaIwMuU=; b=AjNXBEE6NsRBtv5P7fk/kqX+PPaWFNatj1/2CJEreNWBp/0gpQSH9wu1LHqqIpxJii7qnt oJmNQBNOzF2Nd3FsfeXFI+OIbkUWF5hGp6qZxFyksPqRlLVHjGQl5x9cEyxwaFfNMEo51X yZd0r7GpzkN+3wFRwjNjvzNrZGS0smk= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v2 1/9] monitor/hmp: uninline add_init_drive Date: Fri, 22 Nov 2019 18:47:59 +0200 Message-Id: <20191122164807.27938-2-mlevitsk@redhat.com> In-Reply-To: <20191122164807.27938-1-mlevitsk@redhat.com> References: <20191122164807.27938-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-MC-Unique: oZuBV2hMNo-7KmtgLVaCzw-1 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 205.139.110.120 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, Markus Armbruster , "Dr. David Alan Gilbert" , Maxim Levitsky , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This is only used by hmp_drive_add. The code is just a bit shorter this way. No functional changes Signed-off-by: Maxim Levitsky Reviewed-by: Dr. David Alan Gilbert --- device-hotplug.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/device-hotplug.c b/device-hotplug.c index f01d53774b..5ce73f0cff 100644 --- a/device-hotplug.c +++ b/device-hotplug.c @@ -34,42 +34,35 @@ #include "monitor/monitor.h" #include "block/block_int.h" =20 -static DriveInfo *add_init_drive(const char *optstr) + +void hmp_drive_add(Monitor *mon, const QDict *qdict) { Error *err =3D NULL; - DriveInfo *dinfo; + DriveInfo *dinfo =3D NULL; QemuOpts *opts; MachineClass *mc; + const char *optstr =3D qdict_get_str(qdict, "opts"); + bool node =3D qdict_get_try_bool(qdict, "node", false); + + if (node) { + hmp_drive_add_node(mon, optstr); + return; + } =20 opts =3D drive_def(optstr); if (!opts) - return NULL; + return; =20 mc =3D MACHINE_GET_CLASS(current_machine); dinfo =3D drive_new(opts, mc->block_default_type, &err); if (err) { error_report_err(err); qemu_opts_del(opts); - return NULL; - } - - return dinfo; -} - -void hmp_drive_add(Monitor *mon, const QDict *qdict) -{ - DriveInfo *dinfo =3D NULL; - const char *opts =3D qdict_get_str(qdict, "opts"); - bool node =3D qdict_get_try_bool(qdict, "node", false); - - if (node) { - hmp_drive_add_node(mon, opts); - return; + goto err; } =20 - dinfo =3D add_init_drive(opts); if (!dinfo) { - goto err; + return; } =20 switch (dinfo->type) { --=20 2.17.2 From nobody Wed Nov 12 21:50:26 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1574443069; cv=none; d=zohomail.com; s=zohoarc; b=BVzu6UFqGJ5v5hN4ZRbfOzaATrYoYp8dv4Vi4B4zAHXkR3oUR97+CT+CgRUK5zV2oPFue55mQ34b6Tcefa+M4i9+WzyZOhxc9arefvgd+wnOZCzS8h7CWUBdii+t7/GMIESh9uqZxQZ/vxW8r8TICGHHEtW7Jxf4KpLAFkWrSLg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1574443069; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=Ui9UgGzzv/pjupUTsEmw1vZ85UDhtrAqVT5HZS5Y+OM=; b=TyliG/CDY7jBBQdHxljGW1gnAEzlJe7X9Q7jjfbJ+9BbXzZK9hjauVhjRXgCBY5SOp2fEOZiPaRCL69Hqqhyc6zfPDybwkqUkKELN3ZLieIQoczfBjdUld9MS2tqoN102preIHCAyxgLloCwo+FypJJnsOLbFH+ySc9q37OlE7U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1574443069390546.2235654919817; Fri, 22 Nov 2019 09:17:49 -0800 (PST) Received: from localhost ([::1]:53190 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYCYw-0000Lp-DG for importer@patchew.org; Fri, 22 Nov 2019 12:17:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54016) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYC6W-0005ct-EH for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iYC6U-00045M-Sl for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:19 -0500 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:44219 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iYC6U-00044l-OK for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:18 -0500 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-36-Q5eYDtHKOTiJHHRF7qszhQ-1; Fri, 22 Nov 2019 11:48:16 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id BE77818C35A1; Fri, 22 Nov 2019 16:48:15 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.46]) by smtp.corp.redhat.com (Postfix) with ESMTP id E5E7466094; Fri, 22 Nov 2019 16:48:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574441298; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ui9UgGzzv/pjupUTsEmw1vZ85UDhtrAqVT5HZS5Y+OM=; b=Jkz6TRXbYoRes8E9k1qkJ2mM/x8tGy7PYqxrGxeMo1V4PHgMpLJHSHuY8pbcvxyLNQh4oV CcEg165tA58Nr4zLS0YmreKZ/L32Xmu6zjNDkRnu7NMIjOQEdkEhdikBnJ4MDPVBZ7qYdu QGKrSSKchkELs9RuyuTL+hYUxA2sXMY= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v2 2/9] monitor/hmp: rename device-hotplug.c to block/monitor/block-hmp-cmds.c Date: Fri, 22 Nov 2019 18:48:00 +0200 Message-Id: <20191122164807.27938-3-mlevitsk@redhat.com> In-Reply-To: <20191122164807.27938-1-mlevitsk@redhat.com> References: <20191122164807.27938-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-MC-Unique: Q5eYDtHKOTiJHHRF7qszhQ-1 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 205.139.110.61 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, Markus Armbruster , "Dr. David Alan Gilbert" , Maxim Levitsky , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" These days device-hotplug.c only contains the hmp_drive_add In the next patch, rest of hmp_drive* functions will be moved there. Signed-off-by: Maxim Levitsky Reviewed-by: Dr. David Alan Gilbert --- MAINTAINERS | 1 + Makefile.objs | 2 +- block/Makefile.objs | 1 + block/monitor/Makefile.objs | 1 + device-hotplug.c =3D> block/monitor/block-hmp-cmds.c | 2 +- 5 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 block/monitor/Makefile.objs rename device-hotplug.c =3D> block/monitor/block-hmp-cmds.c (98%) diff --git a/MAINTAINERS b/MAINTAINERS index dfb7932608..658c38edf4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1855,6 +1855,7 @@ Block QAPI, monitor, command line M: Markus Armbruster S: Supported F: blockdev.c +F: blockdev-hmp-cmds.c F: block/qapi.c F: qapi/block*.json F: qapi/transaction.json diff --git a/Makefile.objs b/Makefile.objs index 11ba1a36bd..e83962db96 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -49,7 +49,7 @@ common-obj-y +=3D dump/ common-obj-y +=3D job-qmp.o common-obj-y +=3D monitor/ common-obj-y +=3D net/ -common-obj-y +=3D qdev-monitor.o device-hotplug.o +common-obj-y +=3D qdev-monitor.o common-obj-$(CONFIG_WIN32) +=3D os-win32.o common-obj-$(CONFIG_POSIX) +=3D os-posix.o =20 diff --git a/block/Makefile.objs b/block/Makefile.objs index e394fe0b6c..c9e35ab66a 100644 --- a/block/Makefile.objs +++ b/block/Makefile.objs @@ -43,6 +43,7 @@ block-obj-y +=3D crypto.o =20 block-obj-y +=3D aio_task.o block-obj-y +=3D backup-top.o +common-obj-y +=3D monitor/ =20 common-obj-y +=3D stream.o =20 diff --git a/block/monitor/Makefile.objs b/block/monitor/Makefile.objs new file mode 100644 index 0000000000..0a74f9a8b5 --- /dev/null +++ b/block/monitor/Makefile.objs @@ -0,0 +1 @@ +common-obj-y +=3D block-hmp-cmds.o diff --git a/device-hotplug.c b/block/monitor/block-hmp-cmds.c similarity index 98% rename from device-hotplug.c rename to block/monitor/block-hmp-cmds.c index 5ce73f0cff..21ff6fa9a9 100644 --- a/device-hotplug.c +++ b/block/monitor/block-hmp-cmds.c @@ -1,5 +1,5 @@ /* - * QEMU device hotplug helpers + * Blockdev HMP commands * * Copyright (c) 2004 Fabrice Bellard * --=20 2.17.2 From nobody Wed Nov 12 21:50:26 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1574444650; cv=none; d=zohomail.com; s=zohoarc; b=E5aRFPQbJ/7672TraujIxPbtZB2KQdqzd4X/X5G7TWN/ynz0bvm3X+kS0XBYyh1SyVFgsbQvC1T6t6Wvv7EumjFxgMemPWPFXxn3CRTeLciPTFU8VfBO+1/x4rCZj74eFi+Fp6bAsvgzuTARIroEevWpdz59JHN9geWIY0B5TNE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1574444650; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=5GCovs3esI15RS6WE7LkKVOifRB6723Wo1B6O2zewfs=; b=RDwQoxuc9zPVe01enCM5foSPM6Mtruh8Zuc47ImrqZICH2ZQ2ag7osI3SSC5XW/Wpqb8+zNMv/mwzshoRNTWGQ1WEPqmXUbLUNSQO9A3ppiDmLbbzqiH6hZYqVhjG2h+vil+p67BSUGjzDxKuqGK+mG4IffEV/vSPdX7wDLPwwI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1574444650990334.68348943628405; Fri, 22 Nov 2019 09:44:10 -0800 (PST) Received: from localhost ([::1]:53450 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYCyU-0004J5-CB for importer@patchew.org; Fri, 22 Nov 2019 12:44:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54081) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYC6b-0005ra-RA for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iYC6a-00047w-EQ for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:25 -0500 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:35662 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iYC6Y-00047C-IE for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:24 -0500 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-386-7lkAvJxLOW-x9I-tw_IYOA-1; Fri, 22 Nov 2019 11:48:18 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E57B2107ACC5; Fri, 22 Nov 2019 16:48:17 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.46]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2140B66094; Fri, 22 Nov 2019 16:48:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574441302; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5GCovs3esI15RS6WE7LkKVOifRB6723Wo1B6O2zewfs=; b=ANdVbvNw71nLqJKkmz2DYJj0H4L8ShP03MqkPdFYIeUF3FqGhFxB/zkO9YvLBBh9exGCvs CvTYpfsopyQCCkI5cqy+qyKYuopwO2emXWQewIHqqsrn6RK1KqxauPryAp5jLjz5sbKGMD Hfe3T/+Syw4yoEmWbTfZ9PcVoo/G+LM= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v2 3/9] monitor/hmp: move hmp_drive_del and hmp_commit to block-hmp-cmds.c Date: Fri, 22 Nov 2019 18:48:01 +0200 Message-Id: <20191122164807.27938-4-mlevitsk@redhat.com> In-Reply-To: <20191122164807.27938-1-mlevitsk@redhat.com> References: <20191122164807.27938-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-MC-Unique: 7lkAvJxLOW-x9I-tw_IYOA-1 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 205.139.110.61 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, Markus Armbruster , "Dr. David Alan Gilbert" , Maxim Levitsky , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Maxim Levitsky Reviewed-by: Dr. David Alan Gilbert --- block/monitor/block-hmp-cmds.c | 97 +++++++++++++++++++++++++++++++++- blockdev.c | 95 --------------------------------- 2 files changed, 96 insertions(+), 96 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index 21ff6fa9a9..8884618238 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -33,7 +33,7 @@ #include "sysemu/sysemu.h" #include "monitor/monitor.h" #include "block/block_int.h" - +#include "qapi/qapi-commands-block.h" =20 void hmp_drive_add(Monitor *mon, const QDict *qdict) { @@ -82,3 +82,98 @@ err: blk_unref(blk); } } + +void hmp_drive_del(Monitor *mon, const QDict *qdict) +{ + const char *id =3D qdict_get_str(qdict, "id"); + BlockBackend *blk; + BlockDriverState *bs; + AioContext *aio_context; + Error *local_err =3D NULL; + + bs =3D bdrv_find_node(id); + if (bs) { + qmp_blockdev_del(id, &local_err); + if (local_err) { + error_report_err(local_err); + } + return; + } + + blk =3D blk_by_name(id); + if (!blk) { + error_report("Device '%s' not found", id); + return; + } + + if (!blk_legacy_dinfo(blk)) { + error_report("Deleting device added with blockdev-add" + " is not supported"); + return; + } + + aio_context =3D blk_get_aio_context(blk); + aio_context_acquire(aio_context); + + bs =3D blk_bs(blk); + if (bs) { + if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_DRIVE_DEL, &local_err)) { + error_report_err(local_err); + aio_context_release(aio_context); + return; + } + + blk_remove_bs(blk); + } + + /* Make the BlockBackend and the attached BlockDriverState anonymous */ + monitor_remove_blk(blk); + + /* If this BlockBackend has a device attached to it, its refcount will= be + * decremented when the device is removed; otherwise we have to do so = here. + */ + if (blk_get_attached_dev(blk)) { + /* Further I/O must not pause the guest */ + blk_set_on_error(blk, BLOCKDEV_ON_ERROR_REPORT, + BLOCKDEV_ON_ERROR_REPORT); + } else { + blk_unref(blk); + } + + aio_context_release(aio_context); +} + +void hmp_commit(Monitor *mon, const QDict *qdict) +{ + const char *device =3D qdict_get_str(qdict, "device"); + BlockBackend *blk; + int ret; + + if (!strcmp(device, "all")) { + ret =3D blk_commit_all(); + } else { + BlockDriverState *bs; + AioContext *aio_context; + + blk =3D blk_by_name(device); + if (!blk) { + error_report("Device '%s' not found", device); + return; + } + if (!blk_is_available(blk)) { + error_report("Device '%s' has no medium", device); + return; + } + + bs =3D blk_bs(blk); + aio_context =3D bdrv_get_aio_context(bs); + aio_context_acquire(aio_context); + + ret =3D bdrv_commit(bs); + + aio_context_release(aio_context); + } + if (ret < 0) { + error_report("'commit' error for '%s': %s", device, strerror(-ret)= ); + } +} diff --git a/blockdev.c b/blockdev.c index 8e029e9c01..df43e0aaef 100644 --- a/blockdev.c +++ b/blockdev.c @@ -1074,41 +1074,6 @@ static BlockBackend *qmp_get_blk(const char *blk_nam= e, const char *qdev_id, return blk; } =20 -void hmp_commit(Monitor *mon, const QDict *qdict) -{ - const char *device =3D qdict_get_str(qdict, "device"); - BlockBackend *blk; - int ret; - - if (!strcmp(device, "all")) { - ret =3D blk_commit_all(); - } else { - BlockDriverState *bs; - AioContext *aio_context; - - blk =3D blk_by_name(device); - if (!blk) { - error_report("Device '%s' not found", device); - return; - } - if (!blk_is_available(blk)) { - error_report("Device '%s' has no medium", device); - return; - } - - bs =3D blk_bs(blk); - aio_context =3D bdrv_get_aio_context(bs); - aio_context_acquire(aio_context); - - ret =3D bdrv_commit(bs); - - aio_context_release(aio_context); - } - if (ret < 0) { - error_report("'commit' error for '%s': %s", device, strerror(-ret)= ); - } -} - static void blockdev_do_action(TransactionAction *action, Error **errp) { TransactionActionList list; @@ -3101,66 +3066,6 @@ BlockDirtyBitmapSha256 *qmp_x_debug_block_dirty_bitm= ap_sha256(const char *node, return ret; } =20 -void hmp_drive_del(Monitor *mon, const QDict *qdict) -{ - const char *id =3D qdict_get_str(qdict, "id"); - BlockBackend *blk; - BlockDriverState *bs; - AioContext *aio_context; - Error *local_err =3D NULL; - - bs =3D bdrv_find_node(id); - if (bs) { - qmp_blockdev_del(id, &local_err); - if (local_err) { - error_report_err(local_err); - } - return; - } - - blk =3D blk_by_name(id); - if (!blk) { - error_report("Device '%s' not found", id); - return; - } - - if (!blk_legacy_dinfo(blk)) { - error_report("Deleting device added with blockdev-add" - " is not supported"); - return; - } - - aio_context =3D blk_get_aio_context(blk); - aio_context_acquire(aio_context); - - bs =3D blk_bs(blk); - if (bs) { - if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_DRIVE_DEL, &local_err)) { - error_report_err(local_err); - aio_context_release(aio_context); - return; - } - - blk_remove_bs(blk); - } - - /* Make the BlockBackend and the attached BlockDriverState anonymous */ - monitor_remove_blk(blk); - - /* If this BlockBackend has a device attached to it, its refcount will= be - * decremented when the device is removed; otherwise we have to do so = here. - */ - if (blk_get_attached_dev(blk)) { - /* Further I/O must not pause the guest */ - blk_set_on_error(blk, BLOCKDEV_ON_ERROR_REPORT, - BLOCKDEV_ON_ERROR_REPORT); - } else { - blk_unref(blk); - } - - aio_context_release(aio_context); -} - void qmp_block_resize(bool has_device, const char *device, bool has_node_name, const char *node_name, int64_t size, Error **errp) --=20 2.17.2 From nobody Wed Nov 12 21:50:26 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1574444171; cv=none; d=zohomail.com; s=zohoarc; b=XuN9TlJUzqIp9LhbD59SnHX3IKQQen6boUkv/BYV6JUgslWoYxUMX1k6lr2Tx4toLraisecra8rOohm3FQX23Q4RrBqVsY0/iCbt/Xv51m5lFN3w3DSdez1phVkEuPtRzbZaFSyAlLGn5fZ/iqFErfDzIZBefstiziaF6PBOuSs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1574444171; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=bFc4vWFbcdoKHeLCl5y883Lkv2xRbfXZYzJqUEuvLD0=; b=hF9aehLOsCVE49J67pqs2CHZLr2leN4GgtcHW85XntGZ6YFKvAMTtMmpbkbS2CfU1VSaiNw4j/8y1ju6IA4GS+4prFQMtSrq5Yf8ozupDeYuVlEoLe9rGFPHwQtkM7cQuThpfRTDDZaMu6BFciLMq55NyOEo18u45trGVBQBOgE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1574444171823691.8427868229744; Fri, 22 Nov 2019 09:36:11 -0800 (PST) Received: from localhost ([::1]:53394 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYCqk-0007uE-B8 for importer@patchew.org; Fri, 22 Nov 2019 12:36:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54107) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYC6d-0005sI-9P for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iYC6b-00048c-SU for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:27 -0500 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:34171 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iYC6b-00048B-OR for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:25 -0500 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-406-nCdsm-R8OZihECmy2VzCEw-1; Fri, 22 Nov 2019 11:48:21 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 21606107ACC4; Fri, 22 Nov 2019 16:48:20 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.46]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4A5D466094; Fri, 22 Nov 2019 16:48:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574441304; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bFc4vWFbcdoKHeLCl5y883Lkv2xRbfXZYzJqUEuvLD0=; b=UED3nk1/aL6WYmHPYFLjMhr5I/jyIQgPX8/sK9pilwAApx8I+Hf5U/5731gjCnZNOcBUGN bb6TG5k/jNxL1FjgKUCitwYIbZ8Z+FGyIUA7h4Ul5xPk77H/LEUhl0nngyESAIqmQjufK0 V1OQ5bAW3+Sj1/uejppRBYsypNctppQ= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v2 4/9] monitor/hmp: move hmp_drive_mirror and hmp_drive_backup to block-hmp-cmds.c Date: Fri, 22 Nov 2019 18:48:02 +0200 Message-Id: <20191122164807.27938-5-mlevitsk@redhat.com> In-Reply-To: <20191122164807.27938-1-mlevitsk@redhat.com> References: <20191122164807.27938-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-MC-Unique: nCdsm-R8OZihECmy2VzCEw-1 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 205.139.110.61 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, Markus Armbruster , "Dr. David Alan Gilbert" , Maxim Levitsky , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Maxim Levitsky Reviewed-by: Dr. David Alan Gilbert --- block/monitor/block-hmp-cmds.c | 61 ++++++++++++++++++++++++++++++++++ monitor/hmp-cmds.c | 58 -------------------------------- 2 files changed, 61 insertions(+), 58 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index 8884618238..5ae899a324 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -34,6 +34,8 @@ #include "monitor/monitor.h" #include "block/block_int.h" #include "qapi/qapi-commands-block.h" +#include "qapi/qmp/qerror.h" +#include "monitor/hmp.h" =20 void hmp_drive_add(Monitor *mon, const QDict *qdict) { @@ -177,3 +179,62 @@ void hmp_commit(Monitor *mon, const QDict *qdict) error_report("'commit' error for '%s': %s", device, strerror(-ret)= ); } } + +void hmp_drive_mirror(Monitor *mon, const QDict *qdict) +{ + const char *filename =3D qdict_get_str(qdict, "target"); + const char *format =3D qdict_get_try_str(qdict, "format"); + bool reuse =3D qdict_get_try_bool(qdict, "reuse", false); + bool full =3D qdict_get_try_bool(qdict, "full", false); + Error *err =3D NULL; + DriveMirror mirror =3D { + .device =3D (char *)qdict_get_str(qdict, "device"), + .target =3D (char *)filename, + .has_format =3D !!format, + .format =3D (char *)format, + .sync =3D full ? MIRROR_SYNC_MODE_FULL : MIRROR_SYNC_MODE_TOP, + .has_mode =3D true, + .mode =3D reuse ? NEW_IMAGE_MODE_EXISTING : NEW_IMAGE_MODE_ABSOLUT= E_PATHS, + .unmap =3D true, + }; + + if (!filename) { + error_setg(&err, QERR_MISSING_PARAMETER, "target"); + hmp_handle_error(mon, &err); + return; + } + qmp_drive_mirror(&mirror, &err); + hmp_handle_error(mon, &err); +} + +void hmp_drive_backup(Monitor *mon, const QDict *qdict) +{ + const char *device =3D qdict_get_str(qdict, "device"); + const char *filename =3D qdict_get_str(qdict, "target"); + const char *format =3D qdict_get_try_str(qdict, "format"); + bool reuse =3D qdict_get_try_bool(qdict, "reuse", false); + bool full =3D qdict_get_try_bool(qdict, "full", false); + bool compress =3D qdict_get_try_bool(qdict, "compress", false); + Error *err =3D NULL; + DriveBackup backup =3D { + .device =3D (char *)device, + .target =3D (char *)filename, + .has_format =3D !!format, + .format =3D (char *)format, + .sync =3D full ? MIRROR_SYNC_MODE_FULL : MIRROR_SYNC_MODE_TOP, + .has_mode =3D true, + .mode =3D reuse ? NEW_IMAGE_MODE_EXISTING : NEW_IMAGE_MODE_ABSOLUT= E_PATHS, + .has_compress =3D !!compress, + .compress =3D compress, + }; + + if (!filename) { + error_setg(&err, QERR_MISSING_PARAMETER, "target"); + hmp_handle_error(mon, &err); + return; + } + + qmp_drive_backup(&backup, &err); + hmp_handle_error(mon, &err); +} + diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index b2551c16d1..aa94a15d74 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1338,64 +1338,6 @@ void hmp_block_resize(Monitor *mon, const QDict *qdi= ct) hmp_handle_error(mon, &err); } =20 -void hmp_drive_mirror(Monitor *mon, const QDict *qdict) -{ - const char *filename =3D qdict_get_str(qdict, "target"); - const char *format =3D qdict_get_try_str(qdict, "format"); - bool reuse =3D qdict_get_try_bool(qdict, "reuse", false); - bool full =3D qdict_get_try_bool(qdict, "full", false); - Error *err =3D NULL; - DriveMirror mirror =3D { - .device =3D (char *)qdict_get_str(qdict, "device"), - .target =3D (char *)filename, - .has_format =3D !!format, - .format =3D (char *)format, - .sync =3D full ? MIRROR_SYNC_MODE_FULL : MIRROR_SYNC_MODE_TOP, - .has_mode =3D true, - .mode =3D reuse ? NEW_IMAGE_MODE_EXISTING : NEW_IMAGE_MODE_ABSOLUT= E_PATHS, - .unmap =3D true, - }; - - if (!filename) { - error_setg(&err, QERR_MISSING_PARAMETER, "target"); - hmp_handle_error(mon, &err); - return; - } - qmp_drive_mirror(&mirror, &err); - hmp_handle_error(mon, &err); -} - -void hmp_drive_backup(Monitor *mon, const QDict *qdict) -{ - const char *device =3D qdict_get_str(qdict, "device"); - const char *filename =3D qdict_get_str(qdict, "target"); - const char *format =3D qdict_get_try_str(qdict, "format"); - bool reuse =3D qdict_get_try_bool(qdict, "reuse", false); - bool full =3D qdict_get_try_bool(qdict, "full", false); - bool compress =3D qdict_get_try_bool(qdict, "compress", false); - Error *err =3D NULL; - DriveBackup backup =3D { - .device =3D (char *)device, - .target =3D (char *)filename, - .has_format =3D !!format, - .format =3D (char *)format, - .sync =3D full ? MIRROR_SYNC_MODE_FULL : MIRROR_SYNC_MODE_TOP, - .has_mode =3D true, - .mode =3D reuse ? NEW_IMAGE_MODE_EXISTING : NEW_IMAGE_MODE_ABSOLUT= E_PATHS, - .has_compress =3D !!compress, - .compress =3D compress, - }; - - if (!filename) { - error_setg(&err, QERR_MISSING_PARAMETER, "target"); - hmp_handle_error(mon, &err); - return; - } - - qmp_drive_backup(&backup, &err); - hmp_handle_error(mon, &err); -} - void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict) { const char *device =3D qdict_get_str(qdict, "device"); --=20 2.17.2 From nobody Wed Nov 12 21:50:26 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1574443904; cv=none; d=zohomail.com; s=zohoarc; b=dcfV6RwzAPI6Xz8dOOCX1nmlQnQ09mYkqDlqn3hJEnA4aKOPuP9pkYvHnLoGafLzxMiSu7hVvgNWVC0ngkEOz4DAc01OPhxc/pCXifxSvjrx8/a54dN/YfpkyjZRSXM15pktznCuPYSM8TV5FcnzOFNyuRxNOViODEg+lCmfVEc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1574443904; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=FasfMAH7F5ghUA69MUlj8nAI9oilFzu1uW+XYZwFYoQ=; b=bDYWqF8T+LSDkoxpV8WZDHkAAawEHLJJOiOOFY2pT15fp7BmlIyHxultByrErPlvb6KcMHp9fQV7gJPpVKSmDj7a2lkpJrjaYs1H9QV3A34LnFsJ5IMOySyG4XCh3AveSfoaMq4+Wt3EpfOMTXpRvDGJRxtweCRmaixdKs9hHic= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1574443904469818.4591974821226; Fri, 22 Nov 2019 09:31:44 -0800 (PST) Received: from localhost ([::1]:53376 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYCmR-0006dZ-Ai for importer@patchew.org; Fri, 22 Nov 2019 12:31:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54122) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYC6e-0005tG-SS for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iYC6d-0004AG-1p for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:28 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:32074 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iYC6c-0004A1-UL for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:26 -0500 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-JBcSpZ6gMce-5j1dVPEdUw-1; Fri, 22 Nov 2019 11:48:23 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 51F051005502; Fri, 22 Nov 2019 16:48:22 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.46]) by smtp.corp.redhat.com (Postfix) with ESMTP id 783327700F; Fri, 22 Nov 2019 16:48:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574441306; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FasfMAH7F5ghUA69MUlj8nAI9oilFzu1uW+XYZwFYoQ=; b=JW5lpDmsh3Wh99HUxDG/KxZb66dblQySQdDtH1V+MDPiLHHA5/qqQUqVX5Zp6A6PhbSyAa 9hYjYMO/tzNbKuAFjrO6FIH38+nCahrroDx4SiKtYuI4CIUooPHLacc+qtXW0WEwIclRon mIiIy7r+EFfAV+6xs0EUkUV9d/rPbPA= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v2 5/9] monitor/hmp: move hmp_block_job* to block-hmp-cmds.c Date: Fri, 22 Nov 2019 18:48:03 +0200 Message-Id: <20191122164807.27938-6-mlevitsk@redhat.com> In-Reply-To: <20191122164807.27938-1-mlevitsk@redhat.com> References: <20191122164807.27938-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-MC-Unique: JBcSpZ6gMce-5j1dVPEdUw-1 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 207.211.31.120 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, Markus Armbruster , "Dr. David Alan Gilbert" , Maxim Levitsky , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Maxim Levitsky Reviewed-by: Dr. David Alan Gilbert --- block/monitor/block-hmp-cmds.c | 52 ++++++++++++++++++++++++++++++++++ monitor/hmp-cmds.c | 52 ---------------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index 5ae899a324..e333de27b1 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -238,3 +238,55 @@ void hmp_drive_backup(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, &err); } =20 + +void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict) +{ + Error *error =3D NULL; + const char *device =3D qdict_get_str(qdict, "device"); + int64_t value =3D qdict_get_int(qdict, "speed"); + + qmp_block_job_set_speed(device, value, &error); + + hmp_handle_error(mon, &error); +} + +void hmp_block_job_cancel(Monitor *mon, const QDict *qdict) +{ + Error *error =3D NULL; + const char *device =3D qdict_get_str(qdict, "device"); + bool force =3D qdict_get_try_bool(qdict, "force", false); + + qmp_block_job_cancel(device, true, force, &error); + + hmp_handle_error(mon, &error); +} + +void hmp_block_job_pause(Monitor *mon, const QDict *qdict) +{ + Error *error =3D NULL; + const char *device =3D qdict_get_str(qdict, "device"); + + qmp_block_job_pause(device, &error); + + hmp_handle_error(mon, &error); +} + +void hmp_block_job_resume(Monitor *mon, const QDict *qdict) +{ + Error *error =3D NULL; + const char *device =3D qdict_get_str(qdict, "device"); + + qmp_block_job_resume(device, &error); + + hmp_handle_error(mon, &error); +} + +void hmp_block_job_complete(Monitor *mon, const QDict *qdict) +{ + Error *error =3D NULL; + const char *device =3D qdict_get_str(qdict, "device"); + + qmp_block_job_complete(device, &error); + + hmp_handle_error(mon, &error); +} diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index aa94a15d74..326276cced 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1976,58 +1976,6 @@ void hmp_block_stream(Monitor *mon, const QDict *qdi= ct) hmp_handle_error(mon, &error); } =20 -void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict) -{ - Error *error =3D NULL; - const char *device =3D qdict_get_str(qdict, "device"); - int64_t value =3D qdict_get_int(qdict, "speed"); - - qmp_block_job_set_speed(device, value, &error); - - hmp_handle_error(mon, &error); -} - -void hmp_block_job_cancel(Monitor *mon, const QDict *qdict) -{ - Error *error =3D NULL; - const char *device =3D qdict_get_str(qdict, "device"); - bool force =3D qdict_get_try_bool(qdict, "force", false); - - qmp_block_job_cancel(device, true, force, &error); - - hmp_handle_error(mon, &error); -} - -void hmp_block_job_pause(Monitor *mon, const QDict *qdict) -{ - Error *error =3D NULL; - const char *device =3D qdict_get_str(qdict, "device"); - - qmp_block_job_pause(device, &error); - - hmp_handle_error(mon, &error); -} - -void hmp_block_job_resume(Monitor *mon, const QDict *qdict) -{ - Error *error =3D NULL; - const char *device =3D qdict_get_str(qdict, "device"); - - qmp_block_job_resume(device, &error); - - hmp_handle_error(mon, &error); -} - -void hmp_block_job_complete(Monitor *mon, const QDict *qdict) -{ - Error *error =3D NULL; - const char *device =3D qdict_get_str(qdict, "device"); - - qmp_block_job_complete(device, &error); - - hmp_handle_error(mon, &error); -} - typedef struct HMPMigrationStatus { QEMUTimer *timer; --=20 2.17.2 From nobody Wed Nov 12 21:50:26 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1574441668; cv=none; d=zohomail.com; s=zohoarc; b=HZHauvMtUxVzXP0tqDo25ZG96IVhJZYGSjpIpNC3HcLSzeBWsH3RAyIXPAPBH9Lkgemy+kHdyXOQLi6Bvi0XHLTaTeesUy+DhT+VP2VQZPwy4pjnJ8Y2zJl7z/3AB04WFfMheAN6iGs+1feClvrbrreQu46HGwDT4zMbAhoWuzE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1574441668; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=iKqafnCqR2aLg/UdQXXO92kdXfQ8opoR83LlgLBIjzQ=; b=nOtc49YKAfClcdXSnXqoLveLP6PGI0zOLEilrV/6DIDo73RGntz2SDJQ/gphYuADvY/IRbVzmjYdg3xOPcUp41I9aq+GIRZh41i7Mqlf8RLvRouw9MiEeDc40Kbl0GqH0/Lvk+QR0lXe1TS4he74LB8XGz2uej0yHfaBsDucL64= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1574441668969690.9339271976812; Fri, 22 Nov 2019 08:54:28 -0800 (PST) Received: from localhost ([::1]:53082 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYCCQ-0000hF-TP for importer@patchew.org; Fri, 22 Nov 2019 11:54:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54145) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYC6l-0005v4-9n for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iYC6j-0004CE-6j for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:35 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:23511 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iYC6f-0004BN-2l for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:31 -0500 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-173-UCPSzsKiNMGaLOqwzQstBA-1; Fri, 22 Nov 2019 11:48:25 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7F3551005502; Fri, 22 Nov 2019 16:48:24 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.46]) by smtp.corp.redhat.com (Postfix) with ESMTP id AA4307700F; Fri, 22 Nov 2019 16:48:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574441308; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iKqafnCqR2aLg/UdQXXO92kdXfQ8opoR83LlgLBIjzQ=; b=h+/tBeH7s58dRT4LyBkjA+dv1MnyILKSmE/DPNbYJprs0Xq13xB6vx6ctOJ8u6k+NlkT0/ 7VqK/wl3LSW1+O1WTl7hDkj5x5zRMXfDPdBketjJleyHV+qyZFEjgAylGHWWJB5vPSClln ndIaftNIUoA2dpBajOT/awIdeXO61+M= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v2 6/9] monitor/hmp: move hmp_snapshot_* to block-hmp-cmds.c Date: Fri, 22 Nov 2019 18:48:04 +0200 Message-Id: <20191122164807.27938-7-mlevitsk@redhat.com> In-Reply-To: <20191122164807.27938-1-mlevitsk@redhat.com> References: <20191122164807.27938-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-MC-Unique: UCPSzsKiNMGaLOqwzQstBA-1 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 207.211.31.81 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, Markus Armbruster , "Dr. David Alan Gilbert" , Maxim Levitsky , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Maxim Levitsky Reviewed-by: Dr. David Alan Gilbert --- block/monitor/block-hmp-cmds.c | 47 ++++++++++++++++++++++++++++++++++ monitor/hmp-cmds.c | 46 --------------------------------- 2 files changed, 47 insertions(+), 46 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index e333de27b1..f3d22c7dd3 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -290,3 +290,50 @@ void hmp_block_job_complete(Monitor *mon, const QDict = *qdict) =20 hmp_handle_error(mon, &error); } + +void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict) +{ + const char *device =3D qdict_get_str(qdict, "device"); + const char *filename =3D qdict_get_try_str(qdict, "snapshot-file"); + const char *format =3D qdict_get_try_str(qdict, "format"); + bool reuse =3D qdict_get_try_bool(qdict, "reuse", false); + enum NewImageMode mode; + Error *err =3D NULL; + + if (!filename) { + /* In the future, if 'snapshot-file' is not specified, the snapshot + will be taken internally. Today it's actually required. */ + error_setg(&err, QERR_MISSING_PARAMETER, "snapshot-file"); + hmp_handle_error(mon, &err); + return; + } + + mode =3D reuse ? NEW_IMAGE_MODE_EXISTING : NEW_IMAGE_MODE_ABSOLUTE_PAT= HS; + qmp_blockdev_snapshot_sync(true, device, false, NULL, + filename, false, NULL, + !!format, format, + true, mode, &err); + hmp_handle_error(mon, &err); +} + +void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict) +{ + const char *device =3D qdict_get_str(qdict, "device"); + const char *name =3D qdict_get_str(qdict, "name"); + Error *err =3D NULL; + + qmp_blockdev_snapshot_internal_sync(device, name, &err); + hmp_handle_error(mon, &err); +} + +void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict) +{ + const char *device =3D qdict_get_str(qdict, "device"); + const char *name =3D qdict_get_str(qdict, "name"); + const char *id =3D qdict_get_try_str(qdict, "id"); + Error *err =3D NULL; + + qmp_blockdev_snapshot_delete_internal_sync(device, !!id, id, + true, name, &err); + hmp_handle_error(mon, &err); +} diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 326276cced..2acdcd6e1e 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1338,52 +1338,6 @@ void hmp_block_resize(Monitor *mon, const QDict *qdi= ct) hmp_handle_error(mon, &err); } =20 -void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict) -{ - const char *device =3D qdict_get_str(qdict, "device"); - const char *filename =3D qdict_get_try_str(qdict, "snapshot-file"); - const char *format =3D qdict_get_try_str(qdict, "format"); - bool reuse =3D qdict_get_try_bool(qdict, "reuse", false); - enum NewImageMode mode; - Error *err =3D NULL; - - if (!filename) { - /* In the future, if 'snapshot-file' is not specified, the snapshot - will be taken internally. Today it's actually required. */ - error_setg(&err, QERR_MISSING_PARAMETER, "snapshot-file"); - hmp_handle_error(mon, &err); - return; - } - - mode =3D reuse ? NEW_IMAGE_MODE_EXISTING : NEW_IMAGE_MODE_ABSOLUTE_PAT= HS; - qmp_blockdev_snapshot_sync(true, device, false, NULL, - filename, false, NULL, - !!format, format, - true, mode, &err); - hmp_handle_error(mon, &err); -} - -void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict) -{ - const char *device =3D qdict_get_str(qdict, "device"); - const char *name =3D qdict_get_str(qdict, "name"); - Error *err =3D NULL; - - qmp_blockdev_snapshot_internal_sync(device, name, &err); - hmp_handle_error(mon, &err); -} - -void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict) -{ - const char *device =3D qdict_get_str(qdict, "device"); - const char *name =3D qdict_get_str(qdict, "name"); - const char *id =3D qdict_get_try_str(qdict, "id"); - Error *err =3D NULL; - - qmp_blockdev_snapshot_delete_internal_sync(device, !!id, id, - true, name, &err); - hmp_handle_error(mon, &err); -} =20 void hmp_loadvm(Monitor *mon, const QDict *qdict) { --=20 2.17.2 From nobody Wed Nov 12 21:50:26 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1574445621; cv=none; d=zohomail.com; s=zohoarc; b=QzcT0G1gLo510CgSNGm+zaFKo6t4H5yzO4SGXw3liIpqNEbCkMrdMExltLDrD1iG5+SmDfPHJ5FZ93oGDoeetOHyzZy6nCmjLwgfMXIITvc/YrYp+LHmibstiDUKCqI34LT/sDffNZLtKXoyBj2Ugy0BmAimFCjlxO20R3C+h3w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1574445621; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=3uplgnk05nmvzXii7ptSX1Nb2C/HeqZjR5kJ19Id48M=; b=GVFjyqw29ytOMjgq65Fd+yY2vfLxWIOUsA6ChHaCY/pcnieOVubdvR/MwyHaFwHRsKqhQCHETcrPxMzjyFgqRv33nUaySt+j/jofOWwG9kWnE7M1zeM/+lYW3rxisLnzpnvInTbQOTtIFhUX1EP1Mwjk84UCW2wOSY23SDZm9Ns= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1574445621603492.6723602887955; Fri, 22 Nov 2019 10:00:21 -0800 (PST) Received: from localhost ([::1]:53546 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYDEB-000535-RJ for importer@patchew.org; Fri, 22 Nov 2019 13:00:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54168) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYC6n-0005ws-21 for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iYC6l-0004Cn-88 for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:36 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:22886 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iYC6j-0004Bl-70 for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:33 -0500 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-141-5v-Rb_NVMRy84jmRGpsx7A-1; Fri, 22 Nov 2019 11:48:27 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B13C4107ACC5; Fri, 22 Nov 2019 16:48:26 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.46]) by smtp.corp.redhat.com (Postfix) with ESMTP id D761577014; Fri, 22 Nov 2019 16:48:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574441311; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3uplgnk05nmvzXii7ptSX1Nb2C/HeqZjR5kJ19Id48M=; b=PNCxHC4ged95KpjCh40va8hIEb2AYejhZDt/Lx7q34E38jU9RmBzvPrda4OkQvgA+t0owq 0A+GJTEBfey3janOcxHgeo7Wk4Bzxepqh0RUiXBVft55xU8zpthF1chW9fsFACp8o/mZhI M7lWdPCnR57Ms4yqSvxJ3gSFGC7Gw8M= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v2 7/9] monitor/hmp: move remaining hmp_block* functions to block-hmp-cmds.c Date: Fri, 22 Nov 2019 18:48:05 +0200 Message-Id: <20191122164807.27938-8-mlevitsk@redhat.com> In-Reply-To: <20191122164807.27938-1-mlevitsk@redhat.com> References: <20191122164807.27938-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-MC-Unique: 5v-Rb_NVMRy84jmRGpsx7A-1 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 207.211.31.120 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, Markus Armbruster , "Dr. David Alan Gilbert" , Maxim Levitsky , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Maxim Levitsky Reviewed-by: Dr. David Alan Gilbert --- block/monitor/block-hmp-cmds.c | 63 +++++++++++++++++++++++++++++++++ monitor/hmp-cmds.c | 64 ---------------------------------- 2 files changed, 63 insertions(+), 64 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index f3d22c7dd3..76951352b1 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -337,3 +337,66 @@ void hmp_snapshot_delete_blkdev_internal(Monitor *mon,= const QDict *qdict) true, name, &err); hmp_handle_error(mon, &err); } + +void hmp_block_resize(Monitor *mon, const QDict *qdict) +{ + const char *device =3D qdict_get_str(qdict, "device"); + int64_t size =3D qdict_get_int(qdict, "size"); + Error *err =3D NULL; + + qmp_block_resize(true, device, false, NULL, size, &err); + hmp_handle_error(mon, &err); +} + +void hmp_block_stream(Monitor *mon, const QDict *qdict) +{ + Error *error =3D NULL; + const char *device =3D qdict_get_str(qdict, "device"); + const char *base =3D qdict_get_try_str(qdict, "base"); + int64_t speed =3D qdict_get_try_int(qdict, "speed", 0); + + qmp_block_stream(true, device, device, base !=3D NULL, base, false, NU= LL, + false, NULL, qdict_haskey(qdict, "speed"), speed, tru= e, + BLOCKDEV_ON_ERROR_REPORT, false, false, false, false, + &error); + + hmp_handle_error(mon, &error); +} + +void hmp_block_passwd(Monitor *mon, const QDict *qdict) +{ + const char *device =3D qdict_get_str(qdict, "device"); + const char *password =3D qdict_get_str(qdict, "password"); + Error *err =3D NULL; + + qmp_block_passwd(true, device, false, NULL, password, &err); + hmp_handle_error(mon, &err); +} + +void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict) +{ + Error *err =3D NULL; + char *device =3D (char *) qdict_get_str(qdict, "device"); + BlockIOThrottle throttle =3D { + .bps =3D qdict_get_int(qdict, "bps"), + .bps_rd =3D qdict_get_int(qdict, "bps_rd"), + .bps_wr =3D qdict_get_int(qdict, "bps_wr"), + .iops =3D qdict_get_int(qdict, "iops"), + .iops_rd =3D qdict_get_int(qdict, "iops_rd"), + .iops_wr =3D qdict_get_int(qdict, "iops_wr"), + }; + + /* qmp_block_set_io_throttle has separate parameters for the + * (deprecated) block device name and the qdev ID but the HMP + * version has only one, so we must decide which one to pass. */ + if (blk_by_name(device)) { + throttle.has_device =3D true; + throttle.device =3D device; + } else { + throttle.has_id =3D true; + throttle.id =3D device; + } + + qmp_block_set_io_throttle(&throttle, &err); + hmp_handle_error(mon, &err); +} diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 2acdcd6e1e..8be48e0af6 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1309,16 +1309,6 @@ void hmp_set_link(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, &err); } =20 -void hmp_block_passwd(Monitor *mon, const QDict *qdict) -{ - const char *device =3D qdict_get_str(qdict, "device"); - const char *password =3D qdict_get_str(qdict, "password"); - Error *err =3D NULL; - - qmp_block_passwd(true, device, false, NULL, password, &err); - hmp_handle_error(mon, &err); -} - void hmp_balloon(Monitor *mon, const QDict *qdict) { int64_t value =3D qdict_get_int(qdict, "value"); @@ -1328,17 +1318,6 @@ void hmp_balloon(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, &err); } =20 -void hmp_block_resize(Monitor *mon, const QDict *qdict) -{ - const char *device =3D qdict_get_str(qdict, "device"); - int64_t size =3D qdict_get_int(qdict, "size"); - Error *err =3D NULL; - - qmp_block_resize(true, device, false, NULL, size, &err); - hmp_handle_error(mon, &err); -} - - void hmp_loadvm(Monitor *mon, const QDict *qdict) { int saved_vm_running =3D runstate_is_running(); @@ -1887,49 +1866,6 @@ void hmp_change(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, &err); } =20 -void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict) -{ - Error *err =3D NULL; - char *device =3D (char *) qdict_get_str(qdict, "device"); - BlockIOThrottle throttle =3D { - .bps =3D qdict_get_int(qdict, "bps"), - .bps_rd =3D qdict_get_int(qdict, "bps_rd"), - .bps_wr =3D qdict_get_int(qdict, "bps_wr"), - .iops =3D qdict_get_int(qdict, "iops"), - .iops_rd =3D qdict_get_int(qdict, "iops_rd"), - .iops_wr =3D qdict_get_int(qdict, "iops_wr"), - }; - - /* qmp_block_set_io_throttle has separate parameters for the - * (deprecated) block device name and the qdev ID but the HMP - * version has only one, so we must decide which one to pass. */ - if (blk_by_name(device)) { - throttle.has_device =3D true; - throttle.device =3D device; - } else { - throttle.has_id =3D true; - throttle.id =3D device; - } - - qmp_block_set_io_throttle(&throttle, &err); - hmp_handle_error(mon, &err); -} - -void hmp_block_stream(Monitor *mon, const QDict *qdict) -{ - Error *error =3D NULL; - const char *device =3D qdict_get_str(qdict, "device"); - const char *base =3D qdict_get_try_str(qdict, "base"); - int64_t speed =3D qdict_get_try_int(qdict, "speed", 0); - - qmp_block_stream(true, device, device, base !=3D NULL, base, false, NU= LL, - false, NULL, qdict_haskey(qdict, "speed"), speed, tru= e, - BLOCKDEV_ON_ERROR_REPORT, false, false, false, false, - &error); - - hmp_handle_error(mon, &error); -} - typedef struct HMPMigrationStatus { QEMUTimer *timer; --=20 2.17.2 From nobody Wed Nov 12 21:50:26 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1574445443; cv=none; d=zohomail.com; s=zohoarc; b=gbq4gKyKWL36pS5xcCQ7yQzC1RXvRHXl6rmd70jx0qHyzzkkB/s9JgeMai1Wrjt0U4fogYV2onaKcrZZ5oOb457/dg+u/544rgGZ5MWS4kL4PChwbwAEemkGdtFu/6sRcB9IrkLyBdjZjS+RrXMP8apAnOjfgZOxeBqM+8VQifg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1574445443; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=bgK5Xo36lDrENAHEJy6DofaTGP8Y8rbG8Btlz+6uNy8=; b=eX6i6S5EvuWdFaN4MWxBaofaO8/Tnt26WLAtNERLLV8qgA6BRP5IUVG5iDEoYucYqvC1QyKdAxWIT6HOyKdLG12xttyO8cXy0ObiPQjdHMnvCEkdW2pvQb1UU9uSCYGnwW+VSFQvUmznUdRBa8EclIXbUWgzEuzxxE4Z2FsGT0w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1574445443527423.8022596701286; Fri, 22 Nov 2019 09:57:23 -0800 (PST) Received: from localhost ([::1]:53510 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYDBH-0002R8-Bq for importer@patchew.org; Fri, 22 Nov 2019 12:57:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54283) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYC7D-0005z1-0J for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:49:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iYC75-0004Kq-6v for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:58 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:53982 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iYC6t-0004Dj-6Z for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:44 -0500 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-196-VA1tVi5HP7arFCH8CrSbjQ-1; Fri, 22 Nov 2019 11:48:30 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 189B210509B6; Fri, 22 Nov 2019 16:48:29 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.46]) by smtp.corp.redhat.com (Postfix) with ESMTP id 14C5877010; Fri, 22 Nov 2019 16:48:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574441315; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bgK5Xo36lDrENAHEJy6DofaTGP8Y8rbG8Btlz+6uNy8=; b=UDGiH8RUuJiUiiulPxodS4l50EycHIUo1lg0Q9CGoWDLEypIsfXBj6CpFQ4K+LrX3tzZT+ TXagPQLCILEhhs8KRQTiIrs+kNZTWaKwlN1aD8BKw8n0xbIxC0RbEk23iSb4PPIIJCjfaS msreJSbaMDhaSfjAjWEKiEywtSPiYjU= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v2 8/9] monitor/hmp: move hmp_info_block* to block-hmp-cmds.c Date: Fri, 22 Nov 2019 18:48:06 +0200 Message-Id: <20191122164807.27938-9-mlevitsk@redhat.com> In-Reply-To: <20191122164807.27938-1-mlevitsk@redhat.com> References: <20191122164807.27938-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-MC-Unique: VA1tVi5HP7arFCH8CrSbjQ-1 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 205.139.110.120 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, Markus Armbruster , "Dr. David Alan Gilbert" , Maxim Levitsky , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Maxim Levitsky Reviewed-by: Dr. David Alan Gilbert --- block/monitor/block-hmp-cmds.c | 247 +++++++++++++++++++++++++++++++++ monitor/hmp-cmds.c | 245 -------------------------------- 2 files changed, 247 insertions(+), 245 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index 76951352b1..c943dccd03 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -33,6 +33,7 @@ #include "sysemu/sysemu.h" #include "monitor/monitor.h" #include "block/block_int.h" +#include "block/qapi.h" #include "qapi/qapi-commands-block.h" #include "qapi/qmp/qerror.h" #include "monitor/hmp.h" @@ -400,3 +401,249 @@ void hmp_block_set_io_throttle(Monitor *mon, const QD= ict *qdict) qmp_block_set_io_throttle(&throttle, &err); hmp_handle_error(mon, &err); } + +static void print_block_info(Monitor *mon, BlockInfo *info, + BlockDeviceInfo *inserted, bool verbose) +{ + ImageInfo *image_info; + + assert(!info || !info->has_inserted || info->inserted =3D=3D inserted); + + if (info && *info->device) { + monitor_printf(mon, "%s", info->device); + if (inserted && inserted->has_node_name) { + monitor_printf(mon, " (%s)", inserted->node_name); + } + } else { + assert(info || inserted); + monitor_printf(mon, "%s", + inserted && inserted->has_node_name ? inserted->nod= e_name + : info && info->has_qdev ? info->qdev + : ""); + } + + if (inserted) { + monitor_printf(mon, ": %s (%s%s%s)\n", + inserted->file, + inserted->drv, + inserted->ro ? ", read-only" : "", + inserted->encrypted ? ", encrypted" : ""); + } else { + monitor_printf(mon, ": [not inserted]\n"); + } + + if (info) { + if (info->has_qdev) { + monitor_printf(mon, " Attached to: %s\n", info->qdev); + } + if (info->has_io_status && info->io_status !=3D BLOCK_DEVICE_IO_ST= ATUS_OK) { + monitor_printf(mon, " I/O status: %s\n", + BlockDeviceIoStatus_str(info->io_status)); + } + + if (info->removable) { + monitor_printf(mon, " Removable device: %slocked, tray %s\n= ", + info->locked ? "" : "not ", + info->tray_open ? "open" : "closed"); + } + } + + + if (!inserted) { + return; + } + + monitor_printf(mon, " Cache mode: %s%s%s\n", + inserted->cache->writeback ? "writeback" : "writethroug= h", + inserted->cache->direct ? ", direct" : "", + inserted->cache->no_flush ? ", ignore flushes" : ""); + + if (inserted->has_backing_file) { + monitor_printf(mon, + " Backing file: %s " + "(chain depth: %" PRId64 ")\n", + inserted->backing_file, + inserted->backing_file_depth); + } + + if (inserted->detect_zeroes !=3D BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF) { + monitor_printf(mon, " Detect zeroes: %s\n", + BlockdevDetectZeroesOptions_str(inserted->detect_zeroes)); + } + + if (inserted->bps || inserted->bps_rd || inserted->bps_wr || + inserted->iops || inserted->iops_rd || inserted->iops_wr) + { + monitor_printf(mon, " I/O throttling: bps=3D%" PRId64 + " bps_rd=3D%" PRId64 " bps_wr=3D%" PRId64 + " bps_max=3D%" PRId64 + " bps_rd_max=3D%" PRId64 + " bps_wr_max=3D%" PRId64 + " iops=3D%" PRId64 " iops_rd=3D%" PRId64 + " iops_wr=3D%" PRId64 + " iops_max=3D%" PRId64 + " iops_rd_max=3D%" PRId64 + " iops_wr_max=3D%" PRId64 + " iops_size=3D%" PRId64 + " group=3D%s\n", + inserted->bps, + inserted->bps_rd, + inserted->bps_wr, + inserted->bps_max, + inserted->bps_rd_max, + inserted->bps_wr_max, + inserted->iops, + inserted->iops_rd, + inserted->iops_wr, + inserted->iops_max, + inserted->iops_rd_max, + inserted->iops_wr_max, + inserted->iops_size, + inserted->group); + } + + if (verbose) { + monitor_printf(mon, "\nImages:\n"); + image_info =3D inserted->image; + while (1) { + bdrv_image_info_dump(image_info); + if (image_info->has_backing_image) { + image_info =3D image_info->backing_image; + } else { + break; + } + } + } +} + +void hmp_info_block(Monitor *mon, const QDict *qdict) +{ + BlockInfoList *block_list, *info; + BlockDeviceInfoList *blockdev_list, *blockdev; + const char *device =3D qdict_get_try_str(qdict, "device"); + bool verbose =3D qdict_get_try_bool(qdict, "verbose", false); + bool nodes =3D qdict_get_try_bool(qdict, "nodes", false); + bool printed =3D false; + + /* Print BlockBackend information */ + if (!nodes) { + block_list =3D qmp_query_block(NULL); + } else { + block_list =3D NULL; + } + + for (info =3D block_list; info; info =3D info->next) { + if (device && strcmp(device, info->value->device)) { + continue; + } + + if (info !=3D block_list) { + monitor_printf(mon, "\n"); + } + + print_block_info(mon, info->value, info->value->has_inserted + ? info->value->inserted : NULL, + verbose); + printed =3D true; + } + + qapi_free_BlockInfoList(block_list); + + if ((!device && !nodes) || printed) { + return; + } + + /* Print node information */ + blockdev_list =3D qmp_query_named_block_nodes(NULL); + for (blockdev =3D blockdev_list; blockdev; blockdev =3D blockdev->next= ) { + assert(blockdev->value->has_node_name); + if (device && strcmp(device, blockdev->value->node_name)) { + continue; + } + + if (blockdev !=3D blockdev_list) { + monitor_printf(mon, "\n"); + } + + print_block_info(mon, NULL, blockdev->value, verbose); + } + qapi_free_BlockDeviceInfoList(blockdev_list); +} + +void hmp_info_blockstats(Monitor *mon, const QDict *qdict) +{ + BlockStatsList *stats_list, *stats; + + stats_list =3D qmp_query_blockstats(false, false, NULL); + + for (stats =3D stats_list; stats; stats =3D stats->next) { + if (!stats->value->has_device) { + continue; + } + + monitor_printf(mon, "%s:", stats->value->device); + monitor_printf(mon, " rd_bytes=3D%" PRId64 + " wr_bytes=3D%" PRId64 + " rd_operations=3D%" PRId64 + " wr_operations=3D%" PRId64 + " flush_operations=3D%" PRId64 + " wr_total_time_ns=3D%" PRId64 + " rd_total_time_ns=3D%" PRId64 + " flush_total_time_ns=3D%" PRId64 + " rd_merged=3D%" PRId64 + " wr_merged=3D%" PRId64 + " idle_time_ns=3D%" PRId64 + "\n", + stats->value->stats->rd_bytes, + stats->value->stats->wr_bytes, + stats->value->stats->rd_operations, + stats->value->stats->wr_operations, + stats->value->stats->flush_operations, + stats->value->stats->wr_total_time_ns, + stats->value->stats->rd_total_time_ns, + stats->value->stats->flush_total_time_ns, + stats->value->stats->rd_merged, + stats->value->stats->wr_merged, + stats->value->stats->idle_time_ns); + } + + qapi_free_BlockStatsList(stats_list); +} + +void hmp_info_block_jobs(Monitor *mon, const QDict *qdict) +{ + BlockJobInfoList *list; + Error *err =3D NULL; + + list =3D qmp_query_block_jobs(&err); + assert(!err); + + if (!list) { + monitor_printf(mon, "No active jobs\n"); + return; + } + + while (list) { + if (strcmp(list->value->type, "stream") =3D=3D 0) { + monitor_printf(mon, "Streaming device %s: Completed %" PRId64 + " of %" PRId64 " bytes, speed limit %" PRId64 + " bytes/s\n", + list->value->device, + list->value->offset, + list->value->len, + list->value->speed); + } else { + monitor_printf(mon, "Type %s, device %s: Completed %" PRId64 + " of %" PRId64 " bytes, speed limit %" PRId64 + " bytes/s\n", + list->value->type, + list->value->device, + list->value->offset, + list->value->len, + list->value->speed); + } + list =3D list->next; + } + + qapi_free_BlockJobInfoList(list); +} diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 8be48e0af6..1008902bc3 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -468,213 +468,6 @@ void hmp_info_migrate_cache_size(Monitor *mon, const = QDict *qdict) qmp_query_migrate_cache_size(NULL) >> 10); } =20 -static void print_block_info(Monitor *mon, BlockInfo *info, - BlockDeviceInfo *inserted, bool verbose) -{ - ImageInfo *image_info; - - assert(!info || !info->has_inserted || info->inserted =3D=3D inserted); - - if (info && *info->device) { - monitor_printf(mon, "%s", info->device); - if (inserted && inserted->has_node_name) { - monitor_printf(mon, " (%s)", inserted->node_name); - } - } else { - assert(info || inserted); - monitor_printf(mon, "%s", - inserted && inserted->has_node_name ? inserted->nod= e_name - : info && info->has_qdev ? info->qdev - : ""); - } - - if (inserted) { - monitor_printf(mon, ": %s (%s%s%s)\n", - inserted->file, - inserted->drv, - inserted->ro ? ", read-only" : "", - inserted->encrypted ? ", encrypted" : ""); - } else { - monitor_printf(mon, ": [not inserted]\n"); - } - - if (info) { - if (info->has_qdev) { - monitor_printf(mon, " Attached to: %s\n", info->qdev); - } - if (info->has_io_status && info->io_status !=3D BLOCK_DEVICE_IO_ST= ATUS_OK) { - monitor_printf(mon, " I/O status: %s\n", - BlockDeviceIoStatus_str(info->io_status)); - } - - if (info->removable) { - monitor_printf(mon, " Removable device: %slocked, tray %s\n= ", - info->locked ? "" : "not ", - info->tray_open ? "open" : "closed"); - } - } - - - if (!inserted) { - return; - } - - monitor_printf(mon, " Cache mode: %s%s%s\n", - inserted->cache->writeback ? "writeback" : "writethroug= h", - inserted->cache->direct ? ", direct" : "", - inserted->cache->no_flush ? ", ignore flushes" : ""); - - if (inserted->has_backing_file) { - monitor_printf(mon, - " Backing file: %s " - "(chain depth: %" PRId64 ")\n", - inserted->backing_file, - inserted->backing_file_depth); - } - - if (inserted->detect_zeroes !=3D BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF) { - monitor_printf(mon, " Detect zeroes: %s\n", - BlockdevDetectZeroesOptions_str(inserted->detect_zeroes)); - } - - if (inserted->bps || inserted->bps_rd || inserted->bps_wr || - inserted->iops || inserted->iops_rd || inserted->iops_wr) - { - monitor_printf(mon, " I/O throttling: bps=3D%" PRId64 - " bps_rd=3D%" PRId64 " bps_wr=3D%" PRId64 - " bps_max=3D%" PRId64 - " bps_rd_max=3D%" PRId64 - " bps_wr_max=3D%" PRId64 - " iops=3D%" PRId64 " iops_rd=3D%" PRId64 - " iops_wr=3D%" PRId64 - " iops_max=3D%" PRId64 - " iops_rd_max=3D%" PRId64 - " iops_wr_max=3D%" PRId64 - " iops_size=3D%" PRId64 - " group=3D%s\n", - inserted->bps, - inserted->bps_rd, - inserted->bps_wr, - inserted->bps_max, - inserted->bps_rd_max, - inserted->bps_wr_max, - inserted->iops, - inserted->iops_rd, - inserted->iops_wr, - inserted->iops_max, - inserted->iops_rd_max, - inserted->iops_wr_max, - inserted->iops_size, - inserted->group); - } - - if (verbose) { - monitor_printf(mon, "\nImages:\n"); - image_info =3D inserted->image; - while (1) { - bdrv_image_info_dump(image_info); - if (image_info->has_backing_image) { - image_info =3D image_info->backing_image; - } else { - break; - } - } - } -} - -void hmp_info_block(Monitor *mon, const QDict *qdict) -{ - BlockInfoList *block_list, *info; - BlockDeviceInfoList *blockdev_list, *blockdev; - const char *device =3D qdict_get_try_str(qdict, "device"); - bool verbose =3D qdict_get_try_bool(qdict, "verbose", false); - bool nodes =3D qdict_get_try_bool(qdict, "nodes", false); - bool printed =3D false; - - /* Print BlockBackend information */ - if (!nodes) { - block_list =3D qmp_query_block(NULL); - } else { - block_list =3D NULL; - } - - for (info =3D block_list; info; info =3D info->next) { - if (device && strcmp(device, info->value->device)) { - continue; - } - - if (info !=3D block_list) { - monitor_printf(mon, "\n"); - } - - print_block_info(mon, info->value, info->value->has_inserted - ? info->value->inserted : NULL, - verbose); - printed =3D true; - } - - qapi_free_BlockInfoList(block_list); - - if ((!device && !nodes) || printed) { - return; - } - - /* Print node information */ - blockdev_list =3D qmp_query_named_block_nodes(NULL); - for (blockdev =3D blockdev_list; blockdev; blockdev =3D blockdev->next= ) { - assert(blockdev->value->has_node_name); - if (device && strcmp(device, blockdev->value->node_name)) { - continue; - } - - if (blockdev !=3D blockdev_list) { - monitor_printf(mon, "\n"); - } - - print_block_info(mon, NULL, blockdev->value, verbose); - } - qapi_free_BlockDeviceInfoList(blockdev_list); -} - -void hmp_info_blockstats(Monitor *mon, const QDict *qdict) -{ - BlockStatsList *stats_list, *stats; - - stats_list =3D qmp_query_blockstats(false, false, NULL); - - for (stats =3D stats_list; stats; stats =3D stats->next) { - if (!stats->value->has_device) { - continue; - } - - monitor_printf(mon, "%s:", stats->value->device); - monitor_printf(mon, " rd_bytes=3D%" PRId64 - " wr_bytes=3D%" PRId64 - " rd_operations=3D%" PRId64 - " wr_operations=3D%" PRId64 - " flush_operations=3D%" PRId64 - " wr_total_time_ns=3D%" PRId64 - " rd_total_time_ns=3D%" PRId64 - " flush_total_time_ns=3D%" PRId64 - " rd_merged=3D%" PRId64 - " wr_merged=3D%" PRId64 - " idle_time_ns=3D%" PRId64 - "\n", - stats->value->stats->rd_bytes, - stats->value->stats->wr_bytes, - stats->value->stats->rd_operations, - stats->value->stats->wr_operations, - stats->value->stats->flush_operations, - stats->value->stats->wr_total_time_ns, - stats->value->stats->rd_total_time_ns, - stats->value->stats->flush_total_time_ns, - stats->value->stats->rd_merged, - stats->value->stats->wr_merged, - stats->value->stats->idle_time_ns); - } - - qapi_free_BlockStatsList(stats_list); -} =20 #ifdef CONFIG_VNC /* Helper for hmp_info_vnc_clients, _servers */ @@ -1054,44 +847,6 @@ void hmp_info_pci(Monitor *mon, const QDict *qdict) qapi_free_PciInfoList(info_list); } =20 -void hmp_info_block_jobs(Monitor *mon, const QDict *qdict) -{ - BlockJobInfoList *list; - Error *err =3D NULL; - - list =3D qmp_query_block_jobs(&err); - assert(!err); - - if (!list) { - monitor_printf(mon, "No active jobs\n"); - return; - } - - while (list) { - if (strcmp(list->value->type, "stream") =3D=3D 0) { - monitor_printf(mon, "Streaming device %s: Completed %" PRId64 - " of %" PRId64 " bytes, speed limit %" PRId64 - " bytes/s\n", - list->value->device, - list->value->offset, - list->value->len, - list->value->speed); - } else { - monitor_printf(mon, "Type %s, device %s: Completed %" PRId64 - " of %" PRId64 " bytes, speed limit %" PRId64 - " bytes/s\n", - list->value->type, - list->value->device, - list->value->offset, - list->value->len, - list->value->speed); - } - list =3D list->next; - } - - qapi_free_BlockJobInfoList(list); -} - void hmp_info_tpm(Monitor *mon, const QDict *qdict) { TPMInfoList *info_list, *info; --=20 2.17.2 From nobody Wed Nov 12 21:50:26 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1574445246; cv=none; d=zohomail.com; s=zohoarc; b=juckS0GqWjPAxnJvLR3q25vzCXJPjY3HwJ9AaJEKM6LCC9bwqJA8A6e67PM1XrLPFtRwAbPErqeTVykq+Fm/BWv79LCwR+ItieYckvp0MLSd2YAai0yG+d60O+pvAHC2eYy1VGjpTMyGkVhRQdK9I47XvAOSN9Gbd5np8SWsouk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1574445246; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=iHPznuT0+kSysPXt4j+ceaBtcyUhBYBkdlLihcnC3hM=; b=c+mUboooy5+NDskhshcUxFkp3U1YEnnDmSttv7yxJ+YYfADKBESkWq9vSP0jzz2mWP2Wz1xAupuk7fTQWUA8oDSR7bFvZ3wRQYtbZBnP/Pk96eUelKc5btjvdC2CTozNJrC4dT21y1WBZ/ppPEgOW488mciiDdPd/nfb1CaqhZI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1574445246145388.6332117333802; Fri, 22 Nov 2019 09:54:06 -0800 (PST) Received: from localhost ([::1]:53502 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYD85-0000mY-14 for importer@patchew.org; Fri, 22 Nov 2019 12:54:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54205) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYC6p-0005xI-Qz for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iYC6n-0004EY-1r for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:39 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:20991 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iYC6m-0004Db-9K for qemu-devel@nongnu.org; Fri, 22 Nov 2019 11:48:36 -0500 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-167-c1p2fmpjNbKPssWkWmn8Wg-1; Fri, 22 Nov 2019 11:48:32 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 454338024C0; Fri, 22 Nov 2019 16:48:31 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.46]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7000277010; Fri, 22 Nov 2019 16:48:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574441315; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iHPznuT0+kSysPXt4j+ceaBtcyUhBYBkdlLihcnC3hM=; b=esJvMDx/nPvaNBdMXyYwB+3rp0e+9bpyVKVuojLoEIV+kzcEsyNV21Ta+KqnIaE9K6S6pk kUVSlTg+WtwZE43Jylqu9YIp2Iiq7Mgjg+uvg7gG+3FXYhOnhnKcNqq74XCjgLon+sVg99 fq5XmMpua7zEOQacGTKUA6BOzvp+3wQ= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v2 9/9] monitor/hmp: Prefer to use hmp_handle_error for error reporting in block hmp commands Date: Fri, 22 Nov 2019 18:48:07 +0200 Message-Id: <20191122164807.27938-10-mlevitsk@redhat.com> In-Reply-To: <20191122164807.27938-1-mlevitsk@redhat.com> References: <20191122164807.27938-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-MC-Unique: c1p2fmpjNbKPssWkWmn8Wg-1 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 207.211.31.120 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-block@nongnu.org, Markus Armbruster , "Dr. David Alan Gilbert" , Maxim Levitsky , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This way they all will be prefixed with 'Error:' which some parsers (e.g libvirt) need Signed-off-by: Maxim Levitsky Reviewed-by: Dr. David Alan Gilbert --- block/monitor/block-hmp-cmds.c | 35 ++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index c943dccd03..197994716f 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -59,7 +59,6 @@ void hmp_drive_add(Monitor *mon, const QDict *qdict) mc =3D MACHINE_GET_CLASS(current_machine); dinfo =3D drive_new(opts, mc->block_default_type, &err); if (err) { - error_report_err(err); qemu_opts_del(opts); goto err; } @@ -73,7 +72,7 @@ void hmp_drive_add(Monitor *mon, const QDict *qdict) monitor_printf(mon, "OK\n"); break; default: - monitor_printf(mon, "Can't hot-add drive to type %d\n", dinfo->typ= e); + error_setg(&err, "Can't hot-add drive to type %d", dinfo->type); goto err; } return; @@ -84,6 +83,7 @@ err: monitor_remove_blk(blk); blk_unref(blk); } + hmp_handle_error(mon, &err); } =20 void hmp_drive_del(Monitor *mon, const QDict *qdict) @@ -105,14 +105,14 @@ void hmp_drive_del(Monitor *mon, const QDict *qdict) =20 blk =3D blk_by_name(id); if (!blk) { - error_report("Device '%s' not found", id); - return; + error_setg(&local_err, "Device '%s' not found", id); + goto err; } =20 if (!blk_legacy_dinfo(blk)) { - error_report("Deleting device added with blockdev-add" - " is not supported"); - return; + error_setg(&local_err, + "Deleting device added with blockdev-add is not support= ed"); + goto err; } =20 aio_context =3D blk_get_aio_context(blk); @@ -121,9 +121,8 @@ void hmp_drive_del(Monitor *mon, const QDict *qdict) bs =3D blk_bs(blk); if (bs) { if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_DRIVE_DEL, &local_err)) { - error_report_err(local_err); aio_context_release(aio_context); - return; + goto err; } =20 blk_remove_bs(blk); @@ -144,12 +143,15 @@ void hmp_drive_del(Monitor *mon, const QDict *qdict) } =20 aio_context_release(aio_context); +err: + hmp_handle_error(mon, &local_err); } =20 void hmp_commit(Monitor *mon, const QDict *qdict) { const char *device =3D qdict_get_str(qdict, "device"); BlockBackend *blk; + Error *local_err =3D NULL; int ret; =20 if (!strcmp(device, "all")) { @@ -160,12 +162,12 @@ void hmp_commit(Monitor *mon, const QDict *qdict) =20 blk =3D blk_by_name(device); if (!blk) { - error_report("Device '%s' not found", device); - return; + error_setg(&local_err, "Device '%s' not found", device); + goto err; } if (!blk_is_available(blk)) { - error_report("Device '%s' has no medium", device); - return; + error_setg(&local_err, "Device '%s' has no medium", device); + goto err; } =20 bs =3D blk_bs(blk); @@ -177,8 +179,13 @@ void hmp_commit(Monitor *mon, const QDict *qdict) aio_context_release(aio_context); } if (ret < 0) { - error_report("'commit' error for '%s': %s", device, strerror(-ret)= ); + error_setg(&local_err, + "'commit' error for '%s': %s", device, strerror(-ret)); + goto err; } + return; +err: + hmp_handle_error(mon, &local_err); } =20 void hmp_drive_mirror(Monitor *mon, const QDict *qdict) --=20 2.17.2