From nobody Fri May 3 07:00:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=1574276721; cv=none; d=zoho.com; s=zohoarc; b=gj+2bXVif6VY1tEbZeyMfQRcv96PSBw9vWI7mAtyhm8mrO0wKRs+/JB5jrANKmuErNwInN7rjl6r0hG7UbAKIzmnivEq1Kw9c84gnT1aUz+IZJcqW3iPHdZvEcvk7pd2pZdkHQRlXiczylYx9uMmb14AlaDxmj6zJFq3tywITb0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1574276721; 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=MdNqRlF53u89I+fO5aW7kAULypIDmwpdaGGTAXRr/OX4XTDtisc1RDn65CGxRv5LKlgpZPjYkyndXqGLR3+YjsRoGKXOh+nmWXR/SXIAi9qSewpi/d48aI5LWSwyHbIzXnsIMH56Bo0ks6EXq24sa/o8eBePb2QG32MrP+Oimzo= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 157427672176135.43527038973946; Wed, 20 Nov 2019 11:05:21 -0800 (PST) Received: from localhost ([::1]:33728 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVHz-0003Vr-E7 for importer@patchew.org; Wed, 20 Nov 2019 14:05:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42032) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVBu-0006bG-Re for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iXVBs-0002Mf-S8 for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:02 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:39508 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 1iXVBs-0002Lq-Nt for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:00 -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-372-uZ8LHJb4PyiLadgYsflPkg-1; Wed, 20 Nov 2019 13:58:57 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7E48ADB63; Wed, 20 Nov 2019 18:58:56 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.82]) by smtp.corp.redhat.com (Postfix) with ESMTP id AAECD1838A; Wed, 20 Nov 2019 18:58:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574276338; 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=GqxbI0kehDmSR1UEDoOrzixGygAkfoGHAtJBWvTVlDizUFNq3RkndogovZWP2r4aywRqPo 0FztWzyxbQF4R/9cDH203YTkP9U5eUPNJmUEm1iUruZX6WGVD2YSYW+HgLZL/lNw04+44b E7Vm8PsKK6/bxq2qO/BVzhcukMuT0jw= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH 1/9] monitor: uninline add_init_drive Date: Wed, 20 Nov 2019 20:58:42 +0200 Message-Id: <20191120185850.18986-2-mlevitsk@redhat.com> In-Reply-To: <20191120185850.18986-1-mlevitsk@redhat.com> References: <20191120185850.18986-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-MC-Unique: uZ8LHJb4PyiLadgYsflPkg-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" 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 Reviewed-by: Markus Armbruster --- 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 Fri May 3 07:00:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=1574276535; cv=none; d=zoho.com; s=zohoarc; b=f13ERb4gONH/wJMb9yXNwp/Kt4krQJY8cn2KI+UnOKuHKCfAfyFRvucL7W8cE9ANvp4W4ea7mJ9lAEW3QoH3V5EUW59sYr/jIVrcLiQRR9a1NkqQ12mRwvxVyxvDggW9ZGoCVxgowZNcFKq0zrW0FUyBg2iZHNBjVsgu5HkhHpM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1574276535; 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=s7Dn6ysPT3UhQYqSStW1/9KhDEFomQbpGWosePoxc6s=; b=EA5o5YJa93Kfg9Lb/qanLA7pwBTA8Z++eyKWx9gYCdOra1snytumGOQ6oe/NDHDS6u/1t1KFad6h2RI0Iuavi3GSYwvtoi2d90zqjJUmSU8jNV10b67rb0p+dCtzYxkZbaPv9OHsprc5Ett3ffAmRLxR19ZVMGZAl53tMaT7dDs= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1574276535407830.7746841145004; Wed, 20 Nov 2019 11:02:15 -0800 (PST) Received: from localhost ([::1]:33692 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVEv-0000H1-AA for importer@patchew.org; Wed, 20 Nov 2019 14:02:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42080) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVC2-0006hW-7l for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iXVBz-0002OW-5z for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:10 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:47919 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 1iXVBv-0002NV-C0 for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:07 -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-fWhitb7vOlSopqglEa_AWw-1; Wed, 20 Nov 2019 13:58:59 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AFCFF800054; Wed, 20 Nov 2019 18:58:58 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.82]) by smtp.corp.redhat.com (Postfix) with ESMTP id DAB7A1838A; Wed, 20 Nov 2019 18:58:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574276342; 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=s7Dn6ysPT3UhQYqSStW1/9KhDEFomQbpGWosePoxc6s=; b=EAZxOCsM6DpgBYz+eN03tfqwUItNPbCAVLfyn+wAyKAm6TNOk8WlEiu7PVossql0vN5ff8 brgkZc2n50XEMeVLEXAFPLk8iA2Yg9Gagh1T4dTZcL08pqzsJGywoCxefiTYTCCnwJasyT FytszambaCCZgVmn2vV9g9i67iC3xiU= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH 2/9] monitor: rename device-hotplug.c to blockdev-hmp-cmds.c Date: Wed, 20 Nov 2019 20:58:43 +0200 Message-Id: <20191120185850.18986-3-mlevitsk@redhat.com> In-Reply-To: <20191120185850.18986-1-mlevitsk@redhat.com> References: <20191120185850.18986-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-MC-Unique: fWhitb7vOlSopqglEa_AWw-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 | 4 ++-- device-hotplug.c =3D> blockdev-hmp-cmds.c | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) rename device-hotplug.c =3D> blockdev-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..cb33c1873c 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -43,13 +43,13 @@ io-obj-y =3D io/ # single QEMU executable should support all CPUs and machines. =20 ifeq ($(CONFIG_SOFTMMU),y) -common-obj-y =3D blockdev.o blockdev-nbd.o block/ +common-obj-y =3D blockdev.o blockdev-nbd.o blockdev-hmp-cmds.o block/ common-obj-y +=3D bootdevice.o iothread.o 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/device-hotplug.c b/blockdev-hmp-cmds.c similarity index 98% rename from device-hotplug.c rename to blockdev-hmp-cmds.c index 5ce73f0cff..21ff6fa9a9 100644 --- a/device-hotplug.c +++ b/blockdev-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 Fri May 3 07:00:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=1574276545; cv=none; d=zoho.com; s=zohoarc; b=Y3Hhso6LC6wGyNEtrI4EgF+VKEyDToPc6i68fvIbbRA8EjYwonMiJ5LNPnKIV48cn8B+awedPyfTXhPyOLuEwLR2LN860eecst20YUnHtxJO2nnDN/0if/zsMx98HbRjW8A3lwWej+bGwgEaLtPJqie0/Bm/kzF8v4XIXUa6qkU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1574276545; 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=mJt7YiQI1bg6e7bizLROZT3k+bPn0MU5zDcHFFKDsAA=; b=Ed3R9XhFjI8gxSrB5Kk7kjF0C6cjYoo/kwpvv5Fvyp2e+p9kcUAVZvmm2peCf7tAqWPQFLDoKP9oxLpnrPRcdkyMrKV5+GHkGzbswWc2yaTgSK/vqL3MxqrVsFnfnZm9CErcX21sUTdgA9cfaHRFwVSKeDpwO3tocwTlB6fNk/E= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1574276545314289.81155701850514; Wed, 20 Nov 2019 11:02:25 -0800 (PST) Received: from localhost ([::1]:33694 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVF9-0000NN-9V for importer@patchew.org; Wed, 20 Nov 2019 14:02:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42070) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVC1-0006gm-Fb for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iXVBz-0002Oj-Q9 for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:09 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:25049 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 1iXVBx-0002No-G5 for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:07 -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-216-LN5fdXaLPF6EXMngyuH0_Q-1; Wed, 20 Nov 2019 13:59:01 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id DF2581005509; Wed, 20 Nov 2019 18:59:00 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.82]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1729151C79; Wed, 20 Nov 2019 18:58:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574276343; 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=mJt7YiQI1bg6e7bizLROZT3k+bPn0MU5zDcHFFKDsAA=; b=JzYdZXkuGPRKI+ddAsHfuj6lL4+1sbz7tcmZkHUt5m1QL7CnGXkRpbDnfMDzqsuFeYr5vY r2Znv3/DxOfvd4qoZNXsNI5bKKdrJ7sR+8XM76gRpyD0bxafxe6T1+hh9VeNN8qgB4kzWP 3HrvrR/vLY7d3ZNqQdBzHCt7QtioXqo= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH 3/9] monitor: move hmp_drive_del and hmp_commit to blockdev-hmp-cmds.c Date: Wed, 20 Nov 2019 20:58:44 +0200 Message-Id: <20191120185850.18986-4-mlevitsk@redhat.com> In-Reply-To: <20191120185850.18986-1-mlevitsk@redhat.com> References: <20191120185850.18986-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-MC-Unique: LN5fdXaLPF6EXMngyuH0_Q-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 --- blockdev-hmp-cmds.c | 97 ++++++++++++++++++++++++++++++++++++++++++++- blockdev.c | 95 -------------------------------------------- 2 files changed, 96 insertions(+), 96 deletions(-) diff --git a/blockdev-hmp-cmds.c b/blockdev-hmp-cmds.c index 21ff6fa9a9..8884618238 100644 --- a/blockdev-hmp-cmds.c +++ b/blockdev-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 Fri May 3 07:00:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=1574276753; cv=none; d=zoho.com; s=zohoarc; b=T7WdATFc/RmBfeJj4iocbDE7xhbCEb7RKp8O3ONfRGGLjANVjxOn89d7K/uvPP7J0IP73oMicWbH++pDh8C/ncDXeeVK0C2AWINCnCFvFYkh+9t6WzlcsUqEFR5Hj4BXt7VyuWl8bumqMXWtfq5rX08m5Noc2LaqG94ZnTd3yLQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1574276753; 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=2jPXd9RRuJ1QAZuZDD2p3oh3JNFMusAC7ISScYXRgdE=; b=n+rFdYlh7xW3nrcFX/E2qG19Lkt+I7jLKcPmsCaueVoRfTvooUsOn6b6vpDPQvPZS9qm5aDR1Mvih3WVUsAqcZidW+pB0MgBspYFRQuPZwdP3uIB+qwEG/6/CBJdlM3VCsQLkrpTtHu/XVhAlfMVzIam2AOy921U/FFdT1L8sus= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1574276753155772.418610991138; Wed, 20 Nov 2019 11:05:53 -0800 (PST) Received: from localhost ([::1]:33732 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVIV-0003zW-L7 for importer@patchew.org; Wed, 20 Nov 2019 14:05:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42167) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVC7-0006rC-N9 for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iXVC1-0002Po-Ab for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:15 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:42417 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 1iXVC1-0002PT-6L for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:09 -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-367-E6VRTA63P0GY95fW83lAjg-1; Wed, 20 Nov 2019 13:59:04 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1B864800054; Wed, 20 Nov 2019 18:59:03 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.82]) by smtp.corp.redhat.com (Postfix) with ESMTP id 471D863647; Wed, 20 Nov 2019 18:59:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574276348; 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=2jPXd9RRuJ1QAZuZDD2p3oh3JNFMusAC7ISScYXRgdE=; b=F/dPVPlirXVPydZeZVnoe51z481HvTPBObaEXPsZR2mdOdyD1SFEm0Pju/CHX6KezeXpCd KXCSVi7p0Er7rn0v79BpAGP+z/ZoSdfeMop/T6o+HNm04wvk3mE/CSSNfHwEEBLewtvgo1 XHnHd05SGJcibMYWtXcQI6nlnFD7Xb8= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH 4/9] monitor: move hmp_drive_mirror and hmp_drive_backup to blockdev-hmp-cmds.c Date: Wed, 20 Nov 2019 20:58:45 +0200 Message-Id: <20191120185850.18986-5-mlevitsk@redhat.com> In-Reply-To: <20191120185850.18986-1-mlevitsk@redhat.com> References: <20191120185850.18986-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-MC-Unique: E6VRTA63P0GY95fW83lAjg-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 --- blockdev-hmp-cmds.c | 61 +++++++++++++++++++++++++++++++++++++++++++++ monitor/hmp-cmds.c | 58 ------------------------------------------ 2 files changed, 61 insertions(+), 58 deletions(-) diff --git a/blockdev-hmp-cmds.c b/blockdev-hmp-cmds.c index 8884618238..5ae899a324 100644 --- a/blockdev-hmp-cmds.c +++ b/blockdev-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 Fri May 3 07:00:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=1574276750; cv=none; d=zoho.com; s=zohoarc; b=XOsFwg35AenYGsmj0WVfXRgISe0fO21Ia+mfM7z281S/X26KNlD2Jc/kfb7Om0z04tkCea9vyovAjpbmzzU0YIY9rk4Za8wtfKIMUOkRGCxdlwUXYnzHzc9lSQZAi0pllkNgI9xKtws6xFr0Yrnp/OeWUwxtYvY2pM6iOns3phQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1574276750; 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=WPEICsjsxP4kU6JHDhPzxLx2tR0Z9ZtAWPRBNyw1hg0=; b=chW3Ky+i5VkHgkgoQGK3/w1+ahYGVswEzZDM+nPW2P33VzfWUdEGA3Xmh0+pNWNBNkv4e8z00WqasvEKBALX6+EjpFVkXbqMoRzKYoGIGpzck/Zz2FzRxcoeYhlMzljGJ6Y8SzOQVq9k4jxL3Yj8fmVN88auX6e7UAHLgPEsmOY= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1574276750362256.14309859278603; Wed, 20 Nov 2019 11:05:50 -0800 (PST) Received: from localhost ([::1]:33730 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVIS-0003uj-Im for importer@patchew.org; Wed, 20 Nov 2019 14:05:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42139) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVC5-0006nG-Ti for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iXVC2-0002QD-3n for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:13 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:35661 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 1iXVC2-0002Q3-0j for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:10 -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-283-AJaX3AD9Mw-UsvUV4WUmOA-1; Wed, 20 Nov 2019 13:59:06 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4B049184CAA1; Wed, 20 Nov 2019 18:59:05 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.82]) by smtp.corp.redhat.com (Postfix) with ESMTP id 774BC51C7F; Wed, 20 Nov 2019 18:59:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574276349; 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=WPEICsjsxP4kU6JHDhPzxLx2tR0Z9ZtAWPRBNyw1hg0=; b=IJ6KTvFoiBzcFH1vvwhlmlmi681CHbzClQJjG9v/Ef/JV/iUzJxWssbz7LEbXYj9nkilMv QXbtOUjDp2Z/rRnKGYAv072Lmw/mvjFfggCLPfaEVj3HkEdkrxuQKXgSnrYRt1bvPYCxB7 2XwjJK4/syrHmh1isFwZfW3neHkFSlE= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH 5/9] monitor: move hmp_block_job* to blockdev-hmp-cmd.c Date: Wed, 20 Nov 2019 20:58:46 +0200 Message-Id: <20191120185850.18986-6-mlevitsk@redhat.com> In-Reply-To: <20191120185850.18986-1-mlevitsk@redhat.com> References: <20191120185850.18986-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-MC-Unique: AJaX3AD9Mw-UsvUV4WUmOA-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 --- blockdev-hmp-cmds.c | 52 +++++++++++++++++++++++++++++++++++++++++++++ monitor/hmp-cmds.c | 52 --------------------------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/blockdev-hmp-cmds.c b/blockdev-hmp-cmds.c index 5ae899a324..e333de27b1 100644 --- a/blockdev-hmp-cmds.c +++ b/blockdev-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 Fri May 3 07:00:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=1574276561; cv=none; d=zoho.com; s=zohoarc; b=kYbB5FbiXxqGRi7seYiFpUKIAw5pljtZWdt+NWkWYlVwC1G2lluUdwcXgp7K9EqJwM6DbmVn7Hp9JNvQQ78m7bIOx76jgpMuVZ3ff3hHQYfqB6W4++M79kyAFr2HoR0eD6s0VZegAWd7lOl9XcR4i3Zm1UVx8cqmsYQUsfbiug4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1574276561; 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=gJ2Qszn2R04VC6j3FnQMB3gCgXKq6qD9jkiwXRirU9U=; b=Ajsd/TSzgKnI+Gcrkn40lEX56T29XYf2KXKVtNaOaRhyNeEs5NovnQpS5265YzPqELf8VCapH69VtdZCL5QtBQsrhJP3BqhpUMg6w1FfAqYIJkD84FTz5a0XtPboAfBmMpTuLR78IP83X34uCaN97OggzaSJNd3NelLvngydH8U= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1574276561100728.6740245299178; Wed, 20 Nov 2019 11:02:41 -0800 (PST) Received: from localhost ([::1]:33696 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVFO-0000m8-IM for importer@patchew.org; Wed, 20 Nov 2019 14:02:38 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42207) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVCD-00072S-Hx for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iXVC6-0002Sj-6p for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:21 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:49508 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 1iXVC6-0002SX-3l for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:14 -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-105-rBhv_bQ7NCizFeiCU327vQ-1; Wed, 20 Nov 2019 13:59:10 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7D69F184CAA4; Wed, 20 Nov 2019 18:59:09 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.82]) by smtp.corp.redhat.com (Postfix) with ESMTP id A6D0263647; Wed, 20 Nov 2019 18:59:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574276353; 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=gJ2Qszn2R04VC6j3FnQMB3gCgXKq6qD9jkiwXRirU9U=; b=D0Nv7KfOTx7PZYBCTszqsu/+yCPg6+i8qR+7EN63jBzbPjht0KMO6bVpdAokm6MI/1jIb9 DN2k8EcXt55NElJaXrWXUtYI7iKTEF+3U5SXA7YLUScE0a8oI1uQEvv66vi4emeXHIpOtw kKwd8MNW6ohn0f98pZPkalW59cKYibU= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH 6/9] monitor: move hmp_snapshot_* to blockdev-hmp-cmds.c Date: Wed, 20 Nov 2019 20:58:47 +0200 Message-Id: <20191120185850.18986-7-mlevitsk@redhat.com> In-Reply-To: <20191120185850.18986-1-mlevitsk@redhat.com> References: <20191120185850.18986-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-MC-Unique: rBhv_bQ7NCizFeiCU327vQ-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 --- blockdev-hmp-cmds.c | 47 +++++++++++++++++++++++++++++++++++++++++++++ monitor/hmp-cmds.c | 46 -------------------------------------------- 2 files changed, 47 insertions(+), 46 deletions(-) diff --git a/blockdev-hmp-cmds.c b/blockdev-hmp-cmds.c index e333de27b1..f3d22c7dd3 100644 --- a/blockdev-hmp-cmds.c +++ b/blockdev-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 Fri May 3 07:00:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=1574276893; cv=none; d=zoho.com; s=zohoarc; b=kxsePd5/aN57s7gJ4A2LVor7uonvuCyDNQ3zhcWuAEjqSAScs4Md0kWBP7QlcRQLoelEPJvHWutO67oq2vguBnM27RtIobfy/LWDGMXrEWA+OkgaTp4OolnWaMCZcj1hRgTK3L3z6k9pyZzXSqPIjH8Z4pFnijd4hi8aBeXPyqI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1574276893; 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=Bg+QxGnWgAGLhQ/w5EbbApoaMWMmtldCtQd70JohfpA=; b=SYaFCYlvMxBHbnDdKmtnhdAhsB8LqKLpc/UpE5YNQRwCnqs0PCbEXnadBL1zXTmndsPrcdLGeIFtxWjej5Head7z5w9snK8x3wXfSrO/tuegXtOh4GCx9CVqBmiW9kgtj6PaeVe2mTYsPh1oJ7rKzjNvOPgWPEZ5jnwHj+yU+J4= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1574276893395792.6160823320481; Wed, 20 Nov 2019 11:08:13 -0800 (PST) Received: from localhost ([::1]:33758 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVKk-0006aC-VX for importer@patchew.org; Wed, 20 Nov 2019 14:08:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42204) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVCD-00071i-6N for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iXVCB-0002Wu-NS for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:20 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:30830 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 1iXVC7-0002U9-DS for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:19 -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-266-bl2HaCHQOG6qIFLxAUpFLQ-1; Wed, 20 Nov 2019 13:59:12 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AC862DB61; Wed, 20 Nov 2019 18:59:11 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.82]) by smtp.corp.redhat.com (Postfix) with ESMTP id D930A63647; Wed, 20 Nov 2019 18:59:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574276354; 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=Bg+QxGnWgAGLhQ/w5EbbApoaMWMmtldCtQd70JohfpA=; b=PFnhhBILvImVj/kvR8N/8aFG9fjll5OSqGFTBrJqD79vOkP5nrEvTMMJLLDbry8m7AuwrO tCj8qt+iCR5BGRvq6v7sx0P7Zow2T7uh3em1s+lISHTXwQA6to06pglXrk6GyT8Zj8+htv b95fq3MNy/pLhoi+PM0NNKEG2rwwSuo= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH 7/9] monitor: move remaining hmp_block* functions to blockdev-hmp-cmds.c Date: Wed, 20 Nov 2019 20:58:48 +0200 Message-Id: <20191120185850.18986-8-mlevitsk@redhat.com> In-Reply-To: <20191120185850.18986-1-mlevitsk@redhat.com> References: <20191120185850.18986-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-MC-Unique: bl2HaCHQOG6qIFLxAUpFLQ-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 --- blockdev-hmp-cmds.c | 63 ++++++++++++++++++++++++++++++++++++++++++++ monitor/hmp-cmds.c | 64 --------------------------------------------- 2 files changed, 63 insertions(+), 64 deletions(-) diff --git a/blockdev-hmp-cmds.c b/blockdev-hmp-cmds.c index f3d22c7dd3..76951352b1 100644 --- a/blockdev-hmp-cmds.c +++ b/blockdev-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 Fri May 3 07:00:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=1574276902; cv=none; d=zoho.com; s=zohoarc; b=PkrLAQQa/QF/JmYACUfvbew7+N0zp8sz8rhClEKkRqW0EUQt5GGS4/bG9GgA8dIu4uzHjV0F2Ay3e6C7vMCFyYhmmViz9trMipGIt9rKyQRLaLHgBRf6om8uMeEqlcaS3VrwabdQha5QXXRdedz2NUOSeeYrvFRWO1o/6Ct8ifM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1574276902; 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=zyKKe/F5VDH9HGTLWeWhYxKcxN9y4a9rgM4hyN35zcw=; b=FhDKkhaw2zC3MOBCJx6dY0n6HSd1bjX+RfM6UafDxw+B8HbZo7MpoChjnEwUkWSiaNoJE1MI/PzcMLfx4pM7DHdrnVLqcZfZypGyt8/Wh33MmC/wlttFmotKftZDlObXDawt8GCEkS2AWeDMy3+nVBS2C7w4hSMhF8CaJVMNe1A= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1574276902862849.4630384902873; Wed, 20 Nov 2019 11:08:22 -0800 (PST) Received: from localhost ([::1]:33760 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVKs-0006m0-Uo for importer@patchew.org; Wed, 20 Nov 2019 14:08:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42195) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVCC-00070A-8f for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iXVC9-0002Vq-2x for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:20 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:54503 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 1iXVC8-0002VH-UP for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59: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-103-8lOquSrGOMWb9HAR6SGi3g-1; Wed, 20 Nov 2019 13:59:15 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 193D0DB63; Wed, 20 Nov 2019 18:59:14 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.82]) by smtp.corp.redhat.com (Postfix) with ESMTP id 142E61838A; Wed, 20 Nov 2019 18:59:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574276356; 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=zyKKe/F5VDH9HGTLWeWhYxKcxN9y4a9rgM4hyN35zcw=; b=Y7UglEDkuA/5uzoJIlYn01qcYpZ6lJ2kxoQkx09m6OJ+zI8/Zdu8/zGcWFKDS8ayR96yA6 rsKhSBVhq2IMA1iVwaW/aqOCKBZA1kUPbA9jEA8EkIysV+qj3eA6zVOM4pXYirht/6N6we 6/lH26Apw8zM3qPVcqvTrCTeQnDl9/c= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH 8/9] monitor: move hmp_info_block* to blockdev-hmp-cmds.c Date: Wed, 20 Nov 2019 20:58:49 +0200 Message-Id: <20191120185850.18986-9-mlevitsk@redhat.com> In-Reply-To: <20191120185850.18986-1-mlevitsk@redhat.com> References: <20191120185850.18986-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-MC-Unique: 8lOquSrGOMWb9HAR6SGi3g-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 --- blockdev-hmp-cmds.c | 247 ++++++++++++++++++++++++++++++++++++++++++++ monitor/hmp-cmds.c | 245 ------------------------------------------- 2 files changed, 247 insertions(+), 245 deletions(-) diff --git a/blockdev-hmp-cmds.c b/blockdev-hmp-cmds.c index 76951352b1..c943dccd03 100644 --- a/blockdev-hmp-cmds.c +++ b/blockdev-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 Fri May 3 07:00:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=1574277018; cv=none; d=zoho.com; s=zohoarc; b=IqQ6tVIoARhPFdgcv4zEh3YLIvrAXbW/G5nhBQsKP7lxXE9KWfn76N1aXUgNsIESQTTLnUmzBAcVFliUivTV2S8fxsI60GnE6snh9O4MAqDWaBrtScJIsstNOHte5vUPfeI/o17SbjRHKlMHEo6/zNO/KUxqzVmH//qhDAb9tRQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1574277018; 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=M4dvGR4gZEtP4vSQnX6FbVbRkhx4Y683633Zm/XQyJI=; b=G9Di/MXui41Gkns5qWWGSzaBTFyZqmFMuVUw8kGpk6Jm8xEXxgN/FlKY0KldPkU04/+T/8DJPBRCESGL9bL9ckSKxbZ2h57nC2iMg8u7AFIefT8cmIcsCgDmeAfyr1FntzeaxxOfHL21kU7wHelTG196YY10/1EBqbpwzq4IJeY= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1574277018637655.1852454141007; Wed, 20 Nov 2019 11:10:18 -0800 (PST) Received: from localhost ([::1]:33780 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVMn-0000P8-IV for importer@patchew.org; Wed, 20 Nov 2019 14:10:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42252) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iXVCG-000786-TR for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iXVCF-0002YQ-Mo for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:24 -0500 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:26850 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 1iXVCE-0002XP-UM for qemu-devel@nongnu.org; Wed, 20 Nov 2019 13:59:23 -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-412-V28GbecYMMCyLBpNP8agRw-1; Wed, 20 Nov 2019 13:59:17 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4B95D8024C0; Wed, 20 Nov 2019 18:59:16 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.82]) by smtp.corp.redhat.com (Postfix) with ESMTP id 76D5563647; Wed, 20 Nov 2019 18:59:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574276360; 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=M4dvGR4gZEtP4vSQnX6FbVbRkhx4Y683633Zm/XQyJI=; b=dMzMcMxGNYSLFxWUl18d3g2BVg21lENYfWFnaMOdgYxIinOmtCBENxKWyH9HfmEnrfmTVL +M0ebdV2Yp2l466dTkwICKKg0UbaekfahSrVpmdoQtXgGtbf94wxT5gGwhHnmZV5RtB7yJ ZCsFQPK+k9leTMP0scemTyU7KVCW2/8= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH 9/9] monitor/hmp: Prefer to use hmp_handle_error for error reporting in block hmp commands Date: Wed, 20 Nov 2019 20:58:50 +0200 Message-Id: <20191120185850.18986-10-mlevitsk@redhat.com> In-Reply-To: <20191120185850.18986-1-mlevitsk@redhat.com> References: <20191120185850.18986-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-MC-Unique: V28GbecYMMCyLBpNP8agRw-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" 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 --- blockdev-hmp-cmds.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/blockdev-hmp-cmds.c b/blockdev-hmp-cmds.c index c943dccd03..197994716f 100644 --- a/blockdev-hmp-cmds.c +++ b/blockdev-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