From nobody Mon Feb 9 07:40:17 2026 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=1580121510; cv=none; d=zohomail.com; s=zohoarc; b=mCbAYkYSVw766q/+P3K/uKmOTqXiy8bLzqg19IvBn8arQdm12KC6V6qF/lssFskjs5NyY4zPkwdP+Vtj2dpFPaSTDrzkZZMh+a7+RD2BUm48PXJl/MchagrUWXcQrsT9u40U/DgcD5hvMibJN+CDofh0wXixiwhvpDjBIH4HU30= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1580121510; 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=sFkjv3btebeOLT0oNDEIwq9+w4CTYhbKRM0g2bdv1d0=; b=TDLq4B4rxbw9SUVtCo0EloifGNZARTK1Z4qcAIikKfMMVb9MjhzjAbJ5IvUkAqcuDt9f5SKMTLTUSGtCDNLJbQD4dgUA2xwRjYSA79OT4YFk9irbx784IzoK86ch+hyj7qctKhM3U92eFhqqCn7G7rwOgxy3Cg6sMSl+3uiaLpk= 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 1580121510835875.592159934583; Mon, 27 Jan 2020 02:38:30 -0800 (PST) Received: from localhost ([::1]:42630 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1mm-00043v-HS for importer@patchew.org; Mon, 27 Jan 2020 05:38:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42141) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1lR-0002PB-DT for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw1lO-0002W0-Pv for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:04 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:30679 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 1iw1lN-0002TC-ER for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:02 -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-169-SeCwTx_9PtmIIzixYrp3MA-1; Mon, 27 Jan 2020 05:36:58 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 30B63800D41; Mon, 27 Jan 2020 10:36:57 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2DC59F6C1; Mon, 27 Jan 2020 10:36:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580121420; 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=sFkjv3btebeOLT0oNDEIwq9+w4CTYhbKRM0g2bdv1d0=; b=BqmxnWVE+T60zrxgXX66eF3Za5YJgZHLjzZ6hhOnyy5pR6fVPc9J4wWH052xsBB485E3j/ n7Wvy5ohVJ8tgy2Sn40+gumvcLq6cuRgGMGUiNr/8Tq3KREaw+kooBzUaGf6/ubToBTnFC O97cAdoqCBJLG+9RRSRJZBlPS+CQapU= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v3 01/13] usb/dev-storage: remove unused include Date: Mon, 27 Jan 2020 12:36:35 +0200 Message-Id: <20200127103647.17761-2-mlevitsk@redhat.com> In-Reply-To: <20200127103647.17761-1-mlevitsk@redhat.com> References: <20200127103647.17761-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: SeCwTx_9PtmIIzixYrp3MA-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" , Max Reitz , Gerd Hoffmann , Maxim Levitsky 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: Philippe Mathieu-Daud=C3=A9 --- hw/usb/dev-storage.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c index 8545193488..50d12244ab 100644 --- a/hw/usb/dev-storage.c +++ b/hw/usb/dev-storage.c @@ -19,7 +19,6 @@ #include "hw/scsi/scsi.h" #include "ui/console.h" #include "migration/vmstate.h" -#include "monitor/monitor.h" #include "sysemu/sysemu.h" #include "sysemu/block-backend.h" #include "qapi/visitor.h" --=20 2.17.2 From nobody Mon Feb 9 07:40:17 2026 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=1580121510; cv=none; d=zohomail.com; s=zohoarc; b=D5TmDWdybQEsKBjibatEmwCUHg45QddMMIPASjc91Es9lwMJdI1Q+4o+RnFOWxVdsd3bGdA1Kd0KND7rOKjQA/o1NCjMDI1+zf1MpxU4DQefi+gBxZkT3wdn4ywi+Foh46tcqBfDsQnaMoISxky4jU9ovxKBU7kvLOtASxvxMME= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1580121510; 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=xIB5EKz/PP52nepCG9ZIBf61jVupUOv7U1wULQeWDdA=; b=TEopxykqdYozvBXqek8m5zkyYNZp/OeJeIbN5gMNjiQBfXBjHDJoc8EUzzDN92VRE8k1HL/dTOrz9RV1eMGjL9FpJVJ9xO3/YfAkcBA2Jopgw2Em8mSNF27GT2omNZvV2EvygHeY/U3TdDXsjhwqZOiNR39duJsMrap6iBX/C/g= 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 158012151083137.558328459932795; Mon, 27 Jan 2020 02:38:30 -0800 (PST) Received: from localhost ([::1]:42632 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1mn-00047m-Ip for importer@patchew.org; Mon, 27 Jan 2020 05:38:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42186) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1lS-0002PG-NX for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw1lQ-0002XL-IO for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:06 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:22665 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 1iw1lO-0002Vu-SN for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:03 -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-81-ncFaSDdtP0SiosadVhdSXQ-1; Mon, 27 Jan 2020 05:37:00 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 879E1800D4E; Mon, 27 Jan 2020 10:36:59 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id 873B6F6C1; Mon, 27 Jan 2020 10:36:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580121422; 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=xIB5EKz/PP52nepCG9ZIBf61jVupUOv7U1wULQeWDdA=; b=ZpgYkfm7QNfcF/kTdeExbKoyuIY6VY+jOc5TVx/S0WB8D9QWxAh8y+9b0MAqUdaXhOKrev aolHr0BZs5l2Ov33TazerUQ9xjWE7D+LTYf7wQR5ZvxvHZtZnUA/4CA1Inu1+DIuG/LxFh Ja4xgXLaVnW1xRjs/fLHAO16JlU7ics= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v3 02/13] monitor/hmp: uninline add_init_drive Date: Mon, 27 Jan 2020 12:36:36 +0200 Message-Id: <20200127103647.17761-3-mlevitsk@redhat.com> In-Reply-To: <20200127103647.17761-1-mlevitsk@redhat.com> References: <20200127103647.17761-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: ncFaSDdtP0SiosadVhdSXQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" , Max Reitz , Gerd Hoffmann , Maxim Levitsky 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: Markus Armbruster --- device-hotplug.c | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/device-hotplug.c b/device-hotplug.c index f01d53774b..554e4d98db 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; 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 Mon Feb 9 07:40:17 2026 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=1580121523; cv=none; d=zohomail.com; s=zohoarc; b=Jp+Dr9CWjYipKQd5O04Gu32qdH+yMNyxte6zkcLrhjo33CxG8mJp8Z6dUnxC+xkJCajB2um8DSeCaA3BlocbutvUwBUPRuWhzA+NpJT7BSfW28j0uLRgUhl6AD4H8Svoy+PQhjCuZBeS/NFeERXyX1uReI9gaajMWVmzzY3ntCI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1580121523; 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=VSE4aUCWkyE6lXBB4C7/XSqsgq5OFFsdkg9eM2Q8C94=; b=hD8+M04nIyrgWI6KHWwK13pV+cdTe6/bKrEBUXVUXeP4Ea0f0tBk1l6WaptCzT2ZwIwjlSpIg4Kzp9LOnHrGDBmAhxJoATLd/AUhqRmKLQXIJR/bNvsjNwZs+cA/Yr/W9AQgSXWWKRuQ21toxpNsCBt92w+tlelDVGFKr7npsTY= 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 1580121523653341.3234516240923; Mon, 27 Jan 2020 02:38:43 -0800 (PST) Received: from localhost ([::1]:42644 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1n0-0004sc-Gg for importer@patchew.org; Mon, 27 Jan 2020 05:38:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42221) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1lU-0002Pf-5l for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw1lS-0002c7-PK for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:08 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:44432 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 1iw1lS-0002Xv-Ls for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:06 -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-440-PXLQkZPtMj-UaYsSkf9mng-1; Mon, 27 Jan 2020 05:37:02 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E820D800D41; Mon, 27 Jan 2020 10:37:01 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id E214CF6C1; Mon, 27 Jan 2020 10:36:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580121424; 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=VSE4aUCWkyE6lXBB4C7/XSqsgq5OFFsdkg9eM2Q8C94=; b=Q0tsz26MMQ+vOx4/jarU3MFqwZ0RV+JbEZDVOkPwVcjlJmIfSZFGLJohwduJWqLFBj01oO vNEjHZ9taDtmfjxe8NNI1ot3/onGe9QR2BHvWUQx65DhKWwUOBr/EsvHNFktL+UIV0v9gx 4JlmvOxfuTU/nWATYJCuhML2yzuS+28= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v3 03/13] monitor/hmp: rename device-hotplug.c to block/monitor/block-hmp-cmds.c Date: Mon, 27 Jan 2020 12:36:37 +0200 Message-Id: <20200127103647.17761-4-mlevitsk@redhat.com> In-Reply-To: <20200127103647.17761-1-mlevitsk@redhat.com> References: <20200127103647.17761-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: PXLQkZPtMj-UaYsSkf9mng-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" , Max Reitz , Gerd Hoffmann , Maxim Levitsky 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. Also change the license of that file to GPL2+ since most of the code that will be moved there is under that license Also add block-hmp-commands.h to contain prototypes of these functions Signed-off-by: Maxim Levitsky Reviewed-by: Markus Armbruster --- MAINTAINERS | 1 + Makefile.objs | 2 +- block/Makefile.objs | 1 + block/monitor/Makefile.objs | 1 + .../monitor/block-hmp-cmds.c | 23 ++++--------------- include/block/block-hmp-commands.h | 8 +++++++ include/sysemu/sysemu.h | 3 --- monitor/misc.c | 1 + 8 files changed, 18 insertions(+), 22 deletions(-) create mode 100644 block/monitor/Makefile.objs rename device-hotplug.c =3D> block/monitor/block-hmp-cmds.c (55%) create mode 100644 include/block/block-hmp-commands.h diff --git a/MAINTAINERS b/MAINTAINERS index f6511d5120..5d50d09ad8 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1882,6 +1882,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 ff396b9209..15209eb6b5 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -48,7 +48,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 330529b0b7..3f65544a6b 100644 --- a/block/Makefile.objs +++ b/block/Makefile.objs @@ -44,6 +44,7 @@ block-obj-y +=3D crypto.o block-obj-y +=3D aio_task.o block-obj-y +=3D backup-top.o block-obj-y +=3D filter-compress.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 55% rename from device-hotplug.c rename to block/monitor/block-hmp-cmds.c index 554e4d98db..c65aaa86ea 100644 --- a/device-hotplug.c +++ b/block/monitor/block-hmp-cmds.c @@ -1,25 +1,11 @@ /* - * QEMU device hotplug helpers + * Blockdev HMP commands * * Copyright (c) 2004 Fabrice Bellard * - * Permission is hereby granted, free of charge, to any person obtaining a= copy - * of this software and associated documentation files (the "Software"), t= o deal - * in the Software without restriction, including without limitation the r= ights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included= in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OT= HER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN - * THE SOFTWARE. + * This work is licensed under the terms of the GNU GPL, version 2. + * or (at your option) any later version. + * See the COPYING file in the top-level directory. */ =20 #include "qemu/osdep.h" @@ -33,6 +19,7 @@ #include "sysemu/sysemu.h" #include "monitor/monitor.h" #include "block/block_int.h" +#include "block/block-hmp-commands.h" =20 =20 void hmp_drive_add(Monitor *mon, const QDict *qdict) diff --git a/include/block/block-hmp-commands.h b/include/block/block-hmp-c= ommands.h new file mode 100644 index 0000000000..4f9033a8a6 --- /dev/null +++ b/include/block/block-hmp-commands.h @@ -0,0 +1,8 @@ +#ifndef BLOCK_HMP_COMMANDS_H +#define BLOCK_HMP_COMMANDS_H + +/* HMP commands related to the block layer*/ + +void hmp_drive_add(Monitor *mon, const QDict *qdict); + +#endif diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h index 80c57fdc4e..c48635666d 100644 --- a/include/sysemu/sysemu.h +++ b/include/sysemu/sysemu.h @@ -68,9 +68,6 @@ extern int nb_option_roms; extern const char *prom_envs[MAX_PROM_ENVS]; extern unsigned int nb_prom_envs; =20 -/* generic hotplug */ -void hmp_drive_add(Monitor *mon, const QDict *qdict); - /* pcie aer error injection */ void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict); =20 diff --git a/monitor/misc.c b/monitor/misc.c index de1ca4d114..0466c00830 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -79,6 +79,7 @@ #include "sysemu/cpus.h" #include "qemu/cutils.h" #include "tcg/tcg.h" +#include "block/block-hmp-commands.h" =20 #if defined(TARGET_S390X) #include "hw/s390x/storage-keys.h" --=20 2.17.2 From nobody Mon Feb 9 07:40:17 2026 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=1580121607; cv=none; d=zohomail.com; s=zohoarc; b=d2H4TVgLq9GutNpboTL3Q+N39zP2DhTv/eLxb02HSOAvtRrNyOilPOMFct8KGYw69lPqM4YAiNxljKR3+gfrev4BRviM3SHVY4P0AkpkIDlY8lY/AbTCZfYTgCwn7HVGa0eWYZhBWG0hM54XTtDKXseKrgKwv2l2fpFai/0jlo4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1580121607; 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=497xetPwtROJH9zqL6ej5Q07kVkkJvN6ezgPOmx0y7Y=; b=ILI8pWr2yDd7LVAcRwlxTCQQGMCs3kfMuB8p+PJ/dVe8OAgwk0hDdCjT6lfJcpyOd43a25zLmevtevggl7oP4Z84Y3yFotxs544Ar4R4BxA1CbstU+d8saa9c24bLCh9L9FeSTNMRR+DZxeaYZNXGZ6givC8xMtSCkEj7ITkf00= 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 1580121607855196.30072241778623; Mon, 27 Jan 2020 02:40:07 -0800 (PST) Received: from localhost ([::1]:42690 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1oL-0008HA-Pp for importer@patchew.org; Mon, 27 Jan 2020 05:40:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42241) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1lZ-0002aq-Dq for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw1lX-0002gX-Vj for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:13 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:29415 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 1iw1lX-0002gP-Sq for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:11 -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-427-A1kRoboMOU6J1SjHfU4WIA-1; Mon, 27 Jan 2020 05:37:07 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C28E5100551C; Mon, 27 Jan 2020 10:37:06 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4C1F8451F; Mon, 27 Jan 2020 10:37:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580121431; 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=497xetPwtROJH9zqL6ej5Q07kVkkJvN6ezgPOmx0y7Y=; b=Y8Xg5KS42IofmgnO5IsxnuAUUsf7QPc9jAHQjvFryYspUs7lKgyqV6YFCWk2Yr6AVplR6g XU4b4Jg1xy05JAF2BR5Ez7TpK1Fh8HkgPcOKH8gHamosmFq7Z0sfKit1K/vaoMSQjkvASa 938QItcI7WC5jMzbHVIbQ7EBsmc4eO0= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v3 04/13] monitor/hmp: move hmp_drive_del and hmp_commit to block-hmp-cmds.c Date: Mon, 27 Jan 2020 12:36:38 +0200 Message-Id: <20200127103647.17761-5-mlevitsk@redhat.com> In-Reply-To: <20200127103647.17761-1-mlevitsk@redhat.com> References: <20200127103647.17761-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: A1kRoboMOU6J1SjHfU4WIA-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" , Max Reitz , Gerd Hoffmann , Maxim Levitsky 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 ----------------------------- include/block/block-hmp-commands.h | 3 + include/sysemu/blockdev.h | 4 -- 4 files changed, 99 insertions(+), 100 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index c65aaa86ea..9614c67e77 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -12,6 +12,7 @@ #include "hw/boards.h" #include "sysemu/block-backend.h" #include "sysemu/blockdev.h" +#include "qapi/qapi-commands-block.h" #include "qapi/qmp/qdict.h" #include "qapi/error.h" #include "qemu/config-file.h" @@ -21,7 +22,6 @@ #include "block/block_int.h" #include "block/block-hmp-commands.h" =20 - void hmp_drive_add(Monitor *mon, const QDict *qdict) { Error *err =3D NULL; @@ -69,3 +69,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) diff --git a/include/block/block-hmp-commands.h b/include/block/block-hmp-c= ommands.h index 4f9033a8a6..c5e394c0fc 100644 --- a/include/block/block-hmp-commands.h +++ b/include/block/block-hmp-commands.h @@ -5,4 +5,7 @@ =20 void hmp_drive_add(Monitor *mon, const QDict *qdict); =20 +void hmp_commit(Monitor *mon, const QDict *qdict); +void hmp_drive_del(Monitor *mon, const QDict *qdict); + #endif diff --git a/include/sysemu/blockdev.h b/include/sysemu/blockdev.h index d34c4920dc..a86d99b3d8 100644 --- a/include/sysemu/blockdev.h +++ b/include/sysemu/blockdev.h @@ -57,8 +57,4 @@ QemuOpts *drive_add(BlockInterfaceType type, int index, c= onst char *file, DriveInfo *drive_new(QemuOpts *arg, BlockInterfaceType block_default_type, Error **errp); =20 -/* device-hotplug */ - -void hmp_commit(Monitor *mon, const QDict *qdict); -void hmp_drive_del(Monitor *mon, const QDict *qdict); #endif --=20 2.17.2 From nobody Mon Feb 9 07:40:17 2026 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=1580121728; cv=none; d=zohomail.com; s=zohoarc; b=kthQhe/mB4uv40mmIPrbQro+pQdaQpQrMpOpDidlzaAHcPirWxf8yGnVbI+HzJkG/MEjkWgZPZd7JH7ylDIfjI8rXqnPrSgxiOhyHBvG71+mgA9BcSadHmzl6yuNHCJ95vK7pBcN8LkEp5CHq2Fn+bNqrZDwNe13AwFZtopOkj0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1580121728; 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=NDjvXUBukfhRwJQSnKZ8WLKTPhZssMZ7mCFAtCzLico=; b=dqMd9zWtBQVqG6SPlOR7KVwGRAQBU093Ea9P75gDEFneknow8oMMh23BrNai0VDsu6razP1nPz9kq/eMt8u+vR7gFvKAjPVIa9WbrdQxVOBopz3P9tFSxDUEkSFMexTWsoofK7+38BWqLlvE2QGLPpsBsH/xo4ZGHOBPXo1mMa4= 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 1580121728291905.0131906885026; Mon, 27 Jan 2020 02:42:08 -0800 (PST) Received: from localhost ([::1]:42754 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1qJ-0002xp-7F for importer@patchew.org; Mon, 27 Jan 2020 05:42:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42257) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1la-0002d7-7d for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw1lY-0002hK-PL for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:14 -0500 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:32414 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 1iw1lY-0002h7-Kp for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:12 -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-72-tVaALd9fO_6sKkCBcS3YPw-1; Mon, 27 Jan 2020 05:37:10 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2E2E9107ACC4; Mon, 27 Jan 2020 10:37:09 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id 28C1FF6C1; Mon, 27 Jan 2020 10:37:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580121432; 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=NDjvXUBukfhRwJQSnKZ8WLKTPhZssMZ7mCFAtCzLico=; b=B5nIrJ/v7C5wT7q7YLEtRe+F88Pnc9aH1JLykMux7Hy+GCbZjMbfMvXwYMnTHts64+zsWp EMSYaKuSLma6qM5NXDxID1gYf3oxt3yCZ5OpWP/mTpOYZaNj9tn6/xuSLNmerCW5HZT5lp WCL2doWRBUdBzs+yWk42viJB1YHWm04= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v3 05/13] monitor/hmp: move hmp_drive_mirror and hmp_drive_backup to block-hmp-cmds.c Date: Mon, 27 Jan 2020 12:36:39 +0200 Message-Id: <20200127103647.17761-6-mlevitsk@redhat.com> In-Reply-To: <20200127103647.17761-1-mlevitsk@redhat.com> References: <20200127103647.17761-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: tVaALd9fO_6sKkCBcS3YPw-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" , Max Reitz , Gerd Hoffmann , Maxim Levitsky 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 | 64 ++++++++++++++++++++++++++++++ include/block/block-hmp-commands.h | 3 ++ include/monitor/hmp.h | 2 - monitor/hmp-cmds.c | 58 --------------------------- 4 files changed, 67 insertions(+), 60 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index 9614c67e77..ae3890aaab 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -2,6 +2,10 @@ * Blockdev HMP commands * * Copyright (c) 2004 Fabrice Bellard + * Copyright IBM, Corp. 2011 + * + * Authors: + * Anthony Liguori * * This work is licensed under the terms of the GNU GPL, version 2. * or (at your option) any later version. @@ -15,12 +19,14 @@ #include "qapi/qapi-commands-block.h" #include "qapi/qmp/qdict.h" #include "qapi/error.h" +#include "qapi/qmp/qerror.h" #include "qemu/config-file.h" #include "qemu/option.h" #include "sysemu/sysemu.h" #include "monitor/monitor.h" #include "block/block_int.h" #include "block/block-hmp-commands.h" +#include "monitor/hmp.h" =20 void hmp_drive_add(Monitor *mon, const QDict *qdict) { @@ -164,3 +170,61 @@ 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/include/block/block-hmp-commands.h b/include/block/block-hmp-c= ommands.h index c5e394c0fc..fcaf753118 100644 --- a/include/block/block-hmp-commands.h +++ b/include/block/block-hmp-commands.h @@ -8,4 +8,7 @@ void hmp_drive_add(Monitor *mon, const QDict *qdict); void hmp_commit(Monitor *mon, const QDict *qdict); void hmp_drive_del(Monitor *mon, const QDict *qdict); =20 +void hmp_drive_mirror(Monitor *mon, const QDict *qdict); +void hmp_drive_backup(Monitor *mon, const QDict *qdict); + #endif diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index 3d329853b2..c1b363ee57 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -64,8 +64,6 @@ void hmp_block_resize(Monitor *mon, const QDict *qdict); void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict); void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict); void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict); -void hmp_drive_mirror(Monitor *mon, const QDict *qdict); -void hmp_drive_backup(Monitor *mon, const QDict *qdict); void hmp_loadvm(Monitor *mon, const QDict *qdict); void hmp_savevm(Monitor *mon, const QDict *qdict); void hmp_delvm(Monitor *mon, const QDict *qdict); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index d0e0af893a..a70bcb1d16 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1337,64 +1337,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 Mon Feb 9 07:40:17 2026 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=1580121727; cv=none; d=zohomail.com; s=zohoarc; b=krV8eaJxyoPj+OjPg56m0trCph30vorsoAKPG9wklBAb4C1AOSugZNrAj6E17p0ICki+mfKk9kFbcSJulrD6eWROXOojd7Q+JCQZ/RKf828NCfui9hUEf55lntLb3pxm/hoOkX7Lr/P3gizzZeKi5f/W8JQ+EI617mNhn2Gft7o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1580121727; 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=MmFcROfWRkeC1DI3WzPI55BH+QEm/43yZcC21qCHTp0=; b=FTsxH6DsuXuCsV0VhSRjAEs0BgiATMH5wUCuQ4JqERM9J6FSk0DrF9DdSVimKbRJMLjCpMDSd5mmP3zbd+IjA3MJdjMVwj4oYFIXCx9Ggk3Xsx3AIcRHqkoUCnjthWIKnwj1sP6JNHi7i/KLyn8aXnq82Bvj4WYsv/9QZJ+4Cro= 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 1580121727370982.4225158627529; Mon, 27 Jan 2020 02:42:07 -0800 (PST) Received: from localhost ([::1]:42752 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1qI-0002x0-A7 for importer@patchew.org; Mon, 27 Jan 2020 05:42:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42350) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1lj-000302-Cb for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw1lh-0002r0-Tg for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:23 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:37940 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 1iw1lh-0002pv-P7 for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:21 -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-280-JGfzrRyYP7GdZXISCHX3IQ-1; Mon, 27 Jan 2020 05:37:15 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 16DCC800D50; Mon, 27 Jan 2020 10:37:14 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id 85376F6C1; Mon, 27 Jan 2020 10:37:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580121441; 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=MmFcROfWRkeC1DI3WzPI55BH+QEm/43yZcC21qCHTp0=; b=IGFsv7RrhltERvcwUFYHtHpzd9uQtMJ78BnyiWEMHNzgNd7Ok/+kvIhTpEuVN4jFN/dhXT oPW71lUppdKq76wNNoxS3Qwp5VPhpmr3X8/IL8/bY4L5RVtfUggA4uaBO7sYLtmUNnGpah aCqaN+ZGBBHjtLetslaQj1W9COVrer0= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v3 06/13] monitor/hmp: move hmp_block_job* to block-hmp-cmds.c Date: Mon, 27 Jan 2020 12:36:40 +0200 Message-Id: <20200127103647.17761-7-mlevitsk@redhat.com> In-Reply-To: <20200127103647.17761-1-mlevitsk@redhat.com> References: <20200127103647.17761-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: JGfzrRyYP7GdZXISCHX3IQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" , Max Reitz , Gerd Hoffmann , Maxim Levitsky 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 ++++++++++++++++++++++++++++++ include/block/block-hmp-commands.h | 6 ++++ include/monitor/hmp.h | 5 --- monitor/hmp-cmds.c | 52 ------------------------------ 4 files changed, 58 insertions(+), 57 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index ae3890aaab..ed3c350143 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -228,3 +228,55 @@ void hmp_drive_backup(Monitor *mon, const QDict *qdict) qmp_drive_backup(&backup, &err); hmp_handle_error(mon, err); } + +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/include/block/block-hmp-commands.h b/include/block/block-hmp-c= ommands.h index fcaf753118..ea6578a5f6 100644 --- a/include/block/block-hmp-commands.h +++ b/include/block/block-hmp-commands.h @@ -11,4 +11,10 @@ void hmp_drive_del(Monitor *mon, const QDict *qdict); void hmp_drive_mirror(Monitor *mon, const QDict *qdict); void hmp_drive_backup(Monitor *mon, const QDict *qdict); =20 +void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict); +void hmp_block_job_cancel(Monitor *mon, const QDict *qdict); +void hmp_block_job_pause(Monitor *mon, const QDict *qdict); +void hmp_block_job_resume(Monitor *mon, const QDict *qdict); +void hmp_block_job_complete(Monitor *mon, const QDict *qdict); + #endif diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index c1b363ee57..592ce0ccfe 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -87,11 +87,6 @@ void hmp_eject(Monitor *mon, const QDict *qdict); void hmp_change(Monitor *mon, const QDict *qdict); void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict); void hmp_block_stream(Monitor *mon, const QDict *qdict); -void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict); -void hmp_block_job_cancel(Monitor *mon, const QDict *qdict); -void hmp_block_job_pause(Monitor *mon, const QDict *qdict); -void hmp_block_job_resume(Monitor *mon, const QDict *qdict); -void hmp_block_job_complete(Monitor *mon, const QDict *qdict); void hmp_migrate(Monitor *mon, const QDict *qdict); void hmp_device_add(Monitor *mon, const QDict *qdict); void hmp_device_del(Monitor *mon, const QDict *qdict); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index a70bcb1d16..996ce96430 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1975,58 +1975,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 Mon Feb 9 07:40:17 2026 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=1580121608; cv=none; d=zohomail.com; s=zohoarc; b=cOrc+VtYF3uFoNu1LdCiuncsORDCgGvPvphFu1rZLEcC82XEswnZhSm77ivf1SeNhaxkHFK09ZP2H2OTzQTOUa2HWUdEPLyyM6uab2FKovA2gTQ5z3HjNBfU3pzHmKnTte7p/GyhESK4sTLp2Wmqb38nzJBus+/NSpWOBrruXho= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1580121608; 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=oGv9T2GPTuz3dOrNCau3Ule/BMxlDyBkADZLw7tnsdg=; b=b5WTHUM8luFQrm2iumqGq+Y4EXSRA49baagpkbwbJ1GoBaidgqj8SV1/2IjeDIeMXgTe6jGgVHdMzDfPCTJG0z9sb7LgsS6/Ce0bVUStgIHrlo81YlsJdPK6+BIgLSK7QiD1z1k4GgTXpbWQJi0gJDSOd6JTsZnJpXj/XQD4P6A= 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 1580121608049269.4196804195875; Mon, 27 Jan 2020 02:40:08 -0800 (PST) Received: from localhost ([::1]:42692 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1oM-0008Kr-Ug for importer@patchew.org; Mon, 27 Jan 2020 05:40:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42309) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1lh-0002wa-VA for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw1lg-0002ov-Ar for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:21 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:53948 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 1iw1lg-0002oR-6Z for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:20 -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-229-9IBnumEQP1avW2EA3BHMEQ-1; Mon, 27 Jan 2020 05:37:17 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 70417800D41; Mon, 27 Jan 2020 10:37:16 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6FCCFF6C1; Mon, 27 Jan 2020 10:37:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580121440; 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=oGv9T2GPTuz3dOrNCau3Ule/BMxlDyBkADZLw7tnsdg=; b=Egu7MZszGjpc2HHlAjjssaF1wflF5sDsYtMrnpUzagTIeR58kli+4Isse5Y8fsrRpxpuvo jTwdJ3MLvI0Sh9O0EbrOn2ASxQGVZCLWua3Cuwmy7Po7ZMSsqukuFuASoxYBRzHUMg3Rrk 2F1GwoZzD3IHSQ0d40hRBUyg9DB/64w= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v3 07/13] monitor/hmp: move hmp_snapshot_* to block-hmp-cmds.c Date: Mon, 27 Jan 2020 12:36:41 +0200 Message-Id: <20200127103647.17761-8-mlevitsk@redhat.com> In-Reply-To: <20200127103647.17761-1-mlevitsk@redhat.com> References: <20200127103647.17761-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: 9IBnumEQP1avW2EA3BHMEQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" , Max Reitz , Gerd Hoffmann , Maxim Levitsky 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 ++++++++++++++++++++++++++++++ include/block/block-hmp-commands.h | 4 +++ include/monitor/hmp.h | 3 -- monitor/hmp-cmds.c | 47 ------------------------------ 4 files changed, 51 insertions(+), 50 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index ed3c350143..9aa94ea6e0 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -280,3 +280,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/include/block/block-hmp-commands.h b/include/block/block-hmp-c= ommands.h index ea6578a5f6..3fc2daf3a9 100644 --- a/include/block/block-hmp-commands.h +++ b/include/block/block-hmp-commands.h @@ -17,4 +17,8 @@ void hmp_block_job_pause(Monitor *mon, const QDict *qdict= ); void hmp_block_job_resume(Monitor *mon, const QDict *qdict); void hmp_block_job_complete(Monitor *mon, const QDict *qdict); =20 +void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict); +void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict); +void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict); + #endif diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index 592ce0ccfe..6d34e29bb6 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -61,9 +61,6 @@ void hmp_set_link(Monitor *mon, const QDict *qdict); void hmp_block_passwd(Monitor *mon, const QDict *qdict); void hmp_balloon(Monitor *mon, const QDict *qdict); void hmp_block_resize(Monitor *mon, const QDict *qdict); -void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict); -void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict); -void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict); void hmp_loadvm(Monitor *mon, const QDict *qdict); void hmp_savevm(Monitor *mon, const QDict *qdict); void hmp_delvm(Monitor *mon, const QDict *qdict); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 996ce96430..46b46b6dd7 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1337,53 +1337,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); -} - void hmp_loadvm(Monitor *mon, const QDict *qdict) { int saved_vm_running =3D runstate_is_running(); --=20 2.17.2 From nobody Mon Feb 9 07:40:17 2026 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=1580121598; cv=none; d=zohomail.com; s=zohoarc; b=Q3xltbTIYdoEV7uA/vMu+xoXUKghXDrflFhYRbqVZ/fqOTlQidD54lRX26XWueWJ1RA4oFmEJCF1aauSiBlnVAgfrtLzdx2qu3Ms4t+DjhxaZ3d/+wze1VxaV916zj5WTrNVm9GVAwFBFb/jematXU/VF6SaaF4WcD2wm4y4zTk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1580121598; 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=sH/Jm8wqFvAlabLvAmrYRoUC/jk7ZOh1WJoqF40h1gI=; b=JSAL4dJ3fcRzPadM6r8fHFBnQZpAxwjQSXTsAuTbFAVa2t7dhNiM9dbWhugiKbwPjNYFUMLrAn4hZhno3D6J12Y4s3hOHUUdeVkmLXtmj69wPr2mmzQvy5Gj3vi3XgWENjK/nUkUyIDXcTLyJmRTZuUM2TfvtGUBhest+J1JMQ0= 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 1580121598173354.2326134772593; Mon, 27 Jan 2020 02:39:58 -0800 (PST) Received: from localhost ([::1]:42684 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1oD-0007zj-3Z for importer@patchew.org; Mon, 27 Jan 2020 05:39:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42357) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1lj-000315-Pb for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw1li-0002ru-7C for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:23 -0500 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:51588 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 1iw1li-0002qn-1r for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:22 -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-150-68-FB-qQNdiNtaXMPoLPwg-1; Mon, 27 Jan 2020 05:37:19 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id CAEEA107ACC4; Mon, 27 Jan 2020 10:37:18 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id C97BCF6C1; Mon, 27 Jan 2020 10:37:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580121441; 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=sH/Jm8wqFvAlabLvAmrYRoUC/jk7ZOh1WJoqF40h1gI=; b=Ow9JijR9TWSJgLlxmynQap5PaF07E9zsqgKpVCyQZ0rW033FtU5hoc/ubmWv0D0phC+mdM rCTLkQAdAgYSZxW22GPsYXhkGXe77E3hP6tleXV39fsK+UCi/dOdtyBWlgra5R8rYjcFgm Rq/qGcZE+BXLGSCjqX8oB/1e40OGxRQ= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v3 08/13] monitor/hmp: move hmp_nbd_server* to block-hmp-cmds.c Date: Mon, 27 Jan 2020 12:36:42 +0200 Message-Id: <20200127103647.17761-9-mlevitsk@redhat.com> In-Reply-To: <20200127103647.17761-1-mlevitsk@redhat.com> References: <20200127103647.17761-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: 68-FB-qQNdiNtaXMPoLPwg-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" , Max Reitz , Gerd Hoffmann , Maxim Levitsky 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 Reviewed-by: Eric Blake --- block/monitor/block-hmp-cmds.c | 88 ++++++++++++++++++++++++++++++ include/block/block-hmp-commands.h | 5 ++ include/monitor/hmp.h | 4 -- monitor/hmp-cmds.c | 87 ----------------------------- 4 files changed, 93 insertions(+), 91 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index 9aa94ea6e0..df0178d0f9 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -22,8 +22,10 @@ #include "qapi/qmp/qerror.h" #include "qemu/config-file.h" #include "qemu/option.h" +#include "qemu/sockets.h" #include "sysemu/sysemu.h" #include "monitor/monitor.h" +#include "block/nbd.h" #include "block/block_int.h" #include "block/block-hmp-commands.h" #include "monitor/hmp.h" @@ -327,3 +329,89 @@ void hmp_snapshot_delete_blkdev_internal(Monitor *mon,= const QDict *qdict) true, name, &err); hmp_handle_error(mon, err); } + +void hmp_nbd_server_start(Monitor *mon, const QDict *qdict) +{ + const char *uri =3D qdict_get_str(qdict, "uri"); + bool writable =3D qdict_get_try_bool(qdict, "writable", false); + bool all =3D qdict_get_try_bool(qdict, "all", false); + Error *local_err =3D NULL; + BlockInfoList *block_list, *info; + SocketAddress *addr; + + if (writable && !all) { + error_setg(&local_err, "-w only valid together with -a"); + goto exit; + } + + /* First check if the address is valid and start the server. */ + addr =3D socket_parse(uri, &local_err); + if (local_err !=3D NULL) { + goto exit; + } + + nbd_server_start(addr, NULL, NULL, &local_err); + qapi_free_SocketAddress(addr); + if (local_err !=3D NULL) { + goto exit; + } + + if (!all) { + return; + } + + /* Then try adding all block devices. If one fails, close all and + * exit. + */ + block_list =3D qmp_query_block(NULL); + + for (info =3D block_list; info; info =3D info->next) { + if (!info->value->has_inserted) { + continue; + } + + qmp_nbd_server_add(info->value->device, false, NULL, + true, writable, false, NULL, &local_err); + + if (local_err !=3D NULL) { + qmp_nbd_server_stop(NULL); + break; + } + } + + qapi_free_BlockInfoList(block_list); + +exit: + hmp_handle_error(mon, local_err); +} + +void hmp_nbd_server_add(Monitor *mon, const QDict *qdict) +{ + const char *device =3D qdict_get_str(qdict, "device"); + const char *name =3D qdict_get_try_str(qdict, "name"); + bool writable =3D qdict_get_try_bool(qdict, "writable", false); + Error *local_err =3D NULL; + + qmp_nbd_server_add(device, !!name, name, true, writable, + false, NULL, &local_err); + hmp_handle_error(mon, local_err); +} + +void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict) +{ + const char *name =3D qdict_get_str(qdict, "name"); + bool force =3D qdict_get_try_bool(qdict, "force", false); + Error *err =3D NULL; + + /* Rely on NBD_SERVER_REMOVE_MODE_SAFE being the default */ + qmp_nbd_server_remove(name, force, NBD_SERVER_REMOVE_MODE_HARD, &err); + hmp_handle_error(mon, err); +} + +void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict) +{ + Error *err =3D NULL; + + qmp_nbd_server_stop(&err); + hmp_handle_error(mon, err); +} diff --git a/include/block/block-hmp-commands.h b/include/block/block-hmp-c= ommands.h index 3fc2daf3a9..721b9a1978 100644 --- a/include/block/block-hmp-commands.h +++ b/include/block/block-hmp-commands.h @@ -21,4 +21,9 @@ void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict= ); void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict); void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict); =20 +void hmp_nbd_server_start(Monitor *mon, const QDict *qdict); +void hmp_nbd_server_add(Monitor *mon, const QDict *qdict); +void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict); +void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict); + #endif diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index 6d34e29bb6..736a969131 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -94,10 +94,6 @@ void hmp_getfd(Monitor *mon, const QDict *qdict); void hmp_closefd(Monitor *mon, const QDict *qdict); void hmp_sendkey(Monitor *mon, const QDict *qdict); void hmp_screendump(Monitor *mon, const QDict *qdict); -void hmp_nbd_server_start(Monitor *mon, const QDict *qdict); -void hmp_nbd_server_add(Monitor *mon, const QDict *qdict); -void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict); -void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict); void hmp_chardev_add(Monitor *mon, const QDict *qdict); void hmp_chardev_change(Monitor *mon, const QDict *qdict); void hmp_chardev_remove(Monitor *mon, const QDict *qdict); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 46b46b6dd7..67d2ca8a4c 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -45,7 +45,6 @@ #include "qapi/string-output-visitor.h" #include "qom/object_interfaces.h" #include "ui/console.h" -#include "block/nbd.h" #include "block/qapi.h" #include "qemu-io.h" #include "qemu/cutils.h" @@ -2154,92 +2153,6 @@ void hmp_screendump(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } =20 -void hmp_nbd_server_start(Monitor *mon, const QDict *qdict) -{ - const char *uri =3D qdict_get_str(qdict, "uri"); - bool writable =3D qdict_get_try_bool(qdict, "writable", false); - bool all =3D qdict_get_try_bool(qdict, "all", false); - Error *local_err =3D NULL; - BlockInfoList *block_list, *info; - SocketAddress *addr; - - if (writable && !all) { - error_setg(&local_err, "-w only valid together with -a"); - goto exit; - } - - /* First check if the address is valid and start the server. */ - addr =3D socket_parse(uri, &local_err); - if (local_err !=3D NULL) { - goto exit; - } - - nbd_server_start(addr, NULL, NULL, &local_err); - qapi_free_SocketAddress(addr); - if (local_err !=3D NULL) { - goto exit; - } - - if (!all) { - return; - } - - /* Then try adding all block devices. If one fails, close all and - * exit. - */ - block_list =3D qmp_query_block(NULL); - - for (info =3D block_list; info; info =3D info->next) { - if (!info->value->has_inserted) { - continue; - } - - qmp_nbd_server_add(info->value->device, false, NULL, - true, writable, false, NULL, &local_err); - - if (local_err !=3D NULL) { - qmp_nbd_server_stop(NULL); - break; - } - } - - qapi_free_BlockInfoList(block_list); - -exit: - hmp_handle_error(mon, local_err); -} - -void hmp_nbd_server_add(Monitor *mon, const QDict *qdict) -{ - const char *device =3D qdict_get_str(qdict, "device"); - const char *name =3D qdict_get_try_str(qdict, "name"); - bool writable =3D qdict_get_try_bool(qdict, "writable", false); - Error *local_err =3D NULL; - - qmp_nbd_server_add(device, !!name, name, true, writable, - false, NULL, &local_err); - hmp_handle_error(mon, local_err); -} - -void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict) -{ - const char *name =3D qdict_get_str(qdict, "name"); - bool force =3D qdict_get_try_bool(qdict, "force", false); - Error *err =3D NULL; - - /* Rely on NBD_SERVER_REMOVE_MODE_SAFE being the default */ - qmp_nbd_server_remove(name, force, NBD_SERVER_REMOVE_MODE_HARD, &err); - hmp_handle_error(mon, err); -} - -void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict) -{ - Error *err =3D NULL; - - qmp_nbd_server_stop(&err); - hmp_handle_error(mon, err); -} - void hmp_chardev_add(Monitor *mon, const QDict *qdict) { const char *args =3D qdict_get_str(qdict, "args"); --=20 2.17.2 From nobody Mon Feb 9 07:40:17 2026 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=1580121805; cv=none; d=zohomail.com; s=zohoarc; b=AiIApTd82HpTZdzj+7xjVMB26LqlAsiWws86JNy4KjC5qyUi1rm7FXwKNBm39Re75prAHDoo38T0XedMomrn/lPA4lQxU/lr+iSxYNUP6m0AI9QmL26J5uppKwOkL42UsXAb2ThXWU2OpHmtMnfaV8s8uJrKSR11UC9S2u1ngI4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1580121805; 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=WaagyuLDxG3K5XaacCS50XsV531o58ux3fwDFsQDm8s=; b=d3fdB+DrB+bitjc1U8l30azr8A6J6hzPf19NL/5h13j71aVOIVhhOejyNaMSSAQeynbP3ODaE322/RbYfYD+6u9ARkunUcUeA/RTmDAqpVuHh14C3jF/kXDocqG33UjBkkSENn5Nz4Y7Do3Ls9nx3cP+SqjZBr8rO0+Ma6JZtIg= 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 1580121805008216.46167158607545; Mon, 27 Jan 2020 02:43:25 -0800 (PST) Received: from localhost ([::1]:42782 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1rX-0005Vw-S8 for importer@patchew.org; Mon, 27 Jan 2020 05:43:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42398) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1lo-0003Bp-Ji for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw1lm-0002xt-8q for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:28 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:22104 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 1iw1lm-0002xC-34 for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37: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-322-ixD55-FJP_iLFWkkPRpU7A-1; Mon, 27 Jan 2020 05:37:22 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 603381085986; Mon, 27 Jan 2020 10:37:21 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2EDB4F6C1; Mon, 27 Jan 2020 10:37:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580121445; 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=WaagyuLDxG3K5XaacCS50XsV531o58ux3fwDFsQDm8s=; b=gQJ/yzoxZxyF5+Hflqq5XnXB95Wnk9qJdEJyefPAdyYRGM1W/jgGqbPnVHU1cWagWqldeY 9YfLJSvoKPHJfY062W2ngAR8FU7IV5u4mzj78jh4HimXSKJJK3mPJkk8A1pZqPYsAcOaz/ zgCc71U0NP1N2JbvzGfmD77264VkVMI= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v3 09/13] monitor/hmp: move remaining hmp_block* functions to block-hmp-cmds.c Date: Mon, 27 Jan 2020 12:36:43 +0200 Message-Id: <20200127103647.17761-10-mlevitsk@redhat.com> In-Reply-To: <20200127103647.17761-1-mlevitsk@redhat.com> References: <20200127103647.17761-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: ixD55-FJP_iLFWkkPRpU7A-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" , Max Reitz , Gerd Hoffmann , Maxim Levitsky 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 | 138 +++++++++++++++++++++++++++++ include/block/block-hmp-commands.h | 9 ++ include/monitor/hmp.h | 6 -- monitor/hmp-cmds.c | 137 ---------------------------- 4 files changed, 147 insertions(+), 143 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index df0178d0f9..60d63bfe18 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -29,6 +29,7 @@ #include "block/block_int.h" #include "block/block-hmp-commands.h" #include "monitor/hmp.h" +#include "qemu-io.h" =20 void hmp_drive_add(Monitor *mon, const QDict *qdict) { @@ -415,3 +416,140 @@ void hmp_nbd_server_stop(Monitor *mon, const QDict *q= dict) qmp_nbd_server_stop(&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); +} + +void hmp_eject(Monitor *mon, const QDict *qdict) +{ + bool force =3D qdict_get_try_bool(qdict, "force", false); + const char *device =3D qdict_get_str(qdict, "device"); + Error *err =3D NULL; + + qmp_eject(true, device, false, NULL, true, force, &err); + hmp_handle_error(mon, err); +} + +void hmp_qemu_io(Monitor *mon, const QDict *qdict) +{ + BlockBackend *blk; + BlockBackend *local_blk =3D NULL; + bool qdev =3D qdict_get_try_bool(qdict, "qdev", false); + const char* device =3D qdict_get_str(qdict, "device"); + const char* command =3D qdict_get_str(qdict, "command"); + Error *err =3D NULL; + int ret; + + if (qdev) { + blk =3D blk_by_qdev_id(device, &err); + if (!blk) { + goto fail; + } + } else { + blk =3D blk_by_name(device); + if (!blk) { + BlockDriverState *bs =3D bdrv_lookup_bs(NULL, device, &err); + if (bs) { + blk =3D local_blk =3D blk_new(bdrv_get_aio_context(bs), + 0, BLK_PERM_ALL); + ret =3D blk_insert_bs(blk, bs, &err); + if (ret < 0) { + goto fail; + } + } else { + goto fail; + } + } + } + + /* + * Notably absent: Proper permission management. This is sad, but it s= eems + * almost impossible to achieve without changing the semantics and the= reby + * limiting the use cases of the qemu-io HMP command. + * + * In an ideal world we would unconditionally create a new BlockBacken= d for + * qemuio_command(), but we have commands like 'reopen' and want them = to + * take effect on the exact BlockBackend whose name the user passed in= stead + * of just on a temporary copy of it. + * + * Another problem is that deleting the temporary BlockBackend involves + * draining all requests on it first, but some qemu-iotests cases want= to + * issue multiple aio_read/write requests and expect them to complete = in + * the background while the monitor has already returned. + * + * This is also what prevents us from saving the original permissions = and + * restoring them later: We can't revoke permissions until all requests + * have completed, and we don't know when that is nor can we really let + * anything else run before we have revoken them to avoid race conditi= ons. + * + * What happens now is that command() in qemu-io-cmds.c can extend the + * permissions if necessary for the qemu-io command. And they simply s= tay + * extended, possibly resulting in a read-only guest device keeping wr= ite + * permissions. Ugly, but it appears to be the lesser evil. + */ + qemuio_command(blk, command); + +fail: + blk_unref(local_blk); + hmp_handle_error(mon, err); +} diff --git a/include/block/block-hmp-commands.h b/include/block/block-hmp-c= ommands.h index 721b9a1978..99145c8fcf 100644 --- a/include/block/block-hmp-commands.h +++ b/include/block/block-hmp-commands.h @@ -26,4 +26,13 @@ void hmp_nbd_server_add(Monitor *mon, const QDict *qdict= ); void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict); void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict); =20 +void hmp_block_resize(Monitor *mon, const QDict *qdict); +void hmp_block_stream(Monitor *mon, const QDict *qdict); +void hmp_block_passwd(Monitor *mon, const QDict *qdict); +void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict); +void hmp_eject(Monitor *mon, const QDict *qdict); + +void hmp_qemu_io(Monitor *mon, const QDict *qdict); + + #endif diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index 736a969131..47a7cad734 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -58,9 +58,7 @@ void hmp_cont(Monitor *mon, const QDict *qdict); void hmp_system_wakeup(Monitor *mon, const QDict *qdict); void hmp_nmi(Monitor *mon, const QDict *qdict); void hmp_set_link(Monitor *mon, const QDict *qdict); -void hmp_block_passwd(Monitor *mon, const QDict *qdict); void hmp_balloon(Monitor *mon, const QDict *qdict); -void hmp_block_resize(Monitor *mon, const QDict *qdict); void hmp_loadvm(Monitor *mon, const QDict *qdict); void hmp_savevm(Monitor *mon, const QDict *qdict); void hmp_delvm(Monitor *mon, const QDict *qdict); @@ -80,10 +78,7 @@ void hmp_migrate_start_postcopy(Monitor *mon, const QDic= t *qdict); void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict); void hmp_set_password(Monitor *mon, const QDict *qdict); void hmp_expire_password(Monitor *mon, const QDict *qdict); -void hmp_eject(Monitor *mon, const QDict *qdict); void hmp_change(Monitor *mon, const QDict *qdict); -void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict); -void hmp_block_stream(Monitor *mon, const QDict *qdict); void hmp_migrate(Monitor *mon, const QDict *qdict); void hmp_device_add(Monitor *mon, const QDict *qdict); void hmp_device_del(Monitor *mon, const QDict *qdict); @@ -98,7 +93,6 @@ void hmp_chardev_add(Monitor *mon, const QDict *qdict); void hmp_chardev_change(Monitor *mon, const QDict *qdict); void hmp_chardev_remove(Monitor *mon, const QDict *qdict); void hmp_chardev_send_break(Monitor *mon, const QDict *qdict); -void hmp_qemu_io(Monitor *mon, const QDict *qdict); void hmp_cpu_add(Monitor *mon, const QDict *qdict); void hmp_object_add(Monitor *mon, const QDict *qdict); void hmp_object_del(Monitor *mon, const QDict *qdict); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 67d2ca8a4c..c224e0f338 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -46,7 +46,6 @@ #include "qom/object_interfaces.h" #include "ui/console.h" #include "block/qapi.h" -#include "qemu-io.h" #include "qemu/cutils.h" #include "qemu/error-report.h" #include "exec/ramlist.h" @@ -1307,16 +1306,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"); @@ -1326,16 +1315,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(); @@ -1818,15 +1797,6 @@ void hmp_expire_password(Monitor *mon, const QDict *= qdict) hmp_handle_error(mon, err); } =20 -void hmp_eject(Monitor *mon, const QDict *qdict) -{ - bool force =3D qdict_get_try_bool(qdict, "force", false); - const char *device =3D qdict_get_str(qdict, "device"); - Error *err =3D NULL; - - qmp_eject(true, device, false, NULL, true, force, &err); - hmp_handle_error(mon, err); -} =20 #ifdef CONFIG_VNC static void hmp_change_read_arg(void *opaque, const char *password, @@ -1884,49 +1854,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; @@ -2219,70 +2146,6 @@ void hmp_chardev_send_break(Monitor *mon, const QDic= t *qdict) hmp_handle_error(mon, local_err); } =20 -void hmp_qemu_io(Monitor *mon, const QDict *qdict) -{ - BlockBackend *blk; - BlockBackend *local_blk =3D NULL; - bool qdev =3D qdict_get_try_bool(qdict, "qdev", false); - const char* device =3D qdict_get_str(qdict, "device"); - const char* command =3D qdict_get_str(qdict, "command"); - Error *err =3D NULL; - int ret; - - if (qdev) { - blk =3D blk_by_qdev_id(device, &err); - if (!blk) { - goto fail; - } - } else { - blk =3D blk_by_name(device); - if (!blk) { - BlockDriverState *bs =3D bdrv_lookup_bs(NULL, device, &err); - if (bs) { - blk =3D local_blk =3D blk_new(bdrv_get_aio_context(bs), - 0, BLK_PERM_ALL); - ret =3D blk_insert_bs(blk, bs, &err); - if (ret < 0) { - goto fail; - } - } else { - goto fail; - } - } - } - - /* - * Notably absent: Proper permission management. This is sad, but it s= eems - * almost impossible to achieve without changing the semantics and the= reby - * limiting the use cases of the qemu-io HMP command. - * - * In an ideal world we would unconditionally create a new BlockBacken= d for - * qemuio_command(), but we have commands like 'reopen' and want them = to - * take effect on the exact BlockBackend whose name the user passed in= stead - * of just on a temporary copy of it. - * - * Another problem is that deleting the temporary BlockBackend involves - * draining all requests on it first, but some qemu-iotests cases want= to - * issue multiple aio_read/write requests and expect them to complete = in - * the background while the monitor has already returned. - * - * This is also what prevents us from saving the original permissions = and - * restoring them later: We can't revoke permissions until all requests - * have completed, and we don't know when that is nor can we really let - * anything else run before we have revoken them to avoid race conditi= ons. - * - * What happens now is that command() in qemu-io-cmds.c can extend the - * permissions if necessary for the qemu-io command. And they simply s= tay - * extended, possibly resulting in a read-only guest device keeping wr= ite - * permissions. Ugly, but it appears to be the lesser evil. - */ - qemuio_command(blk, command); - -fail: - blk_unref(local_blk); - hmp_handle_error(mon, err); -} - void hmp_object_del(Monitor *mon, const QDict *qdict) { const char *id =3D qdict_get_str(qdict, "id"); --=20 2.17.2 From nobody Mon Feb 9 07:40:17 2026 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=1580121739; cv=none; d=zohomail.com; s=zohoarc; b=JQeYopHaj8VqoPHUSknmvbxxm4f52JeyKePabeI8pck8h3IbwCzb3eTziw6EcLv+ZIowmt4jx9Q/2F6dep8N6zVZeLk/T2JDqdYXlC+Xh8IxCASYbpegKIBTmbLwfPk8UE7HH2IgpSLMrJ3BypKfD/Wvpvb5nmgzu+ujdqT78iU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1580121739; 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=qD7EsfZ4t37cOlUS17xQ9eHXEkCzMJq8X1u24/lUtus=; b=TsNLl1jrypd32VyhNILAnDJlYO9e0Z4c13PLlL2VyHvkT4CQ0ONw480WUM2BMrcxgwEkrJvXRDTZT0VtOxuLSLmDrKLDw/IHQxQhJa6FGtX/nNhKfN+NrAHlqT+A+04RsEZ0CinlDmvyyXZu98piInQCzY74rwsUyS/pF1141ko= 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 1580121739584750.5194448781833; Mon, 27 Jan 2020 02:42:19 -0800 (PST) Received: from localhost ([::1]:42756 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1qU-0003KM-Bc for importer@patchew.org; Mon, 27 Jan 2020 05:42:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42453) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1ls-0003Id-An for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw1lp-00031K-5I for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:32 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:28416 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 1iw1lp-000315-1D for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:29 -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-371-kOX2pY-oOMSe-3oDxDE_XQ-1; Mon, 27 Jan 2020 05:37:25 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id EC4FD107ACC4; Mon, 27 Jan 2020 10:37:23 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id B88AC451F; Mon, 27 Jan 2020 10:37:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580121448; 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=qD7EsfZ4t37cOlUS17xQ9eHXEkCzMJq8X1u24/lUtus=; b=GaBLykgSdcLByN5g2BBnmyuY+ApXV2NuVut6wY2IwSnl7T223QNM7UQVci+OLBr1cUOl+L BYk3rCnMX0iQ7sFvEX/HZeLGcjubG1KL5+0Q8GnFLfuzzkSiWQoZVaVfvbSR4x/tkIbx9p oF3M9jOIrJmdeQvKWcttSctVmZsaj0s= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v3 10/13] monitor/hmp: move hmp_info_block* to block-hmp-cmds.c Date: Mon, 27 Jan 2020 12:36:44 +0200 Message-Id: <20200127103647.17761-11-mlevitsk@redhat.com> In-Reply-To: <20200127103647.17761-1-mlevitsk@redhat.com> References: <20200127103647.17761-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: kOX2pY-oOMSe-3oDxDE_XQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" , Max Reitz , Gerd Hoffmann , Maxim Levitsky 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 | 388 +++++++++++++++++++++++++++++ include/block/block-hmp-commands.h | 4 + include/monitor/hmp.h | 4 - monitor/hmp-cmds.c | 388 ----------------------------- 4 files changed, 392 insertions(+), 392 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index 60d63bfe18..a4b1604aee 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -23,11 +23,13 @@ #include "qemu/config-file.h" #include "qemu/option.h" #include "qemu/sockets.h" +#include "qemu/cutils.h" #include "sysemu/sysemu.h" #include "monitor/monitor.h" #include "block/nbd.h" #include "block/block_int.h" #include "block/block-hmp-commands.h" +#include "block/qapi.h" #include "monitor/hmp.h" #include "qemu-io.h" =20 @@ -553,3 +555,389 @@ fail: blk_unref(local_blk); 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); +} + +void hmp_info_snapshots(Monitor *mon, const QDict *qdict) +{ + BlockDriverState *bs, *bs1; + BdrvNextIterator it1; + QEMUSnapshotInfo *sn_tab, *sn; + bool no_snapshot =3D true; + int nb_sns, i; + int total; + int *global_snapshots; + AioContext *aio_context; + + typedef struct SnapshotEntry { + QEMUSnapshotInfo sn; + QTAILQ_ENTRY(SnapshotEntry) next; + } SnapshotEntry; + + typedef struct ImageEntry { + const char *imagename; + QTAILQ_ENTRY(ImageEntry) next; + QTAILQ_HEAD(, SnapshotEntry) snapshots; + } ImageEntry; + + QTAILQ_HEAD(, ImageEntry) image_list =3D + QTAILQ_HEAD_INITIALIZER(image_list); + + ImageEntry *image_entry, *next_ie; + SnapshotEntry *snapshot_entry; + + bs =3D bdrv_all_find_vmstate_bs(); + if (!bs) { + monitor_printf(mon, "No available block device supports snapshots\= n"); + return; + } + aio_context =3D bdrv_get_aio_context(bs); + + aio_context_acquire(aio_context); + nb_sns =3D bdrv_snapshot_list(bs, &sn_tab); + aio_context_release(aio_context); + + if (nb_sns < 0) { + monitor_printf(mon, "bdrv_snapshot_list: error %d\n", nb_sns); + return; + } + + for (bs1 =3D bdrv_first(&it1); bs1; bs1 =3D bdrv_next(&it1)) { + int bs1_nb_sns =3D 0; + ImageEntry *ie; + SnapshotEntry *se; + AioContext *ctx =3D bdrv_get_aio_context(bs1); + + aio_context_acquire(ctx); + if (bdrv_can_snapshot(bs1)) { + sn =3D NULL; + bs1_nb_sns =3D bdrv_snapshot_list(bs1, &sn); + if (bs1_nb_sns > 0) { + no_snapshot =3D false; + ie =3D g_new0(ImageEntry, 1); + ie->imagename =3D bdrv_get_device_name(bs1); + QTAILQ_INIT(&ie->snapshots); + QTAILQ_INSERT_TAIL(&image_list, ie, next); + for (i =3D 0; i < bs1_nb_sns; i++) { + se =3D g_new0(SnapshotEntry, 1); + se->sn =3D sn[i]; + QTAILQ_INSERT_TAIL(&ie->snapshots, se, next); + } + } + g_free(sn); + } + aio_context_release(ctx); + } + + if (no_snapshot) { + monitor_printf(mon, "There is no snapshot available.\n"); + return; + } + + global_snapshots =3D g_new0(int, nb_sns); + total =3D 0; + for (i =3D 0; i < nb_sns; i++) { + SnapshotEntry *next_sn; + if (bdrv_all_find_snapshot(sn_tab[i].name, &bs1) =3D=3D 0) { + global_snapshots[total] =3D i; + total++; + QTAILQ_FOREACH(image_entry, &image_list, next) { + QTAILQ_FOREACH_SAFE(snapshot_entry, &image_entry->snapshot= s, + next, next_sn) { + if (!strcmp(sn_tab[i].name, snapshot_entry->sn.name)) { + QTAILQ_REMOVE(&image_entry->snapshots, snapshot_en= try, + next); + g_free(snapshot_entry); + } + } + } + } + } + monitor_printf(mon, "List of snapshots present on all disks:\n"); + + if (total > 0) { + bdrv_snapshot_dump(NULL); + monitor_printf(mon, "\n"); + for (i =3D 0; i < total; i++) { + sn =3D &sn_tab[global_snapshots[i]]; + /* The ID is not guaranteed to be the same on all images, so + * overwrite it. + */ + pstrcpy(sn->id_str, sizeof(sn->id_str), "--"); + bdrv_snapshot_dump(sn); + monitor_printf(mon, "\n"); + } + } else { + monitor_printf(mon, "None\n"); + } + + QTAILQ_FOREACH(image_entry, &image_list, next) { + if (QTAILQ_EMPTY(&image_entry->snapshots)) { + continue; + } + monitor_printf(mon, + "\nList of partial (non-loadable) snapshots on '%s'= :\n", + image_entry->imagename); + bdrv_snapshot_dump(NULL); + monitor_printf(mon, "\n"); + QTAILQ_FOREACH(snapshot_entry, &image_entry->snapshots, next) { + bdrv_snapshot_dump(&snapshot_entry->sn); + monitor_printf(mon, "\n"); + } + } + + QTAILQ_FOREACH_SAFE(image_entry, &image_list, next, next_ie) { + SnapshotEntry *next_sn; + QTAILQ_FOREACH_SAFE(snapshot_entry, &image_entry->snapshots, next, + next_sn) { + g_free(snapshot_entry); + } + g_free(image_entry); + } + g_free(sn_tab); + g_free(global_snapshots); +} diff --git a/include/block/block-hmp-commands.h b/include/block/block-hmp-c= ommands.h index 99145c8fcf..206635ffed 100644 --- a/include/block/block-hmp-commands.h +++ b/include/block/block-hmp-commands.h @@ -34,5 +34,9 @@ void hmp_eject(Monitor *mon, const QDict *qdict); =20 void hmp_qemu_io(Monitor *mon, const QDict *qdict); =20 +void hmp_info_block(Monitor *mon, const QDict *qdict); +void hmp_info_blockstats(Monitor *mon, const QDict *qdict); +void hmp_info_block_jobs(Monitor *mon, const QDict *qdict); +void hmp_info_snapshots(Monitor *mon, const QDict *qdict); =20 #endif diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index 47a7cad734..e33ca5a911 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -30,8 +30,6 @@ void hmp_info_migrate_capabilities(Monitor *mon, const QD= ict *qdict); void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict); void hmp_info_migrate_cache_size(Monitor *mon, const QDict *qdict); void hmp_info_cpus(Monitor *mon, const QDict *qdict); -void hmp_info_block(Monitor *mon, const QDict *qdict); -void hmp_info_blockstats(Monitor *mon, const QDict *qdict); void hmp_info_vnc(Monitor *mon, const QDict *qdict); void hmp_info_spice(Monitor *mon, const QDict *qdict); void hmp_info_balloon(Monitor *mon, const QDict *qdict); @@ -39,7 +37,6 @@ void hmp_info_irq(Monitor *mon, const QDict *qdict); void hmp_info_pic(Monitor *mon, const QDict *qdict); void hmp_info_rdma(Monitor *mon, const QDict *qdict); void hmp_info_pci(Monitor *mon, const QDict *qdict); -void hmp_info_block_jobs(Monitor *mon, const QDict *qdict); void hmp_info_tpm(Monitor *mon, const QDict *qdict); void hmp_info_iothreads(Monitor *mon, const QDict *qdict); void hmp_quit(Monitor *mon, const QDict *qdict); @@ -62,7 +59,6 @@ void hmp_balloon(Monitor *mon, const QDict *qdict); void hmp_loadvm(Monitor *mon, const QDict *qdict); void hmp_savevm(Monitor *mon, const QDict *qdict); void hmp_delvm(Monitor *mon, const QDict *qdict); -void hmp_info_snapshots(Monitor *mon, const QDict *qdict); void hmp_migrate_cancel(Monitor *mon, const QDict *qdict); void hmp_migrate_continue(Monitor *mon, const QDict *qdict); void hmp_migrate_incoming(Monitor *mon, const QDict *qdict); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index c224e0f338..1ddfe2fceb 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -45,7 +45,6 @@ #include "qapi/string-output-visitor.h" #include "qom/object_interfaces.h" #include "ui/console.h" -#include "block/qapi.h" #include "qemu/cutils.h" #include "qemu/error-report.h" #include "exec/ramlist.h" @@ -465,213 +464,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 */ @@ -1051,44 +843,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; @@ -1351,148 +1105,6 @@ void hmp_delvm(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } =20 -void hmp_info_snapshots(Monitor *mon, const QDict *qdict) -{ - BlockDriverState *bs, *bs1; - BdrvNextIterator it1; - QEMUSnapshotInfo *sn_tab, *sn; - bool no_snapshot =3D true; - int nb_sns, i; - int total; - int *global_snapshots; - AioContext *aio_context; - - typedef struct SnapshotEntry { - QEMUSnapshotInfo sn; - QTAILQ_ENTRY(SnapshotEntry) next; - } SnapshotEntry; - - typedef struct ImageEntry { - const char *imagename; - QTAILQ_ENTRY(ImageEntry) next; - QTAILQ_HEAD(, SnapshotEntry) snapshots; - } ImageEntry; - - QTAILQ_HEAD(, ImageEntry) image_list =3D - QTAILQ_HEAD_INITIALIZER(image_list); - - ImageEntry *image_entry, *next_ie; - SnapshotEntry *snapshot_entry; - - bs =3D bdrv_all_find_vmstate_bs(); - if (!bs) { - monitor_printf(mon, "No available block device supports snapshots\= n"); - return; - } - aio_context =3D bdrv_get_aio_context(bs); - - aio_context_acquire(aio_context); - nb_sns =3D bdrv_snapshot_list(bs, &sn_tab); - aio_context_release(aio_context); - - if (nb_sns < 0) { - monitor_printf(mon, "bdrv_snapshot_list: error %d\n", nb_sns); - return; - } - - for (bs1 =3D bdrv_first(&it1); bs1; bs1 =3D bdrv_next(&it1)) { - int bs1_nb_sns =3D 0; - ImageEntry *ie; - SnapshotEntry *se; - AioContext *ctx =3D bdrv_get_aio_context(bs1); - - aio_context_acquire(ctx); - if (bdrv_can_snapshot(bs1)) { - sn =3D NULL; - bs1_nb_sns =3D bdrv_snapshot_list(bs1, &sn); - if (bs1_nb_sns > 0) { - no_snapshot =3D false; - ie =3D g_new0(ImageEntry, 1); - ie->imagename =3D bdrv_get_device_name(bs1); - QTAILQ_INIT(&ie->snapshots); - QTAILQ_INSERT_TAIL(&image_list, ie, next); - for (i =3D 0; i < bs1_nb_sns; i++) { - se =3D g_new0(SnapshotEntry, 1); - se->sn =3D sn[i]; - QTAILQ_INSERT_TAIL(&ie->snapshots, se, next); - } - } - g_free(sn); - } - aio_context_release(ctx); - } - - if (no_snapshot) { - monitor_printf(mon, "There is no snapshot available.\n"); - return; - } - - global_snapshots =3D g_new0(int, nb_sns); - total =3D 0; - for (i =3D 0; i < nb_sns; i++) { - SnapshotEntry *next_sn; - if (bdrv_all_find_snapshot(sn_tab[i].name, &bs1) =3D=3D 0) { - global_snapshots[total] =3D i; - total++; - QTAILQ_FOREACH(image_entry, &image_list, next) { - QTAILQ_FOREACH_SAFE(snapshot_entry, &image_entry->snapshot= s, - next, next_sn) { - if (!strcmp(sn_tab[i].name, snapshot_entry->sn.name)) { - QTAILQ_REMOVE(&image_entry->snapshots, snapshot_en= try, - next); - g_free(snapshot_entry); - } - } - } - } - } - - monitor_printf(mon, "List of snapshots present on all disks:\n"); - - if (total > 0) { - bdrv_snapshot_dump(NULL); - monitor_printf(mon, "\n"); - for (i =3D 0; i < total; i++) { - sn =3D &sn_tab[global_snapshots[i]]; - /* The ID is not guaranteed to be the same on all images, so - * overwrite it. - */ - pstrcpy(sn->id_str, sizeof(sn->id_str), "--"); - bdrv_snapshot_dump(sn); - monitor_printf(mon, "\n"); - } - } else { - monitor_printf(mon, "None\n"); - } - - QTAILQ_FOREACH(image_entry, &image_list, next) { - if (QTAILQ_EMPTY(&image_entry->snapshots)) { - continue; - } - monitor_printf(mon, - "\nList of partial (non-loadable) snapshots on '%s'= :\n", - image_entry->imagename); - bdrv_snapshot_dump(NULL); - monitor_printf(mon, "\n"); - QTAILQ_FOREACH(snapshot_entry, &image_entry->snapshots, next) { - bdrv_snapshot_dump(&snapshot_entry->sn); - monitor_printf(mon, "\n"); - } - } - - QTAILQ_FOREACH_SAFE(image_entry, &image_list, next, next_ie) { - SnapshotEntry *next_sn; - QTAILQ_FOREACH_SAFE(snapshot_entry, &image_entry->snapshots, next, - next_sn) { - g_free(snapshot_entry); - } - g_free(image_entry); - } - g_free(sn_tab); - g_free(global_snapshots); - -} - void hmp_announce_self(Monitor *mon, const QDict *qdict) { const char *interfaces_str =3D qdict_get_try_str(qdict, "interfaces"); --=20 2.17.2 From nobody Mon Feb 9 07:40:17 2026 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=1580121813; cv=none; d=zohomail.com; s=zohoarc; b=EC8H/oAnWLGK061EVa8PI1Gz9Zy260ifSjkAxBC2tI/fzI3repQUA4Gy30449S7MclNtMRMlx+d2HHUBYxZraK0CXd3lErwsvilkmIR8zbo5iag0toC5X8L1pbRwOPbCEUrTFdLpdVBmCnPMNVDqcnzI6/GN4my1sZCE+9B6FbY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1580121813; 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=Tq/DcsaJDVwKavjLtW6/keUbJyhr/KZ3fMt/+V+dYiE=; b=KsI1mDzSIpx7qibvMRwBvxTaDSG+sDoKQ7YdoXp2/KKvn9rQ9loAkBIiltOBS0ThVPijJvla7b+ow9fde1XIBQbOj3DrZ+4+SKZA52AIX7nVcjCCdH8Ochp+k4O+MUlzEjcj+af24/0xnrT4MGYduFH4u4yFiCkvFyvN9TZJD54= 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 1580121813268209.81753613971102; Mon, 27 Jan 2020 02:43:33 -0800 (PST) Received: from localhost ([::1]:42784 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1re-0005af-O8 for importer@patchew.org; Mon, 27 Jan 2020 05:43:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42447) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1ls-0003Ht-2I for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw1lp-00032z-Qx for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:31 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:48375 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 1iw1lp-00032B-Mu for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:29 -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-47-QeiNRj11OcGdtqezrnJvrQ-1; Mon, 27 Jan 2020 05:37:27 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4F78B107ACC4; Mon, 27 Jan 2020 10:37:26 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4EB46451F; Mon, 27 Jan 2020 10:37:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580121449; 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=Tq/DcsaJDVwKavjLtW6/keUbJyhr/KZ3fMt/+V+dYiE=; b=hff8K7b4Cnp1Yc2jhTvPDztaK4EHbWf5Q3Tt0kA0x8XasxP/T6I0vEXYvl8MfBVWAuW4tF o4r7zi9U58In17I7MPhSguDHDBhZknFaf5sDl2K6MV6PGYxhCfPIUHkaT0uI1Q0YNuuJjR oyJwqEPF2f29NjxcrcnXANoqSFeLvI0= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v3 11/13] monitor: Move hmp_drive_add_node to block-hmp-cmds.c Date: Mon, 27 Jan 2020 12:36:45 +0200 Message-Id: <20200127103647.17761-12-mlevitsk@redhat.com> In-Reply-To: <20200127103647.17761-1-mlevitsk@redhat.com> References: <20200127103647.17761-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: QeiNRj11OcGdtqezrnJvrQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" , Max Reitz , Gerd Hoffmann , Maxim Levitsky 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 | 30 ++++++++++++++++++++++++ blockdev.c | 42 +++++++--------------------------- include/block/block_int.h | 5 ++-- 3 files changed, 41 insertions(+), 36 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index a4b1604aee..7bbe4e3814 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -33,6 +33,36 @@ #include "monitor/hmp.h" #include "qemu-io.h" =20 +static void hmp_drive_add_node(Monitor *mon, const char *optstr) +{ + QemuOpts *opts; + QDict *qdict; + Error *local_err =3D NULL; + + opts =3D qemu_opts_parse_noisily(&qemu_drive_opts, optstr, false); + if (!opts) { + return; + } + + qdict =3D qemu_opts_to_qdict(opts, NULL); + + if (!qdict_get_try_str(qdict, "node-name")) { + qobject_unref(qdict); + error_report("'node-name' needs to be specified"); + goto out; + } + + BlockDriverState *bs =3D bds_tree_init(qdict, &local_err); + if (!bs) { + error_report_err(local_err); + goto out; + } + + bdrv_set_monitor_owned(bs); +out: + qemu_opts_del(opts); +} + void hmp_drive_add(Monitor *mon, const QDict *qdict) { Error *err =3D NULL; diff --git a/blockdev.c b/blockdev.c index df43e0aaef..63805f34b5 100644 --- a/blockdev.c +++ b/blockdev.c @@ -64,7 +64,7 @@ #include "qemu/main-loop.h" #include "qemu/throttle-options.h" =20 -static QTAILQ_HEAD(, BlockDriverState) monitor_bdrv_states =3D +QTAILQ_HEAD(, BlockDriverState) monitor_bdrv_states =3D QTAILQ_HEAD_INITIALIZER(monitor_bdrv_states); =20 static int do_open_tray(const char *blk_name, const char *qdev_id, @@ -75,6 +75,11 @@ static void blockdev_insert_medium(bool has_device, cons= t char *device, bool has_id, const char *id, const char *node_name, Error **errp); =20 +void bdrv_set_monitor_owned(BlockDriverState *bs) +{ + QTAILQ_INSERT_TAIL(&monitor_bdrv_states, bs, monitor_list); +} + static const char *const if_name[IF_COUNT] =3D { [IF_NONE] =3D "none", [IF_IDE] =3D "ide", @@ -652,7 +657,7 @@ err_no_opts: } =20 /* Takes the ownership of bs_opts */ -static BlockDriverState *bds_tree_init(QDict *bs_opts, Error **errp) +BlockDriverState *bds_tree_init(QDict *bs_opts, Error **errp) { int bdrv_flags =3D 0; =20 @@ -4201,37 +4206,6 @@ out: aio_context_release(aio_context); } =20 -void hmp_drive_add_node(Monitor *mon, const char *optstr) -{ - QemuOpts *opts; - QDict *qdict; - Error *local_err =3D NULL; - - opts =3D qemu_opts_parse_noisily(&qemu_drive_opts, optstr, false); - if (!opts) { - return; - } - - qdict =3D qemu_opts_to_qdict(opts, NULL); - - if (!qdict_get_try_str(qdict, "node-name")) { - qobject_unref(qdict); - error_report("'node-name' needs to be specified"); - goto out; - } - - BlockDriverState *bs =3D bds_tree_init(qdict, &local_err); - if (!bs) { - error_report_err(local_err); - goto out; - } - - QTAILQ_INSERT_TAIL(&monitor_bdrv_states, bs, monitor_list); - -out: - qemu_opts_del(opts); -} - void qmp_blockdev_add(BlockdevOptions *options, Error **errp) { BlockDriverState *bs; @@ -4261,7 +4235,7 @@ void qmp_blockdev_add(BlockdevOptions *options, Error= **errp) goto fail; } =20 - QTAILQ_INSERT_TAIL(&monitor_bdrv_states, bs, monitor_list); + bdrv_set_monitor_owned(bs); =20 fail: visit_free(v); diff --git a/include/block/block_int.h b/include/block/block_int.h index dd033d0b37..10df257a61 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -1217,8 +1217,6 @@ BlockJob *backup_job_create(const char *job_id, Block= DriverState *bs, BlockCompletionFunc *cb, void *opaque, JobTxn *txn, Error **errp); =20 -void hmp_drive_add_node(Monitor *mon, const char *optstr); - BdrvChild *bdrv_root_attach_child(BlockDriverState *child_bs, const char *child_name, const BdrvChildRole *child_role, @@ -1320,4 +1318,7 @@ int coroutine_fn bdrv_co_copy_range_to(BdrvChild *src= , uint64_t src_offset, =20 int refresh_total_sectors(BlockDriverState *bs, int64_t hint); =20 +void bdrv_set_monitor_owned(BlockDriverState *bs); +BlockDriverState *bds_tree_init(QDict *bs_opts, Error **errp); + #endif /* BLOCK_INT_H */ --=20 2.17.2 From nobody Mon Feb 9 07:40:17 2026 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=1580122025; cv=none; d=zohomail.com; s=zohoarc; b=JEZKrxo+F/WHvQcKxoUMT7Exr9eMxkjvysLkPG1ezboaS85q/2/OmIvWpJwHr6jw7thBrveNDVT4BTUs3oM8+1ZJfxCZL6cBhO7shFyVoBoDLAKBH/L6/WKrOaYjmGNx7Zun8je/Z7YfUk8sTglWJdtb/vgVmm150mDx9J3LP4A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1580122025; 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=zZt3ajN2VHIMjXYlDkItzFqDg6LU8TjAI6ZX5iuRc7s=; b=NgP2HQA055zHmC/yDqE+yKEvOeFbZRnY0aMdBuIWcek8pgc3GPUNyHv36ODhmw6eRyew+7C4ln8Ut21wZ0Xdgcn4nI6JuoUWKvJ+1eFHM2wrHPQ1DpbV1DiOVQTR8byguQ/hbGUO4CMGw5QtG/vJWgfSpWuhbPdMfkR/ccSgu5w= 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 1580122025386985.6373607599322; Mon, 27 Jan 2020 02:47:05 -0800 (PST) Received: from localhost ([::1]:42844 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1v6-0000TF-2X for importer@patchew.org; Mon, 27 Jan 2020 05:47:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42554) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1m9-0003is-CB for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:38:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw1ly-0003A1-Uy for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:49 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:48255 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 1iw1lx-00038d-F7 for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:37 -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-65-Sz3S7a3wM7m2t2O-nTWZ0w-1; Mon, 27 Jan 2020 05:37:30 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 60298107ACCD; Mon, 27 Jan 2020 10:37:29 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id A9EE5451F; Mon, 27 Jan 2020 10:37:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580121457; 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=zZt3ajN2VHIMjXYlDkItzFqDg6LU8TjAI6ZX5iuRc7s=; b=LNopYSSFBPpAVrZHQ1eCqyAA3hJtaDfNuAGeo77KL88I0nKb1L0buUPFChElMNL4chJqPx ChyO8gp9iDVZQabGdNLj8atFFWYatcyR9tp2Ialiom/6FlIzWebxG8KhS6+WZUASK+2yfa 6Uzx2HVg79rOA2bXYkpyCe+/3MS1nxI= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v3 12/13] add 'error' prefix to vreport Date: Mon, 27 Jan 2020 12:36:46 +0200 Message-Id: <20200127103647.17761-13-mlevitsk@redhat.com> In-Reply-To: <20200127103647.17761-1-mlevitsk@redhat.com> References: <20200127103647.17761-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: Sz3S7a3wM7m2t2O-nTWZ0w-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" , Max Reitz , Gerd Hoffmann , Maxim Levitsky 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 changes most of qemu's error messages, but it feels like the right thing to do. This is WIP patch, since I updated most of iotests but not all of them, and will be updated if this patch is accepeted in the review. Also few error message already have 'error' prefix, which should be removed. Signed-off-by: Maxim Levitsky Suggested-by: Markus Armbruster --- monitor/hmp-cmds.c | 2 +- tests/qemu-iotests/020.out | 2 +- tests/qemu-iotests/026.out | 260 +++++++++++++++---------------- tests/qemu-iotests/036.out | 16 +- tests/qemu-iotests/043.out | 6 +- tests/qemu-iotests/049.out | 30 ++-- tests/qemu-iotests/051.pc.out | 150 +++++++++--------- tests/qemu-iotests/054.out | 4 +- tests/qemu-iotests/060.out | 20 +-- tests/qemu-iotests/061.out | 26 ++-- tests/qemu-iotests/069.out | 2 +- tests/qemu-iotests/071.out | 4 +- tests/qemu-iotests/074.out | 4 +- tests/qemu-iotests/079.out | 2 +- tests/qemu-iotests/080.out | 72 ++++----- tests/qemu-iotests/081.out | 2 +- tests/qemu-iotests/082.out | 38 ++--- tests/qemu-iotests/083.out | 68 ++++---- tests/qemu-iotests/098.out | 8 +- tests/qemu-iotests/103.out | 14 +- tests/qemu-iotests/106.out | 4 +- tests/qemu-iotests/111.out | 2 +- tests/qemu-iotests/112.out | 24 +-- tests/qemu-iotests/113.out | 6 +- tests/qemu-iotests/114.out | 2 +- tests/qemu-iotests/122.out | 4 +- tests/qemu-iotests/133.out | 30 ++-- tests/qemu-iotests/137.out | 28 ++-- tests/qemu-iotests/140.out | 2 +- tests/qemu-iotests/142.out | 38 ++--- tests/qemu-iotests/143.out | 2 +- tests/qemu-iotests/153.out | 118 +++++++------- tests/qemu-iotests/162.out | 10 +- tests/qemu-iotests/172.out | 16 +- tests/qemu-iotests/178.out.qcow2 | 30 ++-- tests/qemu-iotests/178.out.raw | 26 ++-- tests/qemu-iotests/182.out | 2 +- tests/qemu-iotests/187.out | 6 +- tests/qemu-iotests/188.out | 2 +- tests/qemu-iotests/197.out | 2 +- tests/qemu-iotests/205 | 2 +- tests/qemu-iotests/215.out | 2 +- tests/qemu-iotests/217.out | 2 +- tests/qemu-iotests/226.out | 12 +- tests/qemu-iotests/232.out | 12 +- tests/qemu-iotests/233.out | 24 +-- tests/qemu-iotests/242.out | 2 +- tests/qemu-iotests/244.out | 14 +- tests/qemu-iotests/249.out | 6 +- tests/qemu-iotests/261.out | 24 +-- tests/qemu-iotests/267.out | 16 +- tests/qemu-iotests/common.filter | 2 +- util/qemu-error.c | 1 + 53 files changed, 602 insertions(+), 601 deletions(-) diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 1ddfe2fceb..6214e6ed57 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -60,7 +60,7 @@ void hmp_handle_error(Monitor *mon, Error *err) { if (err) { - error_reportf_err(err, "Error: "); + error_report_err(err); } } =20 diff --git a/tests/qemu-iotests/020.out b/tests/qemu-iotests/020.out index 4b722b2dd0..41171a3795 100644 --- a/tests/qemu-iotests/020.out +++ b/tests/qemu-iotests/020.out @@ -1093,5 +1093,5 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1= 048576 backing_file=3Djson:{'driv }}} wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Block job failed: No space left on device +qemu-img: error: Block job failed: No space left on device *** done diff --git a/tests/qemu-iotests/026.out b/tests/qemu-iotests/026.out index ff0817b6f2..554eb0005b 100644 --- a/tests/qemu-iotests/026.out +++ b/tests/qemu-iotests/026.out @@ -3,7 +3,7 @@ Errors while writing 128 kB =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l1_update; errno: 5; imm: off; once: on; write +Event: l1_update; errno: 5; imm: off; once: on; write=20 write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -13,21 +13,21 @@ write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l1_update; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +Event: l1_update; errno: 5; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: l1_update; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l1_update; errno: 28; imm: off; once: on; write +Event: l1_update; errno: 28; imm: off; once: on; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -37,21 +37,21 @@ write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l1_update; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +Event: l1_update; errno: 28; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: l1_update; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l2_load; errno: 5; imm: off; once: on; write +Event: l2_load; errno: 5; imm: off; once: on; write=20 wrote 131072/131072 bytes at offset 0 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) write failed: Input/output error @@ -67,7 +67,7 @@ read failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l2_load; errno: 5; imm: off; once: off; write +Event: l2_load; errno: 5; imm: off; once: off; write=20 wrote 131072/131072 bytes at offset 0 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) write failed: Input/output error @@ -83,7 +83,7 @@ read failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l2_load; errno: 28; imm: off; once: on; write +Event: l2_load; errno: 28; imm: off; once: on; write=20 wrote 131072/131072 bytes at offset 0 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) write failed: No space left on device @@ -99,7 +99,7 @@ read failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l2_load; errno: 28; imm: off; once: off; write +Event: l2_load; errno: 28; imm: off; once: off; write=20 wrote 131072/131072 bytes at offset 0 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) write failed: No space left on device @@ -115,7 +115,7 @@ read failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l2_update; errno: 5; imm: off; once: on; write +Event: l2_update; errno: 5; imm: off; once: on; write=20 write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -125,21 +125,21 @@ write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l2_update; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +Event: l2_update; errno: 5; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: l2_update; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l2_update; errno: 28; imm: off; once: on; write +Event: l2_update; errno: 28; imm: off; once: on; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -149,21 +149,21 @@ write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l2_update; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +Event: l2_update; errno: 28; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: l2_update; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l2_alloc_write; errno: 5; imm: off; once: on; write +Event: l2_alloc_write; errno: 5; imm: off; once: on; write=20 write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -173,21 +173,21 @@ write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l2_alloc_write; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +Event: l2_alloc_write; errno: 5; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: l2_alloc_write; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l2_alloc_write; errno: 28; imm: off; once: on; write +Event: l2_alloc_write; errno: 28; imm: off; once: on; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -197,21 +197,21 @@ write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: l2_alloc_write; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +Event: l2_alloc_write; errno: 28; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: l2_alloc_write; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: write_aio; errno: 5; imm: off; once: on; write +Event: write_aio; errno: 5; imm: off; once: on; write=20 write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -221,21 +221,21 @@ write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: write_aio; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +Event: write_aio; errno: 5; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: write_aio; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: write_aio; errno: 28; imm: off; once: on; write +Event: write_aio; errno: 28; imm: off; once: on; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -245,21 +245,21 @@ write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: write_aio; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +Event: write_aio; errno: 28; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: write_aio; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_load; errno: 5; imm: off; once: on; write +Event: refblock_load; errno: 5; imm: off; once: on; write=20 write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -269,21 +269,21 @@ write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_load; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +Event: refblock_load; errno: 5; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: refblock_load; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_load; errno: 28; imm: off; once: on; write +Event: refblock_load; errno: 28; imm: off; once: on; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -293,21 +293,21 @@ write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_load; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +Event: refblock_load; errno: 28; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: refblock_load; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_update_part; errno: 5; imm: off; once: on; write +Event: refblock_update_part; errno: 5; imm: off; once: on; write=20 write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -317,21 +317,21 @@ write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_update_part; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +Event: refblock_update_part; errno: 5; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: refblock_update_part; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_update_part; errno: 28; imm: off; once: on; write +Event: refblock_update_part; errno: 28; imm: off; once: on; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -341,21 +341,21 @@ write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_update_part; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +Event: refblock_update_part; errno: 28; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: refblock_update_part; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc; errno: 5; imm: off; once: on; write +Event: refblock_alloc; errno: 5; imm: off; once: on; write=20 write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -365,21 +365,21 @@ write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +Event: refblock_alloc; errno: 5; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: refblock_alloc; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc; errno: 28; imm: off; once: on; write +Event: refblock_alloc; errno: 28; imm: off; once: on; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -389,21 +389,21 @@ write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +Event: refblock_alloc; errno: 28; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: refblock_alloc; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: cluster_alloc; errno: 5; imm: off; once: on; write +Event: cluster_alloc; errno: 5; imm: off; once: on; write=20 write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -413,7 +413,7 @@ write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: cluster_alloc; errno: 5; imm: off; once: off; write +Event: cluster_alloc; errno: 5; imm: off; once: off; write=20 write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -423,7 +423,7 @@ write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: cluster_alloc; errno: 28; imm: off; once: on; write +Event: cluster_alloc; errno: 28; imm: off; once: on; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -433,7 +433,7 @@ write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: cluster_alloc; errno: 28; imm: off; once: off; write +Event: cluster_alloc; errno: 28; imm: off; once: off; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -446,7 +446,7 @@ No errors were found on the image. =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc_hookup; errno: 28; imm: off; once: on; write +Event: refblock_alloc_hookup; errno: 28; imm: off; once: on; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -456,21 +456,21 @@ write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc_hookup; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +Event: refblock_alloc_hookup; errno: 28; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: refblock_alloc_hookup; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc_write; errno: 28; imm: off; once: on; write +Event: refblock_alloc_write; errno: 28; imm: off; once: on; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -480,21 +480,21 @@ write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc_write; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +Event: refblock_alloc_write; errno: 28; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: refblock_alloc_write; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc_write_blocks; errno: 28; imm: off; once: on; write +Event: refblock_alloc_write_blocks; errno: 28; imm: off; once: on; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -504,21 +504,21 @@ write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc_write_blocks; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +Event: refblock_alloc_write_blocks; errno: 28; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: refblock_alloc_write_blocks; errno: 28; imm: off; once: off; write = -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc_write_table; errno: 28; imm: off; once: on; write +Event: refblock_alloc_write_table; errno: 28; imm: off; once: on; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -528,21 +528,21 @@ write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc_write_table; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +Event: refblock_alloc_write_table; errno: 28; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: refblock_alloc_write_table; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc_switch_table; errno: 28; imm: off; once: on; write +Event: refblock_alloc_switch_table; errno: 28; imm: off; once: on; write=20 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -552,16 +552,16 @@ write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 -Event: refblock_alloc_switch_table; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +Event: refblock_alloc_switch_table; errno: 28; imm: off; once: off; write=20 +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: refblock_alloc_switch_table; errno: 28; imm: off; once: off; write = -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. =20 @@ -595,8 +595,8 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: l1_grow_write_table; errno: 5; imm: off; once: off -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -607,8 +607,8 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: l1_grow_write_table; errno: 28; imm: off; once: off -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -619,8 +619,8 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: l1_grow_activate_table; errno: 5; imm: off; once: off -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: error: Failed to flush the L2 table cache: Input/output error +qemu-io: error: Failed to flush the refcount block cache: Input/output err= or write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 @@ -631,8 +631,8 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 =20 Event: l1_grow_activate_table; errno: 28; imm: off; once: off -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: error: Failed to flush the L2 table cache: No space left on device +qemu-io: error: Failed to flush the refcount block cache: No space left on= device write failed: No space left on device No errors were found on the image. =20 diff --git a/tests/qemu-iotests/036.out b/tests/qemu-iotests/036.out index 0b52b934e1..b08e7c1cc6 100644 --- a/tests/qemu-iotests/036.out +++ b/tests/qemu-iotests/036.out @@ -6,18 +6,18 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108= 864 incompatible_features [63] compatible_features [] autoclear_features [] -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT feature(s= ): Unknown incompatible feature: 8000000000000000 -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT feature(s= ): Test feature +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT fe= ature(s): Unknown incompatible feature: 8000000000000000 +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT fe= ature(s): Test feature =20 =3D=3D=3D Image with multiple incompatible feature bits =3D=3D=3D =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT feature(s= ): Unknown incompatible feature: e000000000000000 -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT feature(s= ): Test feature, Unknown incompatible feature: 6000000000000000 -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT feature(s= ): Test feature, Unknown incompatible feature: c000000000000000 -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT feature(s= ): test1, test2, Unknown incompatible feature: 8000000000000000 -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT feature(s= ): test1, test2, test3 -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT feature(s= ): test2, Unknown incompatible feature: a000000000000000 +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT fe= ature(s): Unknown incompatible feature: e000000000000000 +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT fe= ature(s): Test feature, Unknown incompatible feature: 6000000000000000 +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT fe= ature(s): Test feature, Unknown incompatible feature: c000000000000000 +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT fe= ature(s): test1, test2, Unknown incompatible feature: 8000000000000000 +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT fe= ature(s): test1, test2, test3 +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': Unsupported IMGFMT fe= ature(s): test2, Unknown incompatible feature: a000000000000000 =3D=3D=3D Create image with unknown autoclear feature bit =3D=3D=3D =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 diff --git a/tests/qemu-iotests/043.out b/tests/qemu-iotests/043.out index 0280f999ce..a6f307ceeb 100644 --- a/tests/qemu-iotests/043.out +++ b/tests/qemu-iotests/043.out @@ -2,19 +2,19 @@ QA output created by 043 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 =20 =3D=3D backing file references self =3D=3D -qemu-img: Backing file 'TEST_DIR/t.IMGFMT' creates an infinite loop. +qemu-img: error: Backing file 'TEST_DIR/t.IMGFMT' creates an infinite loop. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 backing_file= =3DTEST_DIR/t.IMGFMT.base =20 =3D=3D parent references self =3D=3D -qemu-img: Backing file 'TEST_DIR/t.IMGFMT' creates an infinite loop. +qemu-img: error: Backing file 'TEST_DIR/t.IMGFMT' creates an infinite loop. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 backing_file= =3DTEST_DIR/t.IMGFMT.1.base Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 backing_file= =3DTEST_DIR/t.IMGFMT.2.base Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 backing_file= =3DTEST_DIR/t.IMGFMT.3.base =20 =3D=3D ancestor references another ancestor =3D=3D -qemu-img: Backing file 'TEST_DIR/t.IMGFMT.2.base' creates an infinite loop. +qemu-img: error: Backing file 'TEST_DIR/t.IMGFMT.2.base' creates an infini= te loop. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 backing_file= =3DTEST_DIR/t.IMGFMT.1.base Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 backing_file= =3DTEST_DIR/t.IMGFMT.2.base diff --git a/tests/qemu-iotests/049.out b/tests/qemu-iotests/049.out index affa55b341..60d75f0290 100644 --- a/tests/qemu-iotests/049.out +++ b/tests/qemu-iotests/049.out @@ -92,39 +92,39 @@ Formatting 'TEST_DIR/t.qcow2', fmt=3Dqcow2 size=3D16492= 67441664 cluster_size=3D65536 l =3D=3D 3. Invalid sizes =3D=3D =20 qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- -1024 -qemu-img: Image size must be less than 8 EiB! +qemu-img: error: Image size must be less than 8 EiB! =20 qemu-img create -f qcow2 -o size=3D-1024 TEST_DIR/t.qcow2 -qemu-img: TEST_DIR/t.qcow2: Value '-1024' is out of range for parameter 's= ize' +qemu-img: error: TEST_DIR/t.qcow2: Value '-1024' is out of range for param= eter 'size' =20 qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- -1k -qemu-img: Image size must be less than 8 EiB! +qemu-img: error: Image size must be less than 8 EiB! =20 qemu-img create -f qcow2 -o size=3D-1k TEST_DIR/t.qcow2 -qemu-img: TEST_DIR/t.qcow2: Value '-1k' is out of range for parameter 'siz= e' +qemu-img: error: TEST_DIR/t.qcow2: Value '-1k' is out of range for paramet= er 'size' =20 qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- 1kilobyte -qemu-img: Invalid image size specified! You may use k, M, G, T, P or E suf= fixes for -qemu-img: kilobytes, megabytes, gigabytes, terabytes, petabytes and exabyt= es. +qemu-img: error: Invalid image size specified! You may use k, M, G, T, P o= r E suffixes for=20 +qemu-img: error: kilobytes, megabytes, gigabytes, terabytes, petabytes and= exabytes. =20 qemu-img create -f qcow2 -o size=3D1kilobyte TEST_DIR/t.qcow2 -qemu-img: TEST_DIR/t.qcow2: Parameter 'size' expects a non-negative number= below 2^64 +qemu-img: error: TEST_DIR/t.qcow2: Parameter 'size' expects a non-negative= number below 2^64 Optional suffix k, M, G, T, P or E means kilo-, mega-, giga-, tera-, peta- and exabytes, respectively. =20 qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- foobar -qemu-img: Invalid image size specified! You may use k, M, G, T, P or E suf= fixes for -qemu-img: kilobytes, megabytes, gigabytes, terabytes, petabytes and exabyt= es. +qemu-img: error: Invalid image size specified! You may use k, M, G, T, P o= r E suffixes for=20 +qemu-img: error: kilobytes, megabytes, gigabytes, terabytes, petabytes and= exabytes. =20 qemu-img create -f qcow2 -o size=3Dfoobar TEST_DIR/t.qcow2 -qemu-img: TEST_DIR/t.qcow2: Parameter 'size' expects a non-negative number= below 2^64 +qemu-img: error: TEST_DIR/t.qcow2: Parameter 'size' expects a non-negative= number below 2^64 Optional suffix k, M, G, T, P or E means kilo-, mega-, giga-, tera-, peta- and exabytes, respectively. =20 =3D=3D 4. Specify size twice (-o and traditional parameter) =3D=3D =20 qemu-img create -f qcow2 -o size=3D10M TEST_DIR/t.qcow2 20M -qemu-img: TEST_DIR/t.qcow2: The image size must be specified only once +qemu-img: error: TEST_DIR/t.qcow2: The image size must be specified only o= nce =20 =3D=3D Check correct interpretation of suffixes for cluster size =3D=3D =20 @@ -167,11 +167,11 @@ qemu-img create -f qcow2 -o compat=3D1.1 TEST_DIR/t.q= cow2 64M Formatting 'TEST_DIR/t.qcow2', fmt=3Dqcow2 size=3D67108864 compat=3D1.1 cl= uster_size=3D65536 lazy_refcounts=3Doff refcount_bits=3D16 =20 qemu-img create -f qcow2 -o compat=3D0.42 TEST_DIR/t.qcow2 64M -qemu-img: TEST_DIR/t.qcow2: Invalid parameter '0.42' +qemu-img: error: TEST_DIR/t.qcow2: Invalid parameter '0.42' Formatting 'TEST_DIR/t.qcow2', fmt=3Dqcow2 size=3D67108864 compat=3D0.42 c= luster_size=3D65536 lazy_refcounts=3Doff refcount_bits=3D16 =20 qemu-img create -f qcow2 -o compat=3Dfoobar TEST_DIR/t.qcow2 64M -qemu-img: TEST_DIR/t.qcow2: Invalid parameter 'foobar' +qemu-img: error: TEST_DIR/t.qcow2: Invalid parameter 'foobar' Formatting 'TEST_DIR/t.qcow2', fmt=3Dqcow2 size=3D67108864 compat=3Dfoobar= cluster_size=3D65536 lazy_refcounts=3Doff refcount_bits=3D16 =20 =3D=3D Check preallocation option =3D=3D @@ -183,7 +183,7 @@ qemu-img create -f qcow2 -o preallocation=3Dmetadata TE= ST_DIR/t.qcow2 64M Formatting 'TEST_DIR/t.qcow2', fmt=3Dqcow2 size=3D67108864 cluster_size=3D= 65536 preallocation=3Dmetadata lazy_refcounts=3Doff refcount_bits=3D16 =20 qemu-img create -f qcow2 -o preallocation=3D1234 TEST_DIR/t.qcow2 64M -qemu-img: TEST_DIR/t.qcow2: Invalid parameter '1234' +qemu-img: error: TEST_DIR/t.qcow2: Invalid parameter '1234' Formatting 'TEST_DIR/t.qcow2', fmt=3Dqcow2 size=3D67108864 cluster_size=3D= 65536 preallocation=3D1234 lazy_refcounts=3Doff refcount_bits=3D16 =20 =3D=3D Check encryption option =3D=3D @@ -206,7 +206,7 @@ qemu-img create -f qcow2 -o compat=3D0.10,lazy_refcount= s=3Doff TEST_DIR/t.qcow2 64M Formatting 'TEST_DIR/t.qcow2', fmt=3Dqcow2 size=3D67108864 compat=3D0.10 c= luster_size=3D65536 lazy_refcounts=3Doff refcount_bits=3D16 =20 qemu-img create -f qcow2 -o compat=3D0.10,lazy_refcounts=3Don TEST_DIR/t.q= cow2 64M -qemu-img: TEST_DIR/t.qcow2: Lazy refcounts only supported with compatibili= ty level 1.1 and above (use version=3Dv3 or greater) +qemu-img: error: TEST_DIR/t.qcow2: Lazy refcounts only supported with comp= atibility level 1.1 and above (use version=3Dv3 or greater) Formatting 'TEST_DIR/t.qcow2', fmt=3Dqcow2 size=3D67108864 compat=3D0.10 c= luster_size=3D65536 lazy_refcounts=3Don refcount_bits=3D16 =20 *** done diff --git a/tests/qemu-iotests/051.pc.out b/tests/qemu-iotests/051.pc.out index 0ea80d35f0..ddb035cf10 100644 --- a/tests/qemu-iotests/051.pc.out +++ b/tests/qemu-iotests/051.pc.out @@ -5,46 +5,46 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D13421= 7728 backing_file=3DTEST_DIR/ =3D=3D=3D Unknown option =3D=3D=3D =20 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,unknown_opt=3D,if= =3Dnone,id=3Ddrive0 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,unknown_opt=3D,if= =3Dnone,id=3Ddrive0: Block format 'qcow2' does not support the option 'unkn= own_opt' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,unknown_opt=3D,if= =3Dnone,id=3Ddrive0: error: Block format 'qcow2' does not support the optio= n 'unknown_opt' =20 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,unknown_opt=3Don,if= =3Dnone,id=3Ddrive0 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,unknown_opt=3Don,= if=3Dnone,id=3Ddrive0: Block format 'qcow2' does not support the option 'un= known_opt' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,unknown_opt=3Don,= if=3Dnone,id=3Ddrive0: error: Block format 'qcow2' does not support the opt= ion 'unknown_opt' =20 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,unknown_opt=3D1234,= if=3Dnone,id=3Ddrive0 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,unknown_opt=3D123= 4,if=3Dnone,id=3Ddrive0: Block format 'qcow2' does not support the option '= unknown_opt' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,unknown_opt=3D123= 4,if=3Dnone,id=3Ddrive0: error: Block format 'qcow2' does not support the o= ption 'unknown_opt' =20 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,unknown_opt=3Dfoo,i= f=3Dnone,id=3Ddrive0 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,unknown_opt=3Dfoo= ,if=3Dnone,id=3Ddrive0: Block format 'qcow2' does not support the option 'u= nknown_opt' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,unknown_opt=3Dfoo= ,if=3Dnone,id=3Ddrive0: error: Block format 'qcow2' does not support the op= tion 'unknown_opt' =20 =20 =3D=3D=3D Unknown protocol option =3D=3D=3D =20 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,file.unknown_opt=3D -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,file.unknown_opt= =3D: Block protocol 'file' doesn't support the option 'unknown_opt' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,file.unknown_opt= =3D: error: Block protocol 'file' doesn't support the option 'unknown_opt' =20 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,file.unknown_opt=3D= on -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,file.unknown_opt= =3Don: Block protocol 'file' doesn't support the option 'unknown_opt' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,file.unknown_opt= =3Don: error: Block protocol 'file' doesn't support the option 'unknown_opt' =20 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,file.unknown_opt=3D= 1234 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,file.unknown_opt= =3D1234: Block protocol 'file' doesn't support the option 'unknown_opt' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,file.unknown_opt= =3D1234: error: Block protocol 'file' doesn't support the option 'unknown_o= pt' =20 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,file.unknown_opt=3D= foo -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,file.unknown_opt= =3Dfoo: Block protocol 'file' doesn't support the option 'unknown_opt' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,file.unknown_opt= =3Dfoo: error: Block protocol 'file' doesn't support the option 'unknown_op= t' =20 =20 =3D=3D=3D Invalid format =3D=3D=3D =20 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dfoo -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dfoo: Unknown driver 'fo= o' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dfoo: error: Unknown dri= ver 'foo' =20 Testing: -drive file=3DTEST_DIR/t.qcow2,driver=3Dfoo -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,driver=3Dfoo: Unknown driver 'fo= o' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,driver=3Dfoo: error: Unknown dri= ver 'foo' =20 Testing: -drive file=3DTEST_DIR/t.qcow2,driver=3Draw,format=3Dqcow2 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,driver=3Draw,format=3Dqcow2: Can= not specify both 'driver' and 'format' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,driver=3Draw,format=3Dqcow2: err= or: Cannot specify both 'driver' and 'format' =20 Testing: -drive file=3DTEST_DIR/t.qcow2,driver=3Dqcow2,format=3Dqcow2 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,driver=3Dqcow2,format=3Dqcow2: C= annot specify both 'driver' and 'format' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,driver=3Dqcow2,format=3Dqcow2: e= rror: Cannot specify both 'driver' and 'format' =20 =20 =3D=3D=3D Node names =3D=3D=3D @@ -54,27 +54,27 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) quit =20 Testing: -drive file=3DTEST_DIR/t.qcow2,node-name=3Dx123456789012345678901= 2345678901 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,node-name=3Dx1234567890123456789= 012345678901: Node name too long +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,node-name=3Dx1234567890123456789= 012345678901: error: Node name too long =20 Testing: -drive file=3DTEST_DIR/t.qcow2,node-name=3DAll-Types.of_all0wed_c= hars QEMU X.Y.Z monitor - type 'help' for more information (qemu) quit =20 Testing: -drive file=3DTEST_DIR/t.qcow2,node-name=3D123foo -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,node-name=3D123foo: Invalid node= name +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,node-name=3D123foo: error: Inval= id node name =20 Testing: -drive file=3DTEST_DIR/t.qcow2,node-name=3D_foo -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,node-name=3D_foo: Invalid node n= ame +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,node-name=3D_foo: error: Invalid= node name =20 Testing: -drive file=3DTEST_DIR/t.qcow2,node-name=3Dfoo#12 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,node-name=3Dfoo#12: Invalid node= name +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,node-name=3Dfoo#12: error: Inval= id node name =20 =20 =3D=3D=3D Device without drive =3D=3D=3D =20 Testing: -device VIRTIO_SCSI -device scsi-hd QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device scsi-hd: drive property not set +(qemu) QEMU_PROG: -device scsi-hd: error: drive property not set =20 =20 =3D=3D=3D Overriding backing file =3D=3D=3D @@ -89,13 +89,13 @@ drive0 (NODE_NAME): json:{"backing": {"driver": "qcow2"= , "file": {"driver": "fil (qemu) quit =20 Testing: -drive file=3DTEST_DIR/t.qcow2,driver=3Draw,backing.file.filename= =3DTEST_DIR/t.qcow2.orig -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,driver=3Draw,backing.file.filena= me=3DTEST_DIR/t.qcow2.orig: Driver doesn't support backing files +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,driver=3Draw,backing.file.filena= me=3DTEST_DIR/t.qcow2.orig: error: Driver doesn't support backing files =20 Testing: -drive file=3DTEST_DIR/t.qcow2,file.backing.driver=3Dfile,file.ba= cking.filename=3DTEST_DIR/t.qcow2.orig -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,file.backing.driver=3Dfile,file.= backing.filename=3DTEST_DIR/t.qcow2.orig: Driver doesn't support backing fi= les +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,file.backing.driver=3Dfile,file.= backing.filename=3DTEST_DIR/t.qcow2.orig: error: Driver doesn't support bac= king files =20 Testing: -drive file=3DTEST_DIR/t.qcow2,file.backing.driver=3Dqcow2,file.b= acking.file.filename=3DTEST_DIR/t.qcow2.orig -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,file.backing.driver=3Dqcow2,file= .backing.file.filename=3DTEST_DIR/t.qcow2.orig: Driver doesn't support back= ing files +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,file.backing.driver=3Dqcow2,file= .backing.file.filename=3DTEST_DIR/t.qcow2.orig: error: Driver doesn't suppo= rt backing files =20 =20 =3D=3D=3D Enable and disable lazy refcounting on the command line, plus so= me invalid values =3D=3D=3D @@ -110,20 +110,20 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) quit =20 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,lazy-refcounts=3D -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,lazy-refcounts=3D= : Parameter 'lazy-refcounts' expects 'on' or 'off' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,lazy-refcounts=3D= : error: Parameter 'lazy-refcounts' expects 'on' or 'off' =20 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,lazy-refcounts=3D42 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,lazy-refcounts=3D= 42: Parameter 'lazy-refcounts' expects 'on' or 'off' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,lazy-refcounts=3D= 42: error: Parameter 'lazy-refcounts' expects 'on' or 'off' =20 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,lazy-refcounts=3Dfoo -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,lazy-refcounts=3D= foo: Parameter 'lazy-refcounts' expects 'on' or 'off' +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,lazy-refcounts=3D= foo: error: Parameter 'lazy-refcounts' expects 'on' or 'off' =20 =20 =3D=3D=3D With version 2 images enabling lazy refcounts must fail =3D=3D= =3D =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,lazy-refcounts=3Don -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,lazy-refcounts=3D= on: Lazy refcounts require a qcow2 image with at least qemu 1.1 compatibili= ty level +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,lazy-refcounts=3D= on: error: Lazy refcounts require a qcow2 image with at least qemu 1.1 comp= atibility level =20 Testing: -drive file=3DTEST_DIR/t.qcow2,format=3Dqcow2,lazy-refcounts=3Doff QEMU X.Y.Z monitor - type 'help' for more information @@ -142,11 +142,11 @@ QEMU X.Y.Z monitor - type 'help' for more information =20 Testing: -drive if=3Dide QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: Initialization of device ide-hd failed: Device needs med= ia, but drive is empty +(qemu) QEMU_PROG: error: Initialization of device ide-hd failed: Device ne= eds media, but drive is empty =20 Testing: -drive if=3Dvirtio QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -drive if=3Dvirtio: Device needs media, but drive is emp= ty +(qemu) QEMU_PROG: -drive if=3Dvirtio: error: Device needs media, but drive= is empty =20 Testing: -drive if=3Dnone,id=3Ddisk -device ide-cd,drive=3Ddisk QEMU X.Y.Z monitor - type 'help' for more information @@ -159,43 +159,43 @@ QEMU X.Y.Z monitor - type 'help' for more information Testing: -drive if=3Dnone,id=3Ddisk -device ide-drive,drive=3Ddisk QEMU X.Y.Z monitor - type 'help' for more information (qemu) QEMU_PROG: -device ide-drive,drive=3Ddisk: warning: 'ide-drive' is = deprecated, please use 'ide-hd' or 'ide-cd' instead -QEMU_PROG: -device ide-drive,drive=3Ddisk: Device needs media, but drive i= s empty +QEMU_PROG: -device ide-drive,drive=3Ddisk: error: Device needs media, but = drive is empty =20 Testing: -drive if=3Dnone,id=3Ddisk -device ide-hd,drive=3Ddisk QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device ide-hd,drive=3Ddisk: Device needs media, but dri= ve is empty +(qemu) QEMU_PROG: -device ide-hd,drive=3Ddisk: error: Device needs media, = but drive is empty =20 Testing: -drive if=3Dnone,id=3Ddisk -device lsi53c895a -device scsi-disk,d= rive=3Ddisk QEMU X.Y.Z monitor - type 'help' for more information (qemu) QEMU_PROG: -device scsi-disk,drive=3Ddisk: warning: 'scsi-disk' is = deprecated, please use 'scsi-hd' or 'scsi-cd' instead -QEMU_PROG: -device scsi-disk,drive=3Ddisk: Device needs media, but drive i= s empty +QEMU_PROG: -device scsi-disk,drive=3Ddisk: error: Device needs media, but = drive is empty =20 Testing: -drive if=3Dnone,id=3Ddisk -device lsi53c895a -device scsi-hd,dri= ve=3Ddisk QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device scsi-hd,drive=3Ddisk: Device needs media, but dr= ive is empty +(qemu) QEMU_PROG: -device scsi-hd,drive=3Ddisk: error: Device needs media,= but drive is empty =20 =20 =3D=3D=3D Attach to node in non-default iothread =3D=3D=3D =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,node-name=3Ddisk -object= iothread,id=3Dthread0 -device virtio-scsi,iothread=3Dthread0,id=3Dvirtio-s= csi0 -device scsi-hd,bus=3Dvirtio-scsi0.0,drive=3Ddisk,share-rw=3Don -devic= e ide-hd,drive=3Ddisk,share-rw=3Don QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device ide-hd,drive=3Ddisk,share-rw=3Don: Cannot change= iothread of active block backend +(qemu) QEMU_PROG: -device ide-hd,drive=3Ddisk,share-rw=3Don: error: Cannot= change iothread of active block backend =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,node-name=3Ddisk -object= iothread,id=3Dthread0 -device virtio-scsi,iothread=3Dthread0,id=3Dvirtio-s= csi0 -device scsi-hd,bus=3Dvirtio-scsi0.0,drive=3Ddisk,share-rw=3Don -devic= e virtio-blk-pci,drive=3Ddisk,share-rw=3Don QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device virtio-blk-pci,drive=3Ddisk,share-rw=3Don: Canno= t change iothread of active block backend +(qemu) QEMU_PROG: -device virtio-blk-pci,drive=3Ddisk,share-rw=3Don: error= : Cannot change iothread of active block backend =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,node-name=3Ddisk -object= iothread,id=3Dthread0 -device virtio-scsi,iothread=3Dthread0,id=3Dvirtio-s= csi0 -device scsi-hd,bus=3Dvirtio-scsi0.0,drive=3Ddisk,share-rw=3Don -devic= e lsi53c895a,id=3Dlsi0 -device scsi-hd,bus=3Dlsi0.0,drive=3Ddisk,share-rw= =3Don QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device scsi-hd,bus=3Dlsi0.0,drive=3Ddisk,share-rw=3Don:= HBA does not support iothreads +(qemu) QEMU_PROG: -device scsi-hd,bus=3Dlsi0.0,drive=3Ddisk,share-rw=3Don:= error: HBA does not support iothreads =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,node-name=3Ddisk -object= iothread,id=3Dthread0 -device virtio-scsi,iothread=3Dthread0,id=3Dvirtio-s= csi0 -device scsi-hd,bus=3Dvirtio-scsi0.0,drive=3Ddisk,share-rw=3Don -devic= e virtio-scsi,id=3Dvirtio-scsi1 -device scsi-hd,bus=3Dvirtio-scsi1.0,drive= =3Ddisk,share-rw=3Don QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device scsi-hd,bus=3Dvirtio-scsi1.0,drive=3Ddisk,share-= rw=3Don: Cannot change iothread of active block backend +(qemu) QEMU_PROG: -device scsi-hd,bus=3Dvirtio-scsi1.0,drive=3Ddisk,share-= rw=3Don: error: Cannot change iothread of active block backend =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,node-name=3Ddisk -object= iothread,id=3Dthread0 -device virtio-scsi,iothread=3Dthread0,id=3Dvirtio-s= csi0 -device scsi-hd,bus=3Dvirtio-scsi0.0,drive=3Ddisk,share-rw=3Don -devic= e virtio-blk-pci,drive=3Ddisk,iohtread=3Diothread0,share-rw=3Don QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device virtio-blk-pci,drive=3Ddisk,iohtread=3Diothread0= ,share-rw=3Don: Cannot change iothread of active block backend +(qemu) QEMU_PROG: -device virtio-blk-pci,drive=3Ddisk,iohtread=3Diothread0= ,share-rw=3Don: error: Cannot change iothread of active block backend =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,node-name=3Ddisk -object= iothread,id=3Dthread0 -device virtio-scsi,iothread=3Dthread0,id=3Dvirtio-s= csi0 -device scsi-hd,bus=3Dvirtio-scsi0.0,drive=3Ddisk,share-rw=3Don -devic= e virtio-scsi,id=3Dvirtio-scsi1,iothread=3Dthread0 -device scsi-hd,bus=3Dvi= rtio-scsi1.0,drive=3Ddisk,share-rw=3Don QEMU X.Y.Z monitor - type 'help' for more information @@ -214,7 +214,7 @@ QEMU X.Y.Z monitor - type 'help' for more information =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dide,readonly=3Don QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: Initialization of device ide-hd failed: Block node is re= ad-only +(qemu) QEMU_PROG: error: Initialization of device ide-hd failed: Block nod= e is read-only =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dvirtio,readonly=3Don QEMU X.Y.Z monitor - type 'help' for more information @@ -231,11 +231,11 @@ QEMU X.Y.Z monitor - type 'help' for more information Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,id=3Ddisk,readonly=3Don = -device ide-drive,drive=3Ddisk QEMU X.Y.Z monitor - type 'help' for more information (qemu) QEMU_PROG: -device ide-drive,drive=3Ddisk: warning: 'ide-drive' is = deprecated, please use 'ide-hd' or 'ide-cd' instead -QEMU_PROG: -device ide-drive,drive=3Ddisk: Block node is read-only +QEMU_PROG: -device ide-drive,drive=3Ddisk: error: Block node is read-only =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,id=3Ddisk,readonly=3Don = -device ide-hd,drive=3Ddisk QEMU X.Y.Z monitor - type 'help' for more information -(qemu) QEMU_PROG: -device ide-hd,drive=3Ddisk: Block node is read-only +(qemu) QEMU_PROG: -device ide-hd,drive=3Ddisk: error: Block node is read-o= nly =20 Testing: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,id=3Ddisk,readonly=3Don = -device lsi53c895a -device scsi-disk,drive=3Ddisk QEMU X.Y.Z monitor - type 'help' for more information @@ -270,7 +270,7 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) quit =20 Testing: -drive driver=3Dnull-co,cache=3Dinvalid_value -QEMU_PROG: -drive driver=3Dnull-co,cache=3Dinvalid_value: invalid cache op= tion +QEMU_PROG: -drive driver=3Dnull-co,cache=3Dinvalid_value: error: invalid c= ache option =20 Testing: -drive file=3DTEST_DIR/t.qcow2,cache=3Dwriteback,backing.file.fil= ename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backing.node-name= =3Dbacking,backing.file.node-name=3Dbacking-file,file.node-name=3Dfile,if= =3Dnone,id=3Ddrive0 -nodefaults QEMU X.Y.Z monitor - type 'help' for more information @@ -333,7 +333,7 @@ backing-file: TEST_DIR/t.qcow2.base (file, read-only) (qemu) quit =20 Testing: -drive file=3DTEST_DIR/t.qcow2,cache=3Dinvalid_value,backing.file= .filename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backing.node-= name=3Dbacking,backing.file.node-name=3Dbacking-file,file.node-name=3Dfile,= if=3Dnone,id=3Ddrive0 -nodefaults -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,cache=3Dinvalid_value,backing.fi= le.filename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backing.nod= e-name=3Dbacking,backing.file.node-name=3Dbacking-file,file.node-name=3Dfil= e,if=3Dnone,id=3Ddrive0: invalid cache option +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,cache=3Dinvalid_value,backing.fi= le.filename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backing.nod= e-name=3Dbacking,backing.file.node-name=3Dbacking-file,file.node-name=3Dfil= e,if=3Dnone,id=3Ddrive0: error: invalid cache option =20 =20 =3D=3D=3D Specifying the protocol layer =3D=3D=3D @@ -346,94 +346,94 @@ QEMU X.Y.Z monitor - type 'help' for more information =3D=3D=3D Leaving out required options =3D=3D=3D =20 Testing: -drive driver=3Dfile -QEMU_PROG: -drive driver=3Dfile: The 'file' block driver requires a file n= ame +QEMU_PROG: -drive driver=3Dfile: error: The 'file' block driver requires a= file name =20 Testing: -drive driver=3Dfile,filename=3D -QEMU_PROG: -drive driver=3Dfile,filename=3D: The 'file' block driver requi= res a file name +QEMU_PROG: -drive driver=3Dfile,filename=3D: error: The 'file' block drive= r requires a file name =20 Testing: -drive driver=3Dnbd -QEMU_PROG: -drive driver=3Dnbd: NBD server address missing +QEMU_PROG: -drive driver=3Dnbd: error: NBD server address missing =20 Testing: -drive driver=3Draw -QEMU_PROG: -drive driver=3Draw: A block device must be specified for "file" +QEMU_PROG: -drive driver=3Draw: error: A block device must be specified fo= r "file" =20 Testing: -drive file.driver=3Dfile -QEMU_PROG: -drive file.driver=3Dfile: The 'file' block driver requires a f= ile name +QEMU_PROG: -drive file.driver=3Dfile: error: The 'file' block driver requi= res a file name =20 Testing: -drive file.driver=3Dnbd -QEMU_PROG: -drive file.driver=3Dnbd: NBD server address missing +QEMU_PROG: -drive file.driver=3Dnbd: error: NBD server address missing =20 Testing: -drive file.driver=3Draw -QEMU_PROG: -drive file.driver=3Draw: A block device must be specified for = "file" +QEMU_PROG: -drive file.driver=3Draw: error: A block device must be specifi= ed for "file" =20 Testing: -drive foo=3Dbar -QEMU_PROG: -drive foo=3Dbar: Must specify either driver or file +QEMU_PROG: -drive foo=3Dbar: error: Must specify either driver or file =20 =20 =3D=3D=3D Specifying both an option and its legacy alias =3D=3D=3D =20 Testing: -drive file=3DTEST_DIR/t.qcow2,iops=3D1234,throttling.iops-total= =3D5678 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops=3D1234,throttling.iops-tota= l=3D5678: 'throttling.iops-total' and its alias 'iops' can't be used at the= same time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops=3D1234,throttling.iops-tota= l=3D5678: error: 'throttling.iops-total' and its alias 'iops' can't be used= at the same time =20 Testing: -drive file=3DTEST_DIR/t.qcow2,iops_rd=3D1234,throttling.iops-rea= d=3D5678 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops_rd=3D1234,throttling.iops-r= ead=3D5678: 'throttling.iops-read' and its alias 'iops_rd' can't be used at= the same time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops_rd=3D1234,throttling.iops-r= ead=3D5678: error: 'throttling.iops-read' and its alias 'iops_rd' can't be = used at the same time =20 Testing: -drive file=3DTEST_DIR/t.qcow2,iops_wr=3D1234,throttling.iops-wri= te=3D5678 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops_wr=3D1234,throttling.iops-w= rite=3D5678: 'throttling.iops-write' and its alias 'iops_wr' can't be used = at the same time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops_wr=3D1234,throttling.iops-w= rite=3D5678: error: 'throttling.iops-write' and its alias 'iops_wr' can't b= e used at the same time =20 Testing: -drive file=3DTEST_DIR/t.qcow2,bps=3D1234,throttling.bps-total=3D= 5678 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps=3D1234,throttling.bps-total= =3D5678: 'throttling.bps-total' and its alias 'bps' can't be used at the sa= me time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps=3D1234,throttling.bps-total= =3D5678: error: 'throttling.bps-total' and its alias 'bps' can't be used at= the same time =20 Testing: -drive file=3DTEST_DIR/t.qcow2,bps_rd=3D1234,throttling.bps-read= =3D5678 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_rd=3D1234,throttling.bps-rea= d=3D5678: 'throttling.bps-read' and its alias 'bps_rd' can't be used at the= same time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_rd=3D1234,throttling.bps-rea= d=3D5678: error: 'throttling.bps-read' and its alias 'bps_rd' can't be used= at the same time =20 Testing: -drive file=3DTEST_DIR/t.qcow2,bps_wr=3D1234,throttling.bps-write= =3D5678 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_wr=3D1234,throttling.bps-wri= te=3D5678: 'throttling.bps-write' and its alias 'bps_wr' can't be used at t= he same time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_wr=3D1234,throttling.bps-wri= te=3D5678: error: 'throttling.bps-write' and its alias 'bps_wr' can't be us= ed at the same time =20 Testing: -drive file=3DTEST_DIR/t.qcow2,iops_max=3D1234,throttling.iops-to= tal-max=3D5678 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops_max=3D1234,throttling.iops-= total-max=3D5678: 'throttling.iops-total-max' and its alias 'iops_max' can'= t be used at the same time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops_max=3D1234,throttling.iops-= total-max=3D5678: error: 'throttling.iops-total-max' and its alias 'iops_ma= x' can't be used at the same time =20 Testing: -drive file=3DTEST_DIR/t.qcow2,iops_rd_max=3D1234,throttling.iops= -read-max=3D5678 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops_rd_max=3D1234,throttling.io= ps-read-max=3D5678: 'throttling.iops-read-max' and its alias 'iops_rd_max' = can't be used at the same time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops_rd_max=3D1234,throttling.io= ps-read-max=3D5678: error: 'throttling.iops-read-max' and its alias 'iops_r= d_max' can't be used at the same time =20 Testing: -drive file=3DTEST_DIR/t.qcow2,iops_wr_max=3D1234,throttling.iops= -write-max=3D5678 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops_wr_max=3D1234,throttling.io= ps-write-max=3D5678: 'throttling.iops-write-max' and its alias 'iops_wr_max= ' can't be used at the same time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops_wr_max=3D1234,throttling.io= ps-write-max=3D5678: error: 'throttling.iops-write-max' and its alias 'iops= _wr_max' can't be used at the same time =20 Testing: -drive file=3DTEST_DIR/t.qcow2,bps_max=3D1234,throttling.bps-tota= l-max=3D5678 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_max=3D1234,throttling.bps-to= tal-max=3D5678: 'throttling.bps-total-max' and its alias 'bps_max' can't be= used at the same time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_max=3D1234,throttling.bps-to= tal-max=3D5678: error: 'throttling.bps-total-max' and its alias 'bps_max' c= an't be used at the same time =20 Testing: -drive file=3DTEST_DIR/t.qcow2,bps_rd_max=3D1234,throttling.bps-r= ead-max=3D5678 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_rd_max=3D1234,throttling.bps= -read-max=3D5678: 'throttling.bps-read-max' and its alias 'bps_rd_max' can'= t be used at the same time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_rd_max=3D1234,throttling.bps= -read-max=3D5678: error: 'throttling.bps-read-max' and its alias 'bps_rd_ma= x' can't be used at the same time =20 Testing: -drive file=3DTEST_DIR/t.qcow2,bps_wr_max=3D1234,throttling.bps-w= rite-max=3D5678 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_wr_max=3D1234,throttling.bps= -write-max=3D5678: 'throttling.bps-write-max' and its alias 'bps_wr_max' ca= n't be used at the same time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_wr_max=3D1234,throttling.bps= -write-max=3D5678: error: 'throttling.bps-write-max' and its alias 'bps_wr_= max' can't be used at the same time =20 Testing: -drive file=3DTEST_DIR/t.qcow2,iops_size=3D1234,throttling.iops-s= ize=3D5678 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops_size=3D1234,throttling.iops= -size=3D5678: 'throttling.iops-size' and its alias 'iops_size' can't be use= d at the same time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops_size=3D1234,throttling.iops= -size=3D5678: error: 'throttling.iops-size' and its alias 'iops_size' can't= be used at the same time =20 Testing: -drive file=3DTEST_DIR/t.qcow2,readonly=3Don,read-only=3Doff -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,readonly=3Don,read-only=3Doff: '= read-only' and its alias 'readonly' can't be used at the same time +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,readonly=3Don,read-only=3Doff: e= rror: 'read-only' and its alias 'readonly' can't be used at the same time =20 =20 =3D=3D=3D Catching negative/large throttling values =3D=3D=3D =20 Testing: -drive file=3DTEST_DIR/t.qcow2,iops=3D-1 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops=3D-1: bps/iops/max values m= ust be within [0, 1000000000000000] +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,iops=3D-1: error: bps/iops/max v= alues must be within [0, 1000000000000000] =20 Testing: -drive file=3DTEST_DIR/t.qcow2,bps=3D-2 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps=3D-2: bps/iops/max values mu= st be within [0, 1000000000000000] +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps=3D-2: error: bps/iops/max va= lues must be within [0, 1000000000000000] =20 Testing: -drive file=3DTEST_DIR/t.qcow2,bps_rd=3D-3 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_rd=3D-3: bps/iops/max values= must be within [0, 1000000000000000] +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_rd=3D-3: error: bps/iops/max= values must be within [0, 1000000000000000] =20 Testing: -drive file=3DTEST_DIR/t.qcow2,bps_rd_max=3D-3 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_rd_max=3D-3: bps/iops/max va= lues must be within [0, 1000000000000000] +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps_rd_max=3D-3: error: bps/iops= /max values must be within [0, 1000000000000000] =20 Testing: -drive file=3DTEST_DIR/t.qcow2,throttling.iops-total=3D-4 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,throttling.iops-total=3D-4: bps/= iops/max values must be within [0, 1000000000000000] +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,throttling.iops-total=3D-4: erro= r: bps/iops/max values must be within [0, 1000000000000000] =20 Testing: -drive file=3DTEST_DIR/t.qcow2,throttling.bps-total=3D-5 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,throttling.bps-total=3D-5: bps/i= ops/max values must be within [0, 1000000000000000] +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,throttling.bps-total=3D-5: error= : bps/iops/max values must be within [0, 1000000000000000] =20 Testing: -drive file=3DTEST_DIR/t.qcow2,bps=3D0 QEMU X.Y.Z monitor - type 'help' for more information @@ -448,22 +448,22 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) quit =20 Testing: -drive file=3DTEST_DIR/t.qcow2,bps=3D1000000000000001 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps=3D1000000000000001: bps/iops= /max values must be within [0, 1000000000000000] +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps=3D1000000000000001: error: b= ps/iops/max values must be within [0, 1000000000000000] =20 Testing: -drive file=3DTEST_DIR/t.qcow2,bps=3D9999999999999999 -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps=3D9999999999999999: bps/iops= /max values must be within [0, 1000000000000000] +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,bps=3D9999999999999999: error: b= ps/iops/max values must be within [0, 1000000000000000] =20 =20 =3D=3D=3D Parsing protocol from file name =3D=3D=3D =20 Testing: -hda foo:bar -QEMU_PROG: -hda foo:bar: Unknown protocol 'foo' +QEMU_PROG: -hda foo:bar: error: Unknown protocol 'foo' =20 Testing: -drive file=3Dfoo:bar -QEMU_PROG: -drive file=3Dfoo:bar: Unknown protocol 'foo' +QEMU_PROG: -drive file=3Dfoo:bar: error: Unknown protocol 'foo' =20 Testing: -drive file.filename=3Dfoo:bar -QEMU_PROG: -drive file.filename=3Dfoo:bar: Could not open 'foo:bar': No su= ch file or directory +QEMU_PROG: -drive file.filename=3Dfoo:bar: error: Could not open 'foo:bar'= : No such file or directory =20 Testing: -hda file:TEST_DIR/t.qcow2 QEMU X.Y.Z monitor - type 'help' for more information @@ -474,7 +474,7 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) quit =20 Testing: -drive file.filename=3Dfile:TEST_DIR/t.qcow2 -QEMU_PROG: -drive file.filename=3Dfile:TEST_DIR/t.qcow2: Could not open 'f= ile:TEST_DIR/t.qcow2': No such file or directory +QEMU_PROG: -drive file.filename=3Dfile:TEST_DIR/t.qcow2: error: Could not = open 'file:TEST_DIR/t.qcow2': No such file or directory =20 =20 =3D=3D=3D Snapshot mode =3D=3D=3D @@ -559,7 +559,7 @@ wrote 4096/4096 bytes at offset 0 read 4096/4096 bytes at offset 0 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) Testing: -drive driver=3Dnull-co,snapshot=3Don -QEMU_PROG: -drive driver=3Dnull-co,snapshot=3Don: Could not get temporary = filename: No such file or directory +QEMU_PROG: -drive driver=3Dnull-co,snapshot=3Don: error: Could not get tem= porary filename: No such file or directory =20 Testing: -drive file=3DTEST_DIR/t.qcow2,snapshot=3Don,read-only=3Don,if=3D= none,id=3Ddrive0 QEMU X.Y.Z monitor - type 'help' for more information diff --git a/tests/qemu-iotests/054.out b/tests/qemu-iotests/054.out index e6ec430edd..7cddf38bc0 100644 --- a/tests/qemu-iotests/054.out +++ b/tests/qemu-iotests/054.out @@ -1,10 +1,10 @@ QA output created by 054 =20 creating too large image (1 EB) -qemu-img: TEST_DIR/t.IMGFMT: The image size is too large for file format '= IMGFMT' (try using a larger cluster size) +qemu-img: error: TEST_DIR/t.IMGFMT: The image size is too large for file f= ormat 'IMGFMT' (try using a larger cluster size) Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1152921504606846976 =20 creating too large image (1 EB) using qcow2.py Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D4294967296 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Image is too big +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Image is too big *** done diff --git a/tests/qemu-iotests/060.out b/tests/qemu-iotests/060.out index d27692a33c..1162a9372e 100644 --- a/tests/qemu-iotests/060.out +++ b/tests/qemu-iotests/060.out @@ -20,7 +20,7 @@ Format specific information: lazy refcounts: false refcount bits: 16 corrupt: true -qemu-io: can't open device TEST_DIR/t.IMGFMT: IMGFMT: Image is corrupt; ca= nnot be opened read/write +qemu-io: error: can't open device TEST_DIR/t.IMGFMT: IMGFMT: Image is corr= upt; cannot be opened read/write no file open, try 'help open' read 512/512 bytes at offset 0 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) @@ -132,7 +132,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D671= 08864 wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) qcow2: Marking image as corrupt: L2 table offset 0x42a00 unaligned (L1 ind= ex: 0); further corruption events will be suppressed -qemu-img: Failed to turn zero into data clusters: Input/output error +qemu-img: error: Failed to turn zero into data clusters: Input/output error =20 =3D=3D=3D Testing unaligned L2 entry =3D=3D=3D =20 @@ -148,7 +148,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D671= 08864 wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) qcow2: Marking image as corrupt: Cluster allocation offset 0x52a00 unalign= ed (L2 offset: 0x40000, L2 index: 0); further corruption events will be sup= pressed -qemu-img: Failed to turn zero into data clusters: Input/output error +qemu-img: error: Failed to turn zero into data clusters: Input/output error =20 =3D=3D=3D Testing unaligned reftable entry =3D=3D=3D =20 @@ -270,7 +270,7 @@ No errors were found on the image. =3D=3D=3D Testing zero refcount table size =3D=3D=3D =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-io: can't open device TEST_DIR/t.IMGFMT: Image does not contain a ref= erence count table +qemu-io: error: can't open device TEST_DIR/t.IMGFMT: Image does not contai= n a reference count table ERROR cluster 0 refcount=3D0 reference=3D1 ERROR cluster 3 refcount=3D0 reference=3D1 Rebuilding refcount structure @@ -299,7 +299,7 @@ Can't get refcount for cluster 2: Input/output error Can't get refcount for cluster 3: Input/output error Rebuilding refcount structure Repairing cluster 1 refcount=3D1 reference=3D0 -qemu-io: can't open device TEST_DIR/t.IMGFMT: Could not repair dirty image= : Input/output error +qemu-io: error: can't open device TEST_DIR/t.IMGFMT: Could not repair dirt= y image: Input/output error --- Repairing --- Leaked cluster 1 refcount=3D1 reference=3D0 Repairing cluster 1 refcount=3D1 reference=3D0 @@ -350,7 +350,7 @@ Can't get refcount for cluster 5: Input/output error Can't get refcount for cluster 6: Input/output error Rebuilding refcount structure Repairing cluster 1 refcount=3D1 reference=3D0 -qemu-img: Check failed: No medium found +qemu-img: error: Check failed: No medium found Leaked cluster 1 refcount=3D1 reference=3D0 Repairing cluster 1 refcount=3D1 reference=3D0 The following inconsistencies were found and repaired: @@ -365,7 +365,7 @@ No errors were found on the image. =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 qcow2: Marking image as corrupt: Refblock at 0xffffff00000000 is not cover= ed by the refcount structures; further corruption events will be suppressed -qemu-img: Failed to discard unused refblocks: Input/output error +qemu-img: error: Failed to discard unused refblocks: Input/output error --- Checking and retrying --- virtual size: 64 MiB (67108864 bytes) No errors were found on the image. @@ -376,7 +376,7 @@ virtual size: 32 MiB (33554432 bytes) =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 qcow2: Marking image as corrupt: Refblock at 0x1000000000 is not covered b= y the refcount structures; further corruption events will be suppressed -qemu-img: Failed to discard unused refblocks: Input/output error +qemu-img: error: Failed to discard unused refblocks: Input/output error --- Checking and retrying --- virtual size: 64 MiB (67108864 bytes) No errors were found on the image. @@ -387,7 +387,7 @@ virtual size: 32 MiB (33554432 bytes) =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 qcow2: Marking image as corrupt: Cannot get entry from refcount block cach= e: Offset 0x200 is unaligned; further corruption events will be suppressed -qemu-img: Failed to discard unused refblocks: Input/output error +qemu-img: error: Failed to discard unused refblocks: Input/output error --- Repairing --- Repairing refcount block 1 is outside image ERROR refcount block 2 is not cluster aligned; refcount table entry corrup= ted @@ -397,7 +397,7 @@ Rebuilding refcount structure Repairing cluster 1 refcount=3D1 reference=3D0 Repairing cluster 2 refcount=3D1 reference=3D0 Repairing cluster 1048576 refcount=3D1 reference=3D0 -qemu-img: Check failed: No medium found +qemu-img: error: Check failed: No medium found Leaked cluster 1 refcount=3D1 reference=3D0 Leaked cluster 2 refcount=3D1 reference=3D0 Leaked cluster 1048576 refcount=3D1 reference=3D0 diff --git a/tests/qemu-iotests/061.out b/tests/qemu-iotests/061.out index 8b3091a412..06245c0f99 100644 --- a/tests/qemu-iotests/061.out +++ b/tests/qemu-iotests/061.out @@ -349,20 +349,20 @@ No errors were found on the image. =3D=3D=3D Testing invalid configurations =3D=3D=3D =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-img: Lazy refcounts only supported with compatibility level 1.1 and a= bove (use compat=3D1.1 or greater) -qemu-img: Lazy refcounts only supported with compatibility level 1.1 and a= bove (use compat=3D1.1 or greater) -qemu-img: Unknown compatibility level 0.42 -qemu-img: Invalid parameter 'foo' -qemu-img: Changing the cluster size is not supported -qemu-img: Changing the encryption flag is not supported -qemu-img: Cannot change preallocation mode +qemu-img: error: Lazy refcounts only supported with compatibility level 1.= 1 and above (use compat=3D1.1 or greater) +qemu-img: error: Lazy refcounts only supported with compatibility level 1.= 1 and above (use compat=3D1.1 or greater) +qemu-img: error: Unknown compatibility level 0.42 +qemu-img: error: Invalid parameter 'foo' +qemu-img: error: Changing the cluster size is not supported +qemu-img: error: Changing the encryption flag is not supported +qemu-img: error: Cannot change preallocation mode =20 =3D=3D=3D Testing correct handling of unset value =3D=3D=3D =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 Should work: Should not work: -qemu-img: Changing the cluster size is not supported +qemu-img: error: Changing the cluster size is not supported =20 =3D=3D=3D Testing zero expansion on inactive clusters =3D=3D=3D =20 @@ -484,7 +484,7 @@ No errors were found on the image. =3D=3D=3D Testing version downgrade with external data file =3D=3D=3D =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 data_file=3DT= EST_DIR/t.IMGFMT.data -qemu-img: Cannot downgrade an image with a data file +qemu-img: error: Cannot downgrade an image with a data file image: TEST_DIR/t.IMGFMT file format: IMGFMT virtual size: 64 MiB (67108864 bytes) @@ -501,10 +501,10 @@ No errors were found on the image. =3D=3D=3D Try changing the external data file =3D=3D=3D =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-img: data-file can only be set for images that use an external data f= ile +qemu-img: error: data-file can only be set for images that use an external= data file =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 data_file=3DT= EST_DIR/t.IMGFMT.data -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Could not open 'foo': No suc= h file or directory +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': Could not open 'foo':= No such file or directory image: TEST_DIR/t.IMGFMT file format: IMGFMT virtual size: 64 MiB (67108864 bytes) @@ -517,7 +517,7 @@ Format specific information: data file raw: false corrupt: false =20 -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': 'data-file' is required for = this image +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': 'data-file' is requir= ed for this image image: TEST_DIR/t.IMGFMT file format: IMGFMT virtual size: 64 MiB (67108864 bytes) @@ -556,7 +556,7 @@ Format specific information: data file raw: false corrupt: false No errors were found on the image. -qemu-img: data-file-raw cannot be set on existing images +qemu-img: error: data-file-raw cannot be set on existing images image: TEST_DIR/t.IMGFMT file format: IMGFMT virtual size: 64 MiB (67108864 bytes) diff --git a/tests/qemu-iotests/069.out b/tests/qemu-iotests/069.out index c78e8c2b72..96e3ff2dd6 100644 --- a/tests/qemu-iotests/069.out +++ b/tests/qemu-iotests/069.out @@ -4,5 +4,5 @@ QA output created by 069 =20 Formatting 'TEST_DIR/t.IMGFMT.base', fmt=3DIMGFMT size=3D131072 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D131072 backing_file=3D= TEST_DIR/t.IMGFMT.base -qemu-io: can't open device TEST_DIR/t.IMGFMT: Could not open backing file:= Could not open 'TEST_DIR/t.IMGFMT.base': No such file or directory +qemu-io: error: can't open device TEST_DIR/t.IMGFMT: Could not open backin= g file: Could not open 'TEST_DIR/t.IMGFMT.base': No such file or directory *** done diff --git a/tests/qemu-iotests/071.out b/tests/qemu-iotests/071.out index bca0c02f5c..30e5266583 100644 --- a/tests/qemu-iotests/071.out +++ b/tests/qemu-iotests/071.out @@ -86,7 +86,7 @@ read failed: Input/output error {"return": ""} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event"= : "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} -QEMU_PROG: Failed to flush the L2 table cache: Input/output error -QEMU_PROG: Failed to flush the refcount block cache: Input/output error +QEMU_PROG: error: Failed to flush the L2 table cache: Input/output error +QEMU_PROG: error: Failed to flush the refcount block cache: Input/output e= rror =20 *** done diff --git a/tests/qemu-iotests/074.out b/tests/qemu-iotests/074.out index ede66c3f81..cd8bcb3b67 100644 --- a/tests/qemu-iotests/074.out +++ b/tests/qemu-iotests/074.out @@ -3,14 +3,14 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D10737= 41824 =3D=3D=3D IO: pattern 102 wrote 512/512 bytes at offset 512 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Error while reading offset 0 of blkdebug:TEST_DIR/blkdebug.conf:= TEST_DIR/t.IMGFMT: Input/output error +qemu-img: error: Error while reading offset 0 of blkdebug:TEST_DIR/blkdebu= g.conf:TEST_DIR/t.IMGFMT: Input/output error 4 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 Formatting 'TEST_DIR/t.IMGFMT.2', fmt=3DIMGFMT size=3D0 =3D=3D=3D IO: pattern 102 wrote 512/512 bytes at offset 512 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Error while reading offset 0 of blkdebug:TEST_DIR/blkdebug.conf:= TEST_DIR/t.IMGFMT: Input/output error +qemu-img: error: Error while reading offset 0 of blkdebug:TEST_DIR/blkdebu= g.conf:TEST_DIR/t.IMGFMT: Input/output error Warning: Image size mismatch! 4 Cleanup diff --git a/tests/qemu-iotests/079.out b/tests/qemu-iotests/079.out index aab922fb36..e3b2cf0ba1 100644 --- a/tests/qemu-iotests/079.out +++ b/tests/qemu-iotests/079.out @@ -9,6 +9,6 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D4294967= 296 preallocation=3Dmetadat Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D4294967296 preallocati= on=3Dmetadata Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D4294967296 preallocati= on=3Dmetadata Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D4294967296 preallocati= on=3Dmetadata -qemu-img: TEST_DIR/t.IMGFMT: Cluster size must be a power of two between 5= 12 and 2048k +qemu-img: error: TEST_DIR/t.IMGFMT: Cluster size must be a power of two be= tween 512 and 2048k Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D4294967296 preallocati= on=3Dmetadata *** done diff --git a/tests/qemu-iotests/080.out b/tests/qemu-iotests/080.out index 45ab01db8e..b9f32f27d4 100644 --- a/tests/qemu-iotests/080.out +++ b/tests/qemu-iotests/080.out @@ -2,75 +2,75 @@ QA output created by 080 =20 =3D=3D Huge header size =3D=3D Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-io: can't open device TEST_DIR/t.qcow2: qcow2 header exceeds cluster = size -qemu-io: can't open device TEST_DIR/t.qcow2: qcow2 header exceeds cluster = size +qemu-io: error: can't open device TEST_DIR/t.qcow2: qcow2 header exceeds c= luster size +qemu-io: error: can't open device TEST_DIR/t.qcow2: qcow2 header exceeds c= luster size =20 =3D=3D Huge unknown header extension =3D=3D Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-io: can't open device TEST_DIR/t.qcow2: Invalid backing file offset -qemu-io: can't open device TEST_DIR/t.qcow2: Header extension too large -qemu-io: can't open device TEST_DIR/t.qcow2: Header extension too large +qemu-io: error: can't open device TEST_DIR/t.qcow2: Invalid backing file o= ffset +qemu-io: error: can't open device TEST_DIR/t.qcow2: Header extension too l= arge +qemu-io: error: can't open device TEST_DIR/t.qcow2: Header extension too l= arge =20 =3D=3D Huge refcount table size =3D=3D Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-io: can't open device TEST_DIR/t.qcow2: Reference count table too lar= ge -qemu-io: can't open device TEST_DIR/t.qcow2: Reference count table too lar= ge +qemu-io: error: can't open device TEST_DIR/t.qcow2: Reference count table = too large +qemu-io: error: can't open device TEST_DIR/t.qcow2: Reference count table = too large =20 =3D=3D Misaligned refcount table =3D=3D Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-io: can't open device TEST_DIR/t.qcow2: Reference count table offset = invalid +qemu-io: error: can't open device TEST_DIR/t.qcow2: Reference count table = offset invalid =20 =3D=3D Huge refcount offset =3D=3D Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-io: can't open device TEST_DIR/t.qcow2: Reference count table offset = invalid +qemu-io: error: can't open device TEST_DIR/t.qcow2: Reference count table = offset invalid =20 =3D=3D Invalid snapshot table =3D=3D Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-io: can't open device TEST_DIR/t.qcow2: Snapshot table too large -qemu-io: can't open device TEST_DIR/t.qcow2: Snapshot table too large -qemu-io: can't open device TEST_DIR/t.qcow2: Snapshot table offset invalid -qemu-io: can't open device TEST_DIR/t.qcow2: Snapshot table offset invalid +qemu-io: error: can't open device TEST_DIR/t.qcow2: Snapshot table too lar= ge +qemu-io: error: can't open device TEST_DIR/t.qcow2: Snapshot table too lar= ge +qemu-io: error: can't open device TEST_DIR/t.qcow2: Snapshot table offset = invalid +qemu-io: error: can't open device TEST_DIR/t.qcow2: Snapshot table offset = invalid =20 =3D=3D Hitting snapshot table size limit =3D=3D Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-img: Could not create snapshot 'test': -27 (File too large) +qemu-img: error: Could not create snapshot 'test': -27 (File too large) read 512/512 bytes at offset 0 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) =20 =3D=3D Invalid L1 table =3D=3D Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-io: can't open device TEST_DIR/t.qcow2: Active L1 table too large -qemu-io: can't open device TEST_DIR/t.qcow2: Active L1 table too large -qemu-io: can't open device TEST_DIR/t.qcow2: Active L1 table offset invalid -qemu-io: can't open device TEST_DIR/t.qcow2: Active L1 table offset invalid +qemu-io: error: can't open device TEST_DIR/t.qcow2: Active L1 table too la= rge +qemu-io: error: can't open device TEST_DIR/t.qcow2: Active L1 table too la= rge +qemu-io: error: can't open device TEST_DIR/t.qcow2: Active L1 table offset= invalid +qemu-io: error: can't open device TEST_DIR/t.qcow2: Active L1 table offset= invalid =20 =3D=3D Invalid L1 table (with internal snapshot in the image) =3D=3D Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': L1 table is too small +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': L1 table is too small =20 =3D=3D Invalid backing file size =3D=3D Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-io: can't open device TEST_DIR/t.qcow2: Backing file name too long +qemu-io: error: can't open device TEST_DIR/t.qcow2: Backing file name too = long =20 =3D=3D Invalid L2 entry (huge physical offset) =3D=3D Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 wrote 512/512 bytes at offset 0 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Could not create snapshot 'test': -27 (File too large) -qemu-img: Could not create snapshot 'test': -11 (Resource temporarily unav= ailable) +qemu-img: error: Could not create snapshot 'test': -27 (File too large) +qemu-img: error: Could not create snapshot 'test': -11 (Resource temporari= ly unavailable) =20 =3D=3D Invalid snapshot L1 table offset =3D=3D Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 wrote 512/512 bytes at offset 0 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Failed to load snapshot: Snapshot L1 table offset invalid -qemu-img: Snapshot L1 table offset invalid -qemu-img: Failed to turn zero into data clusters: Invalid argument -qemu-io: Failed to flush the refcount block cache: Invalid argument +qemu-img: error: Failed to load snapshot: Snapshot L1 table offset invalid +qemu-img: error: Snapshot L1 table offset invalid +qemu-img: error: Failed to turn zero into data clusters: Invalid argument +qemu-io: error: Failed to flush the refcount block cache: Invalid argument write failed: Invalid argument -qemu-img: Snapshot L1 table offset invalid -qemu-img: Could not apply snapshot 'test': Failed to load snapshot: Invali= d argument -qemu-img: Could not delete snapshot 'test': Snapshot L1 table offset inval= id +qemu-img: error: Snapshot L1 table offset invalid +qemu-img: error: Could not apply snapshot 'test': Failed to load snapshot:= Invalid argument +qemu-img: error: Could not delete snapshot 'test': Snapshot L1 table offse= t invalid ERROR snapshot 1 (test) l1_offset=3D0x400200: L1 table is not cluster alig= ned; snapshot table entry corrupted Leaked cluster 4 refcount=3D2 reference=3D1 Leaked cluster 5 refcount=3D2 reference=3D1 @@ -86,14 +86,14 @@ This means waste of disk space, but no harm to data. Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 wrote 512/512 bytes at offset 0 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Failed to load snapshot: Snapshot L1 table too large -qemu-img: Snapshot L1 table too large -qemu-img: Failed to turn zero into data clusters: File too large -qemu-io: Failed to flush the refcount block cache: File too large +qemu-img: error: Failed to load snapshot: Snapshot L1 table too large +qemu-img: error: Snapshot L1 table too large +qemu-img: error: Failed to turn zero into data clusters: File too large +qemu-io: error: Failed to flush the refcount block cache: File too large write failed: File too large -qemu-img: Snapshot L1 table too large -qemu-img: Could not apply snapshot 'test': Failed to load snapshot: File t= oo large -qemu-img: Could not delete snapshot 'test': Snapshot L1 table too large +qemu-img: error: Snapshot L1 table too large +qemu-img: error: Could not apply snapshot 'test': Failed to load snapshot:= File too large +qemu-img: error: Could not delete snapshot 'test': Snapshot L1 table too l= arge ERROR snapshot 1 (test) l1_size=3D0x10000000: L1 table is too large; snaps= hot table entry corrupted Leaked cluster 4 refcount=3D2 reference=3D1 Leaked cluster 5 refcount=3D2 reference=3D1 diff --git a/tests/qemu-iotests/081.out b/tests/qemu-iotests/081.out index 04091b64e5..129a628f87 100644 --- a/tests/qemu-iotests/081.out +++ b/tests/qemu-iotests/081.out @@ -70,7 +70,7 @@ read 10485760/10485760 bytes at offset 0 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) =20 =3D=3D checking the blkverify mode with invalid settings =3D=3D -qemu-io: can't open: blkverify=3Don can only be set if there are exactly t= wo files and vote-threshold is 2 +qemu-io: error: can't open: blkverify=3Don can only be set if there are ex= actly two files and vote-threshold is 2 =20 =3D=3D dynamically adding a child to a quorum =3D=3D Testing: diff --git a/tests/qemu-iotests/082.out b/tests/qemu-iotests/082.out index 9d4ed4dc9d..8391e485da 100644 --- a/tests/qemu-iotests/082.out +++ b/tests/qemu-iotests/082.out @@ -233,13 +233,13 @@ Testing: create -f qcow2 -u -o backing_file=3DTEST_DI= R/t.qcow2,,? TEST_DIR/t.qcow2 Formatting 'TEST_DIR/t.qcow2', fmt=3Dqcow2 size=3D134217728 backing_file= =3DTEST_DIR/t.qcow2,,? cluster_size=3D65536 lazy_refcounts=3Doff refcount_b= its=3D16 =20 Testing: create -f qcow2 -o backing_file=3DTEST_DIR/t.qcow2, -o help TEST_= DIR/t.qcow2 128M -qemu-img: Invalid option list: backing_file=3DTEST_DIR/t.qcow2, +qemu-img: error: Invalid option list: backing_file=3DTEST_DIR/t.qcow2, =20 Testing: create -f qcow2 -o backing_file=3DTEST_DIR/t.qcow2 -o ,help TEST_= DIR/t.qcow2 128M -qemu-img: Invalid option list: ,help +qemu-img: error: Invalid option list: ,help =20 Testing: create -f qcow2 -o backing_file=3DTEST_DIR/t.qcow2 -o ,, -o help = TEST_DIR/t.qcow2 128M -qemu-img: Invalid option list: ,, +qemu-img: error: Invalid option list: ,, =20 Testing: create -f qcow2 -o help Supported qcow2 options: @@ -274,7 +274,7 @@ The protocol level may support further options. Specify the target filename to include those options. =20 Testing: create -f bochs -o help -qemu-img: Format driver 'bochs' does not support image creation +qemu-img: error: Format driver 'bochs' does not support image creation =20 =3D=3D=3D convert: Options specified more than once =3D=3D=3D =20 @@ -507,19 +507,19 @@ Supported options: size=3D - Virtual disk size =20 Testing: convert -O qcow2 -o backing_file=3DTEST_DIR/t.qcow2,,help TEST_DI= R/t.qcow2 TEST_DIR/t.qcow2.base -qemu-img: Could not open 'TEST_DIR/t.qcow2.base': Could not open backing f= ile: Could not open 'TEST_DIR/t.qcow2,help': No such file or directory +qemu-img: error: Could not open 'TEST_DIR/t.qcow2.base': Could not open ba= cking file: Could not open 'TEST_DIR/t.qcow2,help': No such file or directo= ry =20 Testing: convert -O qcow2 -o backing_file=3DTEST_DIR/t.qcow2,,? TEST_DIR/t= .qcow2 TEST_DIR/t.qcow2.base -qemu-img: Could not open 'TEST_DIR/t.qcow2.base': Could not open backing f= ile: Could not open 'TEST_DIR/t.qcow2,?': No such file or directory +qemu-img: error: Could not open 'TEST_DIR/t.qcow2.base': Could not open ba= cking file: Could not open 'TEST_DIR/t.qcow2,?': No such file or directory =20 Testing: convert -O qcow2 -o backing_file=3DTEST_DIR/t.qcow2, -o help TEST= _DIR/t.qcow2 TEST_DIR/t.qcow2.base -qemu-img: Invalid option list: backing_file=3DTEST_DIR/t.qcow2, +qemu-img: error: Invalid option list: backing_file=3DTEST_DIR/t.qcow2, =20 Testing: convert -O qcow2 -o backing_file=3DTEST_DIR/t.qcow2 -o ,help TEST= _DIR/t.qcow2 TEST_DIR/t.qcow2.base -qemu-img: Invalid option list: ,help +qemu-img: error: Invalid option list: ,help =20 Testing: convert -O qcow2 -o backing_file=3DTEST_DIR/t.qcow2 -o ,, -o help= TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base -qemu-img: Invalid option list: ,, +qemu-img: error: Invalid option list: ,, =20 Testing: convert -O qcow2 -o help Supported qcow2 options: @@ -554,21 +554,21 @@ The protocol level may support further options. Specify the target filename to include those options. =20 Testing: convert -O bochs -o help -qemu-img: Format driver 'bochs' does not support image creation +qemu-img: error: Format driver 'bochs' does not support image creation =20 =3D=3D=3D convert: -C and other options =3D=3D=3D =20 Testing: convert -C -S 4k -O qcow2 TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.target -qemu-img: Cannot enable copy offloading when -S is used +qemu-img: error: Cannot enable copy offloading when -S is used =20 Testing: convert -C -S 8k -O qcow2 TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.target -qemu-img: Cannot enable copy offloading when -S is used +qemu-img: error: Cannot enable copy offloading when -S is used =20 Testing: convert -C -c -O qcow2 TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.target -qemu-img: Cannot enable copy offloading when -c is used +qemu-img: error: Cannot enable copy offloading when -c is used =20 Testing: convert -C --salvage -O qcow2 TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.t= arget -qemu-img: Cannot use copy offloading in salvaging mode +qemu-img: error: Cannot use copy offloading in salvaging mode =20 =3D=3D=3D amend: Options specified more than once =3D=3D=3D =20 @@ -814,13 +814,13 @@ Testing: amend -f qcow2 -o backing_file=3DTEST_DIR/t.= qcow2,,? TEST_DIR/t.qcow2 Testing: rebase -u -b -f qcow2 TEST_DIR/t.qcow2 =20 Testing: amend -f qcow2 -o backing_file=3DTEST_DIR/t.qcow2, -o help TEST_D= IR/t.qcow2 -qemu-img: Invalid option list: backing_file=3DTEST_DIR/t.qcow2, +qemu-img: error: Invalid option list: backing_file=3DTEST_DIR/t.qcow2, =20 Testing: amend -f qcow2 -o backing_file=3DTEST_DIR/t.qcow2 -o ,help TEST_D= IR/t.qcow2 -qemu-img: Invalid option list: ,help +qemu-img: error: Invalid option list: ,help =20 Testing: amend -f qcow2 -o backing_file=3DTEST_DIR/t.qcow2 -o ,, -o help T= EST_DIR/t.qcow2 -qemu-img: Invalid option list: ,, +qemu-img: error: Invalid option list: ,, =20 Testing: amend -f qcow2 -o help Creation options for 'qcow2': @@ -847,8 +847,8 @@ Creation options for 'qcow2': Note that not all of these options may be amendable. =20 Testing: amend -o help -qemu-img: Expecting one image file name +qemu-img: error: Expecting one image file name =20 Testing: amend -f bochs -o help -qemu-img: Format driver 'bochs' does not support option amendment +qemu-img: error: Format driver 'bochs' does not support option amendment *** done diff --git a/tests/qemu-iotests/083.out b/tests/qemu-iotests/083.out index 2090ee693c..696fb5ff75 100644 --- a/tests/qemu-iotests/083.out +++ b/tests/qemu-iotests/083.out @@ -1,43 +1,43 @@ QA output created by 083 =3D=3D=3D Check disconnect before neg1 =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/foo =20 =3D=3D=3D Check disconnect after neg1 =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/foo =20 =3D=3D=3D Check disconnect 8 neg1 =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/foo =20 =3D=3D=3D Check disconnect 16 neg1 =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/foo =20 =3D=3D=3D Check disconnect before export =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/foo =20 =3D=3D=3D Check disconnect after export =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/foo =20 =3D=3D=3D Check disconnect 4 export =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/foo =20 =3D=3D=3D Check disconnect 12 export =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/foo =20 =3D=3D=3D Check disconnect 16 export =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/foo =20 =3D=3D=3D Check disconnect before neg2 =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/foo =20 =3D=3D=3D Check disconnect after neg2 =3D=3D=3D =20 @@ -45,11 +45,11 @@ read failed: Input/output error =20 =3D=3D=3D Check disconnect 8 neg2 =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/foo =20 =3D=3D=3D Check disconnect 10 neg2 =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/foo =20 =3D=3D=3D Check disconnect before request =3D=3D=3D =20 @@ -86,23 +86,23 @@ read 512/512 bytes at offset 0 =20 =3D=3D=3D Check disconnect before neg-classic =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/ +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/ =20 =3D=3D=3D Check disconnect 8 neg-classic =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/ +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/ =20 =3D=3D=3D Check disconnect 16 neg-classic =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/ +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/ =20 =3D=3D=3D Check disconnect 24 neg-classic =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/ +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/ =20 =3D=3D=3D Check disconnect 28 neg-classic =3D=3D=3D =20 -qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/ +qemu-io: error: can't open device nbd+tcp://127.0.0.1:PORT/ =20 =3D=3D=3D Check disconnect after neg-classic =3D=3D=3D =20 @@ -110,43 +110,43 @@ read failed: Input/output error =20 =3D=3D=3D Check disconnect before neg1 =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.so= ck =20 =3D=3D=3D Check disconnect after neg1 =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.so= ck =20 =3D=3D=3D Check disconnect 8 neg1 =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.so= ck =20 =3D=3D=3D Check disconnect 16 neg1 =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.so= ck =20 =3D=3D=3D Check disconnect before export =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.so= ck =20 =3D=3D=3D Check disconnect after export =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.so= ck =20 =3D=3D=3D Check disconnect 4 export =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.so= ck =20 =3D=3D=3D Check disconnect 12 export =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.so= ck =20 =3D=3D=3D Check disconnect 16 export =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.so= ck =20 =3D=3D=3D Check disconnect before neg2 =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.so= ck =20 =3D=3D=3D Check disconnect after neg2 =3D=3D=3D =20 @@ -154,11 +154,11 @@ read failed: Input/output error =20 =3D=3D=3D Check disconnect 8 neg2 =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.so= ck =20 =3D=3D=3D Check disconnect 10 neg2 =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///foo?socket=3DSOCK_DIR/nbd.so= ck =20 =3D=3D=3D Check disconnect before request =3D=3D=3D =20 @@ -195,23 +195,23 @@ read 512/512 bytes at offset 0 =20 =3D=3D=3D Check disconnect before neg-classic =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///?socket=3DSOCK_DIR/nbd.sock =20 =3D=3D=3D Check disconnect 8 neg-classic =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///?socket=3DSOCK_DIR/nbd.sock =20 =3D=3D=3D Check disconnect 16 neg-classic =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///?socket=3DSOCK_DIR/nbd.sock =20 =3D=3D=3D Check disconnect 24 neg-classic =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///?socket=3DSOCK_DIR/nbd.sock =20 =3D=3D=3D Check disconnect 28 neg-classic =3D=3D=3D =20 -qemu-io: can't open device nbd+unix:///?socket=3DSOCK_DIR/nbd.sock +qemu-io: error: can't open device nbd+unix:///?socket=3DSOCK_DIR/nbd.sock =20 =3D=3D=3D Check disconnect after neg-classic =3D=3D=3D =20 diff --git a/tests/qemu-iotests/098.out b/tests/qemu-iotests/098.out index 7634d0e8b0..d22713052d 100644 --- a/tests/qemu-iotests/098.out +++ b/tests/qemu-iotests/098.out @@ -6,7 +6,7 @@ Formatting 'TEST_DIR/t.IMGFMT.base', fmt=3DIMGFMT size=3D67= 108864 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 backing_file= =3DTEST_DIR/t.IMGFMT.base wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Could not empty blkdebug:TEST_DIR/blkdebug.conf:TEST_DIR/t.IMGFM= T: Input/output error +qemu-img: error: Could not empty blkdebug:TEST_DIR/blkdebug.conf:TEST_DIR/= t.IMGFMT: Input/output error No errors were found on the image. =20 =3D=3D=3D empty_image_prepare =3D=3D=3D @@ -15,7 +15,7 @@ Formatting 'TEST_DIR/t.IMGFMT.base', fmt=3DIMGFMT size=3D= 67108864 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 backing_file= =3DTEST_DIR/t.IMGFMT.base wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Could not empty blkdebug:TEST_DIR/blkdebug.conf:TEST_DIR/t.IMGFM= T: Input/output error +qemu-img: error: Could not empty blkdebug:TEST_DIR/blkdebug.conf:TEST_DIR/= t.IMGFMT: Input/output error Leaked cluster 4 refcount=3D1 reference=3D0 Leaked cluster 5 refcount=3D1 reference=3D0 Repairing cluster 4 refcount=3D1 reference=3D0 @@ -28,7 +28,7 @@ Formatting 'TEST_DIR/t.IMGFMT.base', fmt=3DIMGFMT size=3D= 67108864 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 backing_file= =3DTEST_DIR/t.IMGFMT.base wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Could not empty blkdebug:TEST_DIR/blkdebug.conf:TEST_DIR/t.IMGFM= T: Input/output error +qemu-img: error: Could not empty blkdebug:TEST_DIR/blkdebug.conf:TEST_DIR/= t.IMGFMT: Input/output error ERROR cluster 0 refcount=3D0 reference=3D1 ERROR cluster 1 refcount=3D0 reference=3D1 ERROR cluster 3 refcount=3D0 reference=3D1 @@ -42,7 +42,7 @@ Formatting 'TEST_DIR/t.IMGFMT.base', fmt=3DIMGFMT size=3D= 67108864 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 backing_file= =3DTEST_DIR/t.IMGFMT.base wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Could not empty blkdebug:TEST_DIR/blkdebug.conf:TEST_DIR/t.IMGFM= T: Input/output error +qemu-img: error: Could not empty blkdebug:TEST_DIR/blkdebug.conf:TEST_DIR/= t.IMGFMT: Input/output error ERROR cluster 0 refcount=3D0 reference=3D1 ERROR cluster 1 refcount=3D0 reference=3D1 ERROR cluster 3 refcount=3D0 reference=3D1 diff --git a/tests/qemu-iotests/103.out b/tests/qemu-iotests/103.out index 16704cf499..983212f9cf 100644 --- a/tests/qemu-iotests/103.out +++ b/tests/qemu-iotests/103.out @@ -5,13 +5,13 @@ wrote 65536/65536 bytes at offset 0 =20 =3D=3D=3D Testing invalid option combinations =3D=3D=3D =20 -qemu-io: can't open device TEST_DIR/t.IMGFMT: cache-size, l2-cache-size an= d refcount-cache-size may not be set at the same time -qemu-io: can't open device TEST_DIR/t.IMGFMT: l2-cache-size may not exceed= cache-size -qemu-io: can't open device TEST_DIR/t.IMGFMT: refcount-cache-size may not = exceed cache-size -qemu-io: can't open device TEST_DIR/t.IMGFMT: cache-size, l2-cache-size an= d refcount-cache-size may not be set at the same time -qemu-io: can't open device TEST_DIR/t.IMGFMT: L2 cache entry size must be = a power of two between 512 and the cluster size (65536) -qemu-io: can't open device TEST_DIR/t.IMGFMT: L2 cache entry size must be = a power of two between 512 and the cluster size (65536) -qemu-io: can't open device TEST_DIR/t.IMGFMT: L2 cache entry size must be = a power of two between 512 and the cluster size (65536) +qemu-io: error: can't open device TEST_DIR/t.IMGFMT: cache-size, l2-cache-= size and refcount-cache-size may not be set at the same time +qemu-io: error: can't open device TEST_DIR/t.IMGFMT: l2-cache-size may not= exceed cache-size +qemu-io: error: can't open device TEST_DIR/t.IMGFMT: refcount-cache-size m= ay not exceed cache-size +qemu-io: error: can't open device TEST_DIR/t.IMGFMT: cache-size, l2-cache-= size and refcount-cache-size may not be set at the same time +qemu-io: error: can't open device TEST_DIR/t.IMGFMT: L2 cache entry size m= ust be a power of two between 512 and the cluster size (65536) +qemu-io: error: can't open device TEST_DIR/t.IMGFMT: L2 cache entry size m= ust be a power of two between 512 and the cluster size (65536) +qemu-io: error: can't open device TEST_DIR/t.IMGFMT: L2 cache entry size m= ust be a power of two between 512 and the cluster size (65536) =20 =3D=3D=3D Testing valid option combinations =3D=3D=3D =20 diff --git a/tests/qemu-iotests/106.out b/tests/qemu-iotests/106.out index c459957660..3c1fbcbb70 100644 --- a/tests/qemu-iotests/106.out +++ b/tests/qemu-iotests/106.out @@ -40,10 +40,10 @@ Image resized. =3D=3D=3D Testing image shrinking =3D=3D=3D =20 --- growth_mode=3Dfalloc --- -qemu-img: Preallocation can only be used for growing images +qemu-img: error: Preallocation can only be used for growing images =20 --- growth_mode=3Dfull --- -qemu-img: Preallocation can only be used for growing images +qemu-img: error: Preallocation can only be used for growing images =20 --- growth_mode=3Doff --- Image resized. diff --git a/tests/qemu-iotests/111.out b/tests/qemu-iotests/111.out index 5279c462fc..fc13d8a635 100644 --- a/tests/qemu-iotests/111.out +++ b/tests/qemu-iotests/111.out @@ -1,4 +1,4 @@ QA output created by 111 -qemu-img: TEST_DIR/t.IMGFMT: Could not open 'TEST_DIR/t.IMGFMT.inexistent'= : No such file or directory +qemu-img: error: TEST_DIR/t.IMGFMT: Could not open 'TEST_DIR/t.IMGFMT.inex= istent': No such file or directory Could not open backing image to determine size. *** done diff --git a/tests/qemu-iotests/112.out b/tests/qemu-iotests/112.out index ae0318cabe..ff5c3e8cfb 100644 --- a/tests/qemu-iotests/112.out +++ b/tests/qemu-iotests/112.out @@ -2,13 +2,13 @@ QA output created by 112 =20 =3D=3D=3D refcount_bits limits =3D=3D=3D =20 -qemu-img: TEST_DIR/t.IMGFMT: Refcount width must be a power of two and may= not exceed 64 bits +qemu-img: error: TEST_DIR/t.IMGFMT: Refcount width must be a power of two = and may not exceed 64 bits Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-img: TEST_DIR/t.IMGFMT: Refcount width must be a power of two and may= not exceed 64 bits +qemu-img: error: TEST_DIR/t.IMGFMT: Refcount width must be a power of two = and may not exceed 64 bits Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 refcount_bits= =3D-1 -qemu-img: TEST_DIR/t.IMGFMT: Refcount width must be a power of two and may= not exceed 64 bits +qemu-img: error: TEST_DIR/t.IMGFMT: Refcount width must be a power of two = and may not exceed 64 bits Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-img: TEST_DIR/t.IMGFMT: Refcount width must be a power of two and may= not exceed 64 bits +qemu-img: error: TEST_DIR/t.IMGFMT: Refcount width must be a power of two = and may not exceed 64 bits Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 refcount bits: 1 @@ -21,9 +21,9 @@ refcount bits: 16 =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 refcount bits: 16 -qemu-img: TEST_DIR/t.IMGFMT: Different refcount widths than 16 bits requir= e compatibility level 1.1 or above (use version=3Dv3 or greater) +qemu-img: error: TEST_DIR/t.IMGFMT: Different refcount widths than 16 bits= require compatibility level 1.1 or above (use version=3Dv3 or greater) Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-img: TEST_DIR/t.IMGFMT: Different refcount widths than 16 bits requir= e compatibility level 1.1 or above (use version=3Dv3 or greater) +qemu-img: error: TEST_DIR/t.IMGFMT: Different refcount widths than 16 bits= require compatibility level 1.1 or above (use version=3Dv3 or greater) Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 =20 =3D=3D=3D Snapshot limit on refcount_bits=3D1 =3D=3D=3D @@ -32,7 +32,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108= 864 refcount bits: 1 wrote 512/512 bytes at offset 0 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Could not create snapshot 'foo': -22 (Invalid argument) +qemu-img: error: Could not create snapshot 'foo': -22 (Invalid argument) Leaked cluster 6 refcount=3D1 reference=3D0 =20 1 leaked clusters were found on the image. @@ -44,7 +44,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108= 864 refcount bits: 2 wrote 512/512 bytes at offset 0 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Could not create snapshot 'baz': -22 (Invalid argument) +qemu-img: error: Could not create snapshot 'baz': -22 (Invalid argument) Leaked cluster 7 refcount=3D1 reference=3D0 =20 1 leaked clusters were found on the image. @@ -75,7 +75,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108= 864 refcount bits: 64 wrote 512/512 bytes at offset 0 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Could not create snapshot 'foo': -22 (Invalid argument) +qemu-img: error: Could not create snapshot 'foo': -22 (Invalid argument) Leaked cluster 5 refcount=3D18446744073709551615 reference=3D1 Leaked cluster 6 refcount=3D1 reference=3D0 =20 @@ -98,19 +98,19 @@ refcount bits: 64 =20 =3D=3D=3D Amend to compat=3D0.10 =3D=3D=3D =20 -qemu-img: compat=3D0.10 requires refcount_bits=3D16 +qemu-img: error: compat=3D0.10 requires refcount_bits=3D16 refcount bits: 64 No errors were found on the image. refcount bits: 16 refcount bits: 16 -qemu-img: Refcount widths other than 16 bits require compatibility level 1= .1 or above (use compat=3D1.1 or greater) +qemu-img: error: Refcount widths other than 16 bits require compatibility = level 1.1 or above (use compat=3D1.1 or greater) refcount bits: 16 =20 =3D=3D=3D Amend with snapshot =3D=3D=3D =20 wrote 16777216/16777216 bytes at offset 0 16 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Cannot decrease refcount entry width to 1 bits: Cluster at offse= t 0x50000 has a refcount of 2 +qemu-img: error: Cannot decrease refcount entry width to 1 bits: Cluster a= t offset 0x50000 has a refcount of 2 No errors were found on the image. refcount bits: 16 No errors were found on the image. diff --git a/tests/qemu-iotests/113.out b/tests/qemu-iotests/113.out index 3557e2bbf0..4d3386fa49 100644 --- a/tests/qemu-iotests/113.out +++ b/tests/qemu-iotests/113.out @@ -2,15 +2,15 @@ QA output created by 113 =20 =3D=3D=3D Unsupported image creation in qemu-img create =3D=3D=3D =20 -qemu-img: nbd://example.com: Format driver 'bochs' does not support image = creation +qemu-img: error: nbd://example.com: Format driver 'bochs' does not support= image creation =20 =3D=3D=3D Unsupported image creation in qemu-img convert =3D=3D=3D =20 -qemu-img: Format driver 'bochs' does not support image creation +qemu-img: error: Format driver 'bochs' does not support image creation =20 =3D=3D=3D Unsupported format in qemu-img amend =3D=3D=3D =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1048576 -qemu-img: Format driver 'IMGFMT' does not support option amendment +qemu-img: error: Format driver 'IMGFMT' does not support option amendment =20 *** done diff --git a/tests/qemu-iotests/114.out b/tests/qemu-iotests/114.out index 67adef37a4..4960bb52cf 100644 --- a/tests/qemu-iotests/114.out +++ b/tests/qemu-iotests/114.out @@ -7,7 +7,7 @@ virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 backing file: TEST_DIR/t.IMGFMT.base backing file format: foo -qemu-io: can't open device TEST_DIR/t.qcow2: Could not open backing file: = Unknown driver 'foo' +qemu-io: error: can't open device TEST_DIR/t.qcow2: Could not open backing= file: Unknown driver 'foo' no file open, try 'help open' read 4096/4096 bytes at offset 0 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) diff --git a/tests/qemu-iotests/122.out b/tests/qemu-iotests/122.out index 849b6cc2ef..ce69c388f4 100644 --- a/tests/qemu-iotests/122.out +++ b/tests/qemu-iotests/122.out @@ -79,8 +79,8 @@ read 65536/65536 bytes at offset 4194304 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) read 65536/65536 bytes at offset 8388608 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: Having a backing file for the target makes no sense when concate= nating multiple input images -qemu-img: Having a backing file for the target makes no sense when concate= nating multiple input images +qemu-img: error: Having a backing file for the target makes no sense when = concatenating multiple input images +qemu-img: error: Having a backing file for the target makes no sense when = concatenating multiple input images =20 =3D=3D=3D Compression with misaligned allocations and image sizes =3D=3D= =3D =20 diff --git a/tests/qemu-iotests/133.out b/tests/qemu-iotests/133.out index 1491ef45a9..076ce0e6b1 100644 --- a/tests/qemu-iotests/133.out +++ b/tests/qemu-iotests/133.out @@ -4,18 +4,18 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108= 864 backing_file=3DTEST_DIR/t =20 =3D=3D=3D Check that node-name can't be changed =3D=3D=3D =20 -qemu-io: Cannot change the option 'node-name' -qemu-io: Cannot change the option 'node-name' -qemu-io: Cannot change the option 'node-name' +qemu-io: error: Cannot change the option 'node-name' +qemu-io: error: Cannot change the option 'node-name' +qemu-io: error: Cannot change the option 'node-name' =20 =3D=3D=3D Check that unchanged node-name is okay =3D=3D=3D =20 =20 =3D=3D=3D Check that driver can't be changed =3D=3D=3D =20 -qemu-io: Cannot change the option 'driver' -qemu-io: Cannot change the option 'driver' -qemu-io: Cannot change the option 'driver' +qemu-io: error: Cannot change the option 'driver' +qemu-io: error: Cannot change the option 'driver' +qemu-io: error: Cannot change the option 'driver' =20 =3D=3D=3D Check that unchanged driver is okay =3D=3D=3D =20 @@ -27,16 +27,16 @@ format name: null-co =20 =3D=3D=3D Check that mixing -c/-r/-w and their corresponding options is fo= rbidden =3D=3D=3D =20 -qemu-io: Cannot set both -r/-w and 'read-only' -qemu-io: Cannot set both -r/-w and 'read-only' -qemu-io: Cannot set both -c and the cache options -qemu-io: Cannot set both -c and the cache options -qemu-io: Cannot set both -c and the cache options +qemu-io: error: Cannot set both -r/-w and 'read-only' +qemu-io: error: Cannot set both -r/-w and 'read-only' +qemu-io: error: Cannot set both -c and the cache options +qemu-io: error: Cannot set both -c and the cache options +qemu-io: error: Cannot set both -c and the cache options =20 =3D=3D=3D Check that invalid options are handled correctly =3D=3D=3D =20 -qemu-io: Parameter 'read-only' expects 'on' or 'off' -qemu-io: Parameter 'cache.no-flush' expects 'on' or 'off' -qemu-io: Parameter 'cache.direct' expects 'on' or 'off' -qemu-io: Parameter 'auto-read-only' expects 'on' or 'off' +qemu-io: error: Parameter 'read-only' expects 'on' or 'off' +qemu-io: error: Parameter 'cache.no-flush' expects 'on' or 'off' +qemu-io: error: Parameter 'cache.direct' expects 'on' or 'off' +qemu-io: error: Parameter 'auto-read-only' expects 'on' or 'off' *** done diff --git a/tests/qemu-iotests/137.out b/tests/qemu-iotests/137.out index 86377c80cd..e88776f57d 100644 --- a/tests/qemu-iotests/137.out +++ b/tests/qemu-iotests/137.out @@ -15,30 +15,30 @@ read 33554432/33554432 bytes at offset 0 =20 =3D=3D=3D Try setting some invalid values =3D=3D=3D =20 -qemu-io: Parameter 'lazy-refcounts' expects 'on' or 'off' -qemu-io: cache-size, l2-cache-size and refcount-cache-size may not be set = at the same time -qemu-io: l2-cache-size may not exceed cache-size -qemu-io: refcount-cache-size may not exceed cache-size -qemu-io: L2 cache entry size must be a power of two between 512 and the cl= uster size (65536) -qemu-io: L2 cache entry size must be a power of two between 512 and the cl= uster size (65536) -qemu-io: Refcount cache size too big -qemu-io: Conflicting values for qcow2 options 'overlap-check' ('constant')= and 'overlap-check.template' ('all') -qemu-io: Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allow= ed are any of the following: none, constant, cached, all -qemu-io: Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allow= ed are any of the following: none, constant, cached, all -qemu-io: Cache clean interval too big +qemu-io: error: Parameter 'lazy-refcounts' expects 'on' or 'off' +qemu-io: error: cache-size, l2-cache-size and refcount-cache-size may not = be set at the same time +qemu-io: error: l2-cache-size may not exceed cache-size +qemu-io: error: refcount-cache-size may not exceed cache-size +qemu-io: error: L2 cache entry size must be a power of two between 512 and= the cluster size (65536) +qemu-io: error: L2 cache entry size must be a power of two between 512 and= the cluster size (65536) +qemu-io: error: Refcount cache size too big +qemu-io: error: Conflicting values for qcow2 options 'overlap-check' ('con= stant') and 'overlap-check.template' ('all') +qemu-io: error: Unsupported value 'blubb' for qcow2 option 'overlap-check'= . Allowed are any of the following: none, constant, cached, all +qemu-io: error: Unsupported value 'blubb' for qcow2 option 'overlap-check'= . Allowed are any of the following: none, constant, cached, all +qemu-io: error: Cache clean interval too big Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D36028797018963968 -qemu-io: L2 cache size too big +qemu-io: error: L2 cache size too big Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 =20 =3D=3D=3D Test transaction semantics =3D=3D=3D =20 -qemu-io: Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allow= ed are any of the following: none, constant, cached, all +qemu-io: error: Unsupported value 'blubb' for qcow2 option 'overlap-check'= . Allowed are any of the following: none, constant, cached, all wrote 512/512 bytes at offset 0 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ./common.rc: Killed ( VALGRIND_QEMU=3D"${VALGRIND_QEMU_IO= }" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@"= ) OK: Dirty bit not set Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-io: Parameter 'lazy-refcounts' expects 'on' or 'off' +qemu-io: error: Parameter 'lazy-refcounts' expects 'on' or 'off' qcow2: Marking image as corrupt: Preventing invalid allocation of L2 table= at offset 0; further corruption events will be suppressed write failed: Input/output error *** done diff --git a/tests/qemu-iotests/140.out b/tests/qemu-iotests/140.out index 86b985da75..24cb816f24 100644 --- a/tests/qemu-iotests/140.out +++ b/tests/qemu-iotests/140.out @@ -12,7 +12,7 @@ read 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) { 'execute': 'eject', 'arguments': { 'device': 'drv' }} {"return": {}} -qemu-io: can't open device nbd+unix:///drv?socket=3DSOCK_DIR/nbd: Requeste= d export not available +qemu-io: error: can't open device nbd+unix:///drv?socket=3DSOCK_DIR/nbd: R= equested export not available server reported: export 'drv' not present { 'execute': 'quit' } {"return": {}} diff --git a/tests/qemu-iotests/142.out b/tests/qemu-iotests/142.out index 3667e38def..a63c49044b 100644 --- a/tests/qemu-iotests/142.out +++ b/tests/qemu-iotests/142.out @@ -26,7 +26,7 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) quit =20 Testing: -drive file=3DTEST_DIR/t.qcow2,cache=3Dinvalid_value -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,cache=3Dinvalid_value: invalid c= ache option +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,cache=3Dinvalid_value: error: in= valid cache option =20 =20 =3D=3D=3D Check inheritance of cache modes =3D=3D=3D @@ -71,13 +71,13 @@ cache.writeback=3Doff on none0 Cache mode: writeback =20 cache.writeback=3Doff on file -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,file.cache.writebac= k=3Doff: Block protocol 'file' doesn't support the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,file.cache.writebac= k=3Doff: error: Block protocol 'file' doesn't support the option 'cache.wri= teback' =20 cache.writeback=3Doff on backing -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.cache.write= back=3Doff: Could not open backing file: Block format 'qcow2' does not supp= ort the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.cache.write= back=3Doff: error: Could not open backing file: Block format 'qcow2' does n= ot support the option 'cache.writeback' =20 cache.writeback=3Doff on backing-file -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.file.cache.= writeback=3Doff: Could not open backing file: Block protocol 'file' doesn't= support the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.file.cache.= writeback=3Doff: error: Could not open backing file: Block protocol 'file' = doesn't support the option 'cache.writeback' =20 =20 cache.no-flush=3Don on none0 @@ -147,13 +147,13 @@ cache.writeback=3Doff on none0 Cache mode: writeback =20 cache.writeback=3Doff on file -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,file.cache.writebac= k=3Doff: Block protocol 'file' doesn't support the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,file.cache.writebac= k=3Doff: error: Block protocol 'file' doesn't support the option 'cache.wri= teback' =20 cache.writeback=3Doff on backing -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.cache.write= back=3Doff: Could not open backing file: Block format 'qcow2' does not supp= ort the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.cache.write= back=3Doff: error: Could not open backing file: Block format 'qcow2' does n= ot support the option 'cache.writeback' =20 cache.writeback=3Doff on backing-file -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.file.cache.= writeback=3Doff: Could not open backing file: Block protocol 'file' doesn't= support the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.file.cache.= writeback=3Doff: error: Could not open backing file: Block protocol 'file' = doesn't support the option 'cache.writeback' =20 =20 cache.no-flush=3Don on none0 @@ -223,13 +223,13 @@ cache.writeback=3Doff on none0 Cache mode: writeback, direct =20 cache.writeback=3Doff on file -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,file.cache.writebac= k=3Doff: Block protocol 'file' doesn't support the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,file.cache.writebac= k=3Doff: error: Block protocol 'file' doesn't support the option 'cache.wri= teback' =20 cache.writeback=3Doff on backing -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.cache.write= back=3Doff: Could not open backing file: Block format 'qcow2' does not supp= ort the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.cache.write= back=3Doff: error: Could not open backing file: Block format 'qcow2' does n= ot support the option 'cache.writeback' =20 cache.writeback=3Doff on backing-file -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.file.cache.= writeback=3Doff: Could not open backing file: Block protocol 'file' doesn't= support the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.file.cache.= writeback=3Doff: error: Could not open backing file: Block protocol 'file' = doesn't support the option 'cache.writeback' =20 =20 cache.no-flush=3Don on none0 @@ -299,13 +299,13 @@ cache.writeback=3Doff on none0 Cache mode: writeback, direct =20 cache.writeback=3Doff on file -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,file.cache.writebac= k=3Doff: Block protocol 'file' doesn't support the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,file.cache.writebac= k=3Doff: error: Block protocol 'file' doesn't support the option 'cache.wri= teback' =20 cache.writeback=3Doff on backing -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.cache.write= back=3Doff: Could not open backing file: Block format 'qcow2' does not supp= ort the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.cache.write= back=3Doff: error: Could not open backing file: Block format 'qcow2' does n= ot support the option 'cache.writeback' =20 cache.writeback=3Doff on backing-file -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.file.cache.= writeback=3Doff: Could not open backing file: Block protocol 'file' doesn't= support the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.file.cache.= writeback=3Doff: error: Could not open backing file: Block protocol 'file' = doesn't support the option 'cache.writeback' =20 =20 cache.no-flush=3Don on none0 @@ -375,13 +375,13 @@ cache.writeback=3Doff on none0 Cache mode: writeback =20 cache.writeback=3Doff on file -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,file.cache.writebac= k=3Doff: Block protocol 'file' doesn't support the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,file.cache.writebac= k=3Doff: error: Block protocol 'file' doesn't support the option 'cache.wri= teback' =20 cache.writeback=3Doff on backing -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.cache.write= back=3Doff: Could not open backing file: Block format 'qcow2' does not supp= ort the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.cache.write= back=3Doff: error: Could not open backing file: Block format 'qcow2' does n= ot support the option 'cache.writeback' =20 cache.writeback=3Doff on backing-file -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.file.cache.= writeback=3Doff: Could not open backing file: Block protocol 'file' doesn't= support the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.file.cache.= writeback=3Doff: error: Could not open backing file: Block protocol 'file' = doesn't support the option 'cache.writeback' =20 =20 cache.no-flush=3Don on none0 @@ -704,13 +704,13 @@ cache.writeback=3Doff on none0 Cache mode: writeback, direct =20 cache.writeback=3Doff on file -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,file.cache.writebac= k=3Doff: Block protocol 'file' doesn't support the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,file.cache.writebac= k=3Doff: error: Block protocol 'file' doesn't support the option 'cache.wri= teback' =20 cache.writeback=3Doff on backing -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.cache.write= back=3Doff: Could not open backing file: Block format 'qcow2' does not supp= ort the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.cache.write= back=3Doff: error: Could not open backing file: Block format 'qcow2' does n= ot support the option 'cache.writeback' =20 cache.writeback=3Doff on backing-file -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.file.cache.= writeback=3Doff: Could not open backing file: Block protocol 'file' doesn't= support the option 'cache.writeback' +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,backing.file.filename= =3DTEST_DIR/t.qcow2.base,node-name=3Dimage,backing.node-name=3Dbacking,back= ing.file.node-name=3Dbacking-file,file.node-name=3Dfile,backing.file.cache.= writeback=3Doff: error: Could not open backing file: Block protocol 'file' = doesn't support the option 'cache.writeback' =20 =20 cache.no-flush=3Don on none0 diff --git a/tests/qemu-iotests/143.out b/tests/qemu-iotests/143.out index 1f4001c601..8db19060f6 100644 --- a/tests/qemu-iotests/143.out +++ b/tests/qemu-iotests/143.out @@ -3,7 +3,7 @@ QA output created by 143 {"return": {}} { 'execute': 'nbd-server-start', 'arguments': { 'addr': { 'type': 'unix', = 'data': { 'path': 'SOCK_DIR/nbd' }}}} {"return": {}} -qemu-io: can't open device nbd+unix:///no_such_export?socket=3DSOCK_DIR/nb= d: Requested export not available +qemu-io: error: can't open device nbd+unix:///no_such_export?socket=3DSOCK= _DIR/nbd: Requested export not available server reported: export 'no_such_export' not present { 'execute': 'quit' } {"return": {}} diff --git a/tests/qemu-iotests/153.out b/tests/qemu-iotests/153.out index f7464dd8d3..99e7659899 100644 --- a/tests/qemu-iotests/153.out +++ b/tests/qemu-iotests/153.out @@ -1,6 +1,6 @@ QA output created by 153 =3D=3D readonly=3Doff,force-share=3Don should be rejected =3D=3D -QEMU_PROG: -drive if=3Dnone,file=3Dnull-co://,readonly=3Doff,force-share= =3Don: force-share=3Don can only be used with read-only images +QEMU_PROG: -drive if=3Dnone,file=3Dnull-co://,readonly=3Doff,force-share= =3Don: error: force-share=3Don can only be used with read-only images =20 =3D=3D Creating base image =3D=3D Formatting 'TEST_DIR/t.IMGFMT.base', fmt=3DIMGFMT size=3D33554432 @@ -11,11 +11,11 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D335= 54432 backing_file=3DTEST_DIR/t =3D=3D Launching QEMU, opts: '' =3D=3D =20 =3D=3D Launching another QEMU, opts: '' =3D=3D -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,: Failed to get "write= " lock +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,: error: Failed to get= "write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 =3D=3D Launching another QEMU, opts: 'read-only=3Don' =3D=3D -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,read-only=3Don: Failed= to get shared "write" lock +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,read-only=3Don: error:= Failed to get shared "write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 =3D=3D Launching another QEMU, opts: 'read-only=3Don,force-share=3Don' =3D= =3D @@ -23,89 +23,89 @@ Is another process using the image [TEST_DIR/t.qcow2]? =3D=3D Running utility commands =3D=3D =20 _qemu_io_wrapper -c read 0 512 TEST_DIR/t.qcow2 -qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-io: error: can't open device TEST_DIR/t.qcow2: Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_io_wrapper -r -c read 0 512 TEST_DIR/t.qcow2 -qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get shared "write" = lock +qemu-io: error: can't open device TEST_DIR/t.qcow2: Failed to get shared "= write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_io_wrapper -c open TEST_DIR/t.qcow2 -c read 0 512 -qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-io: error: can't open device TEST_DIR/t.qcow2: Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? no file open, try 'help open' =20 _qemu_io_wrapper -c open -r TEST_DIR/t.qcow2 -c read 0 512 -qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get shared "write" = lock +qemu-io: error: can't open device TEST_DIR/t.qcow2: Failed to get shared "= write" lock Is another process using the image [TEST_DIR/t.qcow2]? no file open, try 'help open' =20 _qemu_img_wrapper info TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" = lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "= write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper check TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" = lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "= write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper compare TEST_DIR/t.qcow2 TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" = lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "= write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper map TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" = lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "= write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper amend -o TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper commit TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper resize TEST_DIR/t.qcow2 32M -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper rebase TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper snapshot -l TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" = lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "= write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper convert TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.convert -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" = lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "= write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper dd if=3DTEST_DIR/t.qcow2 of=3DTEST_DIR/t.qcow2.convert b= s=3D512 count=3D1 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" = lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "= write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper bench -c 1 TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" = lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "= write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper bench -w -c 1 TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper create -f qcow2 TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base -qemu-img: TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-img: error: TEST_DIR/t.qcow2: Failed to get "write" lock Is another process using the image [TEST_DIR/t.qcow2]? file format: IMGFMT =20 =3D=3D Running utility commands -U =3D=3D =20 _qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2 -qemu-io: can't open device TEST_DIR/t.qcow2: force-share=3Don can only be = used with read-only images +qemu-io: error: can't open device TEST_DIR/t.qcow2: force-share=3Don can o= nly be used with read-only images =20 _qemu_io_wrapper -U -r -c read 0 512 TEST_DIR/t.qcow2 =20 _qemu_io_wrapper -c open -U TEST_DIR/t.qcow2 -c read 0 512 -qemu-io: can't open device TEST_DIR/t.qcow2: force-share=3Don can only be = used with read-only images +qemu-io: error: can't open device TEST_DIR/t.qcow2: force-share=3Don can o= nly be used with read-only images no file open, try 'help open' =20 _qemu_io_wrapper -c open -r -U TEST_DIR/t.qcow2 -c read 0 512 @@ -119,19 +119,19 @@ _qemu_img_wrapper compare -U TEST_DIR/t.qcow2 TEST_DI= R/t.qcow2 _qemu_img_wrapper map -U TEST_DIR/t.qcow2 =20 _qemu_img_wrapper amend -o -U TEST_DIR/t.qcow2 -qemu-img: unrecognized option '-U' +qemu-img: error: unrecognized option '-U' Try 'qemu-img --help' for more information =20 _qemu_img_wrapper commit -U TEST_DIR/t.qcow2 -qemu-img: unrecognized option '-U' +qemu-img: error: unrecognized option '-U' Try 'qemu-img --help' for more information =20 _qemu_img_wrapper resize -U TEST_DIR/t.qcow2 32M -qemu-img: unrecognized option '-U' +qemu-img: error: unrecognized option '-U' Try 'qemu-img --help' for more information =20 _qemu_img_wrapper rebase -U TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper snapshot -l -U TEST_DIR/t.qcow2 @@ -143,7 +143,7 @@ _qemu_img_wrapper dd -U if=3DTEST_DIR/t.qcow2 of=3DTEST= _DIR/t.qcow2.convert bs=3D512 c _qemu_img_wrapper bench -U -c 1 TEST_DIR/t.qcow2 =20 _qemu_img_wrapper bench -U -w -c 1 TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': force-share=3Don can only be = used with read-only images +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': force-share=3Don can o= nly be used with read-only images { 'execute': 'quit' } =20 Round done @@ -157,7 +157,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D335= 54432 backing_file=3DTEST_DIR/t =3D=3D Launching QEMU, opts: 'read-only=3Don' =3D=3D =20 =3D=3D Launching another QEMU, opts: '' =3D=3D -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,: Failed to get "write= " lock +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,: error: Failed to get= "write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 =3D=3D Launching another QEMU, opts: 'read-only=3Don' =3D=3D @@ -167,13 +167,13 @@ Is another process using the image [TEST_DIR/t.qcow2]? =3D=3D Running utility commands =3D=3D =20 _qemu_io_wrapper -c read 0 512 TEST_DIR/t.qcow2 -qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-io: error: can't open device TEST_DIR/t.qcow2: Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_io_wrapper -r -c read 0 512 TEST_DIR/t.qcow2 =20 _qemu_io_wrapper -c open TEST_DIR/t.qcow2 -c read 0 512 -qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-io: error: can't open device TEST_DIR/t.qcow2: Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? no file open, try 'help open' =20 @@ -188,19 +188,19 @@ _qemu_img_wrapper compare TEST_DIR/t.qcow2 TEST_DIR/t= .qcow2 _qemu_img_wrapper map TEST_DIR/t.qcow2 =20 _qemu_img_wrapper amend -o TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper commit TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper resize TEST_DIR/t.qcow2 32M -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper rebase TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper snapshot -l TEST_DIR/t.qcow2 @@ -212,23 +212,23 @@ _qemu_img_wrapper dd if=3DTEST_DIR/t.qcow2 of=3DTEST_= DIR/t.qcow2.convert bs=3D512 coun _qemu_img_wrapper bench -c 1 TEST_DIR/t.qcow2 =20 _qemu_img_wrapper bench -w -c 1 TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper create -f qcow2 TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base -qemu-img: TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-img: error: TEST_DIR/t.qcow2: Failed to get "write" lock Is another process using the image [TEST_DIR/t.qcow2]? file format: IMGFMT =20 =3D=3D Running utility commands -U =3D=3D =20 _qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2 -qemu-io: can't open device TEST_DIR/t.qcow2: force-share=3Don can only be = used with read-only images +qemu-io: error: can't open device TEST_DIR/t.qcow2: force-share=3Don can o= nly be used with read-only images =20 _qemu_io_wrapper -U -r -c read 0 512 TEST_DIR/t.qcow2 =20 _qemu_io_wrapper -c open -U TEST_DIR/t.qcow2 -c read 0 512 -qemu-io: can't open device TEST_DIR/t.qcow2: force-share=3Don can only be = used with read-only images +qemu-io: error: can't open device TEST_DIR/t.qcow2: force-share=3Don can o= nly be used with read-only images no file open, try 'help open' =20 _qemu_io_wrapper -c open -r -U TEST_DIR/t.qcow2 -c read 0 512 @@ -242,19 +242,19 @@ _qemu_img_wrapper compare -U TEST_DIR/t.qcow2 TEST_DI= R/t.qcow2 _qemu_img_wrapper map -U TEST_DIR/t.qcow2 =20 _qemu_img_wrapper amend -o -U TEST_DIR/t.qcow2 -qemu-img: unrecognized option '-U' +qemu-img: error: unrecognized option '-U' Try 'qemu-img --help' for more information =20 _qemu_img_wrapper commit -U TEST_DIR/t.qcow2 -qemu-img: unrecognized option '-U' +qemu-img: error: unrecognized option '-U' Try 'qemu-img --help' for more information =20 _qemu_img_wrapper resize -U TEST_DIR/t.qcow2 32M -qemu-img: unrecognized option '-U' +qemu-img: error: unrecognized option '-U' Try 'qemu-img --help' for more information =20 _qemu_img_wrapper rebase -U TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base -qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? =20 _qemu_img_wrapper snapshot -l -U TEST_DIR/t.qcow2 @@ -266,7 +266,7 @@ _qemu_img_wrapper dd -U if=3DTEST_DIR/t.qcow2 of=3DTEST= _DIR/t.qcow2.convert bs=3D512 c _qemu_img_wrapper bench -U -c 1 TEST_DIR/t.qcow2 =20 _qemu_img_wrapper bench -U -w -c 1 TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': force-share=3Don can only be = used with read-only images +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': force-share=3Don can o= nly be used with read-only images { 'execute': 'quit' } =20 Round done @@ -327,12 +327,12 @@ file format: IMGFMT =3D=3D Running utility commands -U =3D=3D =20 _qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2 -qemu-io: can't open device TEST_DIR/t.qcow2: force-share=3Don can only be = used with read-only images +qemu-io: error: can't open device TEST_DIR/t.qcow2: force-share=3Don can o= nly be used with read-only images =20 _qemu_io_wrapper -U -r -c read 0 512 TEST_DIR/t.qcow2 =20 _qemu_io_wrapper -c open -U TEST_DIR/t.qcow2 -c read 0 512 -qemu-io: can't open device TEST_DIR/t.qcow2: force-share=3Don can only be = used with read-only images +qemu-io: error: can't open device TEST_DIR/t.qcow2: force-share=3Don can o= nly be used with read-only images no file open, try 'help open' =20 _qemu_io_wrapper -c open -r -U TEST_DIR/t.qcow2 -c read 0 512 @@ -346,15 +346,15 @@ _qemu_img_wrapper compare -U TEST_DIR/t.qcow2 TEST_DI= R/t.qcow2 _qemu_img_wrapper map -U TEST_DIR/t.qcow2 =20 _qemu_img_wrapper amend -o -U TEST_DIR/t.qcow2 -qemu-img: unrecognized option '-U' +qemu-img: error: unrecognized option '-U' Try 'qemu-img --help' for more information =20 _qemu_img_wrapper commit -U TEST_DIR/t.qcow2 -qemu-img: unrecognized option '-U' +qemu-img: error: unrecognized option '-U' Try 'qemu-img --help' for more information =20 _qemu_img_wrapper resize -U TEST_DIR/t.qcow2 32M -qemu-img: unrecognized option '-U' +qemu-img: error: unrecognized option '-U' Try 'qemu-img --help' for more information =20 _qemu_img_wrapper rebase -U TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base @@ -368,23 +368,23 @@ _qemu_img_wrapper dd -U if=3DTEST_DIR/t.qcow2 of=3DTE= ST_DIR/t.qcow2.convert bs=3D512 c _qemu_img_wrapper bench -U -c 1 TEST_DIR/t.qcow2 =20 _qemu_img_wrapper bench -U -w -c 1 TEST_DIR/t.qcow2 -qemu-img: Could not open 'TEST_DIR/t.qcow2': force-share=3Don can only be = used with read-only images +qemu-img: error: Could not open 'TEST_DIR/t.qcow2': force-share=3Don can o= nly be used with read-only images { 'execute': 'quit' } =20 Round done =20 =3D=3D Two devices with the same image (read-only=3Doff - read-only=3Doff)= =3D=3D -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,read-only=3Doff: Faile= d to get "write" lock +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,read-only=3Doff: error= : Failed to get "write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 =3D=3D Two devices with the same image (read-only=3Doff - read-only=3Don) = =3D=3D -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,read-only=3Don: Failed= to get shared "write" lock +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,read-only=3Don: error:= Failed to get shared "write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 =3D=3D Two devices with the same image (read-only=3Doff - read-only=3Don,f= orce-share=3Don) =3D=3D =20 =3D=3D Two devices with the same image (read-only=3Don - read-only=3Doff) = =3D=3D -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,read-only=3Doff: Faile= d to get "write" lock +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2,read-only=3Doff: error= : Failed to get "write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 =3D=3D Two devices with the same image (read-only=3Don - read-only=3Don) = =3D=3D @@ -405,13 +405,13 @@ Formatting 'TEST_DIR/t.IMGFMT.c', fmt=3DIMGFMT size= =3D33554432 backing_file=3DTEST_DIR =3D=3D Two devices sharing the same file in backing chain =3D=3D =20 =3D=3D Backing image also as an active device =3D=3D -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2: Failed to get "write"= lock +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2: error: Failed to get = "write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 =3D=3D Backing image also as an active device (ro) =3D=3D =20 =3D=3D Symbolic link =3D=3D -QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2: Failed to get "write"= lock +QEMU_PROG: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2: error: Failed to get = "write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 =3D=3D Active commit to intermediate layer should work when base in use = =3D=3D @@ -426,7 +426,7 @@ Adding drive {"return": "OKrn"} =20 _qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512 -qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-io: error: can't open device TEST_DIR/t.qcow2: Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? Creating overlay with qemu-img when the guest is running should be allowed =20 @@ -447,7 +447,7 @@ _qemu_img_wrapper info TEST_DIR/t.qcow2 {"return": ""} =20 _qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512 -qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-io: error: can't open device TEST_DIR/t.qcow2: Failed to get "write" = lock Is another process using the image [TEST_DIR/t.qcow2]? Closing the other { 'execute': 'human-monitor-command', 'arguments': { 'command-line': 'driv= e_del d1' } } @@ -464,10 +464,10 @@ virtual size: 1 GiB (1073741824 bytes) disk size: unavailable =20 Conflict: -qemu-img: --force-share/-U conflicts with image options +qemu-img: error: --force-share/-U conflicts with image options =20 No conflict: =20 Conflict: -qemu-io: -U conflicts with image options +qemu-io: error: -U conflicts with image options *** done diff --git a/tests/qemu-iotests/162.out b/tests/qemu-iotests/162.out index 5a00d36d17..dc73df631c 100644 --- a/tests/qemu-iotests/162.out +++ b/tests/qemu-iotests/162.out @@ -1,15 +1,15 @@ QA output created by 162 =20 =3D=3D=3D NBD =3D=3D=3D -qemu-img: Could not open 'json:{"driver": "nbd", "host": -1}': address res= olution failed for -1:10809: Name or service not known +qemu-img: error: Could not open 'json:{"driver": "nbd", "host": -1}': addr= ess resolution failed for -1:10809: Name or service not known image: nbd://localhost:PORT image: nbd+unix://?socket=3D42 =20 =3D=3D=3D SSH =3D=3D=3D -qemu-img: Could not open 'json:{"driver": "ssh", "host": "localhost", "por= t": "0", "path": "/foo"}': Failed to connect socket: Connection refused -qemu-img: Could not open 'driver=3Dssh,host=3Dlocalhost,port=3D0,path=3D/f= oo': Failed to connect socket: Connection refused -qemu-img: Could not open 'json:{"driver": "ssh", "host": "localhost", "por= t": 0.42, "path": "/foo"}': Parameter 'port' expects a number -qemu-img: Could not open 'driver=3Dssh,host=3Dlocalhost,port=3D0.42,path= =3D/foo': Parameter 'port' expects a number +qemu-img: error: Could not open 'json:{"driver": "ssh", "host": "localhost= ", "port": "0", "path": "/foo"}': Failed to connect socket: Connection refu= sed +qemu-img: error: Could not open 'driver=3Dssh,host=3Dlocalhost,port=3D0,pa= th=3D/foo': Failed to connect socket: Connection refused +qemu-img: error: Could not open 'json:{"driver": "ssh", "host": "localhost= ", "port": 0.42, "path": "/foo"}': Parameter 'port' expects a number +qemu-img: error: Could not open 'driver=3Dssh,host=3Dlocalhost,port=3D0.42= ,path=3D/foo': Parameter 'port' expects a number =20 =3D=3D=3D blkdebug =3D=3D=3D image: blkdebug:42:null-co:// diff --git a/tests/qemu-iotests/172.out b/tests/qemu-iotests/172.out index 7abbe82427..6d07b96028 100644 --- a/tests/qemu-iotests/172.out +++ b/tests/qemu-iotests/172.out @@ -724,10 +724,10 @@ Testing: -fdb TEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -device fl drive-type =3D "144" =20 Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -device floppy,drive=3Dnone0,unit=3D0 -QEMU_PROG: -device floppy,drive=3Dnone0,unit=3D0: Floppy unit 0 is in use +QEMU_PROG: -device floppy,drive=3Dnone0,unit=3D0: error: Floppy unit 0 is = in use =20 Testing: -fdb TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -device floppy,drive=3Dnone0,unit=3D1 -QEMU_PROG: -device floppy,drive=3Dnone0,unit=3D1: Floppy unit 1 is in use +QEMU_PROG: -device floppy,drive=3Dnone0,unit=3D1: error: Floppy unit 1 is = in use =20 =20 =3D=3D=3D Mixing -drive and -device =3D=3D=3D @@ -809,7 +809,7 @@ Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2 -dr= ive if=3Dnone,file=3DTEST_DIR/t.q drive-type =3D "144" =20 Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -device floppy,drive=3Dnone0,unit=3D0 -QEMU_PROG: -device floppy,drive=3Dnone0,unit=3D0: Floppy unit 0 is in use +QEMU_PROG: -device floppy,drive=3Dnone0,unit=3D0: error: Floppy unit 0 is = in use =20 =20 =3D=3D=3D Mixing -global and -device =3D=3D=3D @@ -967,16 +967,16 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -dr= ive if=3Dnone,file=3DTEST_DIR/t.qco drive-type =3D "144" =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=3Dnone0 -device floppy,drive=3Dno= ne1,unit=3D0 -QEMU_PROG: -device floppy,drive=3Dnone1,unit=3D0: Floppy unit 0 is in use +QEMU_PROG: -device floppy,drive=3Dnone1,unit=3D0: error: Floppy unit 0 is = in use =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveB=3Dnone0 -device floppy,drive=3Dno= ne1,unit=3D1 -QEMU_PROG: -device floppy,drive=3Dnone1,unit=3D1: Floppy unit 1 is in use +QEMU_PROG: -device floppy,drive=3Dnone1,unit=3D1: error: Floppy unit 1 is = in use =20 =20 =3D=3D=3D Too many floppy drives =3D=3D=3D =20 Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.3 -global is= a-fdc.driveB=3Dnone0 -device floppy,drive=3Dnone1 -QEMU_PROG: -device floppy,drive=3Dnone1: Can't create floppy unit 2, bus s= upports only 2 units +QEMU_PROG: -device floppy,drive=3Dnone1: error: Can't create floppy unit 2= , bus supports only 2 units =20 =20 =3D=3D=3D Creating an empty drive with anonymous BB =3D=3D=3D @@ -1204,10 +1204,10 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -= device floppy,drive=3Dnone0,physica drive-type =3D "144" =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -device floppy,drive=3Dn= one0,logical_block_size=3D4096 -QEMU_PROG: -device floppy,drive=3Dnone0,logical_block_size=3D4096: Physica= l and logical block size must be 512 for floppy +QEMU_PROG: -device floppy,drive=3Dnone0,logical_block_size=3D4096: error: = Physical and logical block size must be 512 for floppy =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -device floppy,drive=3Dn= one0,physical_block_size=3D1024 -QEMU_PROG: -device floppy,drive=3Dnone0,physical_block_size=3D1024: Physic= al and logical block size must be 512 for floppy +QEMU_PROG: -device floppy,drive=3Dnone0,physical_block_size=3D1024: error:= Physical and logical block size must be 512 for floppy =20 =20 =3D=3D=3D Writethrough caching =3D=3D=3D diff --git a/tests/qemu-iotests/178.out.qcow2 b/tests/qemu-iotests/178.out.= qcow2 index 9e7d8c44df..1131c41853 100644 --- a/tests/qemu-iotests/178.out.qcow2 +++ b/tests/qemu-iotests/178.out.qcow2 @@ -2,19 +2,19 @@ QA output created by 178 =3D=3D Input validation =3D=3D =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 -qemu-img: Either --size N or one filename must be specified. -qemu-img: --size N cannot be used together with a filename. -qemu-img: At most one filename argument is allowed. -qemu-img: --object, --image-opts, -f, and -l require a filename argument. -qemu-img: --object, --image-opts, -f, and -l require a filename argument. -qemu-img: --object, --image-opts, -f, and -l require a filename argument. -qemu-img: --object, --image-opts, -f, and -l require a filename argument. -qemu-img: Invalid option list: , -qemu-img: Invalid parameter 'snapshot.foo' -qemu-img: Failed in parsing snapshot param 'snapshot.foo' -qemu-img: --output must be used with human or json as argument. -qemu-img: Image size must be less than 8 EiB! -qemu-img: Unknown file format 'foo' +qemu-img: error: Either --size N or one filename must be specified. +qemu-img: error: --size N cannot be used together with a filename. +qemu-img: error: At most one filename argument is allowed. +qemu-img: error: --object, --image-opts, -f, and -l require a filename arg= ument. +qemu-img: error: --object, --image-opts, -f, and -l require a filename arg= ument. +qemu-img: error: --object, --image-opts, -f, and -l require a filename arg= ument. +qemu-img: error: --object, --image-opts, -f, and -l require a filename arg= ument. +qemu-img: error: Invalid option list: , +qemu-img: error: Invalid parameter 'snapshot.foo' +qemu-img: error: Failed in parsing snapshot param 'snapshot.foo' +qemu-img: error: --output must be used with human or json as argument. +qemu-img: error: Image size must be less than 8 EiB! +qemu-img: error: Unknown file format 'foo' =20 =3D=3D Size calculation for a new file (human) =3D=3D =20 @@ -30,7 +30,7 @@ required size: 168034304 fully allocated size: 1099679662080 required size: 343650009088 fully allocated size: 2252143463694336 -qemu-img: The image size is too large (try using a larger cluster size) +qemu-img: error: The image size is too large (try using a larger cluster s= ize) =20 =3D=3D Empty qcow2 input image (human) =3D=3D =20 @@ -167,7 +167,7 @@ converted image file size in bytes: 8716288 "required": 343650009088, "fully-allocated": 2252143463694336 } -qemu-img: The image size is too large (try using a larger cluster size) +qemu-img: error: The image size is too large (try using a larger cluster s= ize) =20 =3D=3D Empty qcow2 input image (json) =3D=3D =20 diff --git a/tests/qemu-iotests/178.out.raw b/tests/qemu-iotests/178.out.raw index 6478365905..bfda347e59 100644 --- a/tests/qemu-iotests/178.out.raw +++ b/tests/qemu-iotests/178.out.raw @@ -2,19 +2,19 @@ QA output created by 178 =3D=3D Input validation =3D=3D =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1073741824 -qemu-img: Either --size N or one filename must be specified. -qemu-img: --size N cannot be used together with a filename. -qemu-img: At most one filename argument is allowed. -qemu-img: --object, --image-opts, -f, and -l require a filename argument. -qemu-img: --object, --image-opts, -f, and -l require a filename argument. -qemu-img: --object, --image-opts, -f, and -l require a filename argument. -qemu-img: --object, --image-opts, -f, and -l require a filename argument. -qemu-img: Invalid option list: , -qemu-img: Invalid parameter 'snapshot.foo' -qemu-img: Failed in parsing snapshot param 'snapshot.foo' -qemu-img: --output must be used with human or json as argument. -qemu-img: Image size must be less than 8 EiB! -qemu-img: Unknown file format 'foo' +qemu-img: error: Either --size N or one filename must be specified. +qemu-img: error: --size N cannot be used together with a filename. +qemu-img: error: At most one filename argument is allowed. +qemu-img: error: --object, --image-opts, -f, and -l require a filename arg= ument. +qemu-img: error: --object, --image-opts, -f, and -l require a filename arg= ument. +qemu-img: error: --object, --image-opts, -f, and -l require a filename arg= ument. +qemu-img: error: --object, --image-opts, -f, and -l require a filename arg= ument. +qemu-img: error: Invalid option list: , +qemu-img: error: Invalid parameter 'snapshot.foo' +qemu-img: error: Failed in parsing snapshot param 'snapshot.foo' +qemu-img: error: --output must be used with human or json as argument. +qemu-img: error: Image size must be less than 8 EiB! +qemu-img: error: Unknown file format 'foo' =20 =3D=3D Size calculation for a new file (human) =3D=3D =20 diff --git a/tests/qemu-iotests/182.out b/tests/qemu-iotests/182.out index a8eea166c3..0b3d4b524f 100644 --- a/tests/qemu-iotests/182.out +++ b/tests/qemu-iotests/182.out @@ -3,7 +3,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D33554432 Starting QEMU =20 Starting a second QEMU using the same image should fail -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,id=3Ddrive0,file.locki= ng=3Don: Failed to get "write" lock +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,if=3Dnone,id=3Ddrive0,file.locki= ng=3Don: error: Failed to get "write" lock Is another process using the image [TEST_DIR/t.qcow2]? =20 =3D=3D=3D Testing reopen =3D=3D=3D diff --git a/tests/qemu-iotests/187.out b/tests/qemu-iotests/187.out index 86203d8abc..17beda25d0 100644 --- a/tests/qemu-iotests/187.out +++ b/tests/qemu-iotests/187.out @@ -3,16 +3,16 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108= 864 =20 Start from read-only =20 -qemu-io: Block node is read-only +qemu-io: error: Block node is read-only wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-io: Block node is read-only +qemu-io: error: Block node is read-only =20 Start from read-write =20 wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-io: Block node is read-only +qemu-io: error: Block node is read-only wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) *** done diff --git a/tests/qemu-iotests/188.out b/tests/qemu-iotests/188.out index c568ef3701..44cff331f0 100644 --- a/tests/qemu-iotests/188.out +++ b/tests/qemu-iotests/188.out @@ -14,7 +14,7 @@ read 16777216/16777216 bytes at offset 0 16 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) =20 =3D=3D verify open failure with wrong password =3D=3D -qemu-io: can't open: Invalid password, cannot unlock any keyslot +qemu-io: error: can't open: Invalid password, cannot unlock any keyslot =20 =3D=3D verify that has_zero_init returns false when preallocating =3D=3D Formatting 'TEST_DIR/t.IMGFMT.orig', fmt=3DIMGFMT size=3D16777216 diff --git a/tests/qemu-iotests/197.out b/tests/qemu-iotests/197.out index 7ca46be6e4..411c14e2db 100644 --- a/tests/qemu-iotests/197.out +++ b/tests/qemu-iotests/197.out @@ -16,7 +16,7 @@ read 2147483136/2147483136 bytes at offset 1024 2 GiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) read 1024/1024 bytes at offset 3221226496 1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-io: can't open device TEST_DIR/t.wrap.qcow2: Can't use copy-on-read o= n read-only device +qemu-io: error: can't open device TEST_DIR/t.wrap.qcow2: Can't use copy-on= -read on read-only device 2 GiB (0x80010000) bytes allocated at offset 0 bytes (0x0) 1023.938 MiB (0x3fff0000) bytes not allocated at offset 2 GiB (0x80010000) 64 KiB (0x10000) bytes allocated at offset 3 GiB (0xc0000000) diff --git a/tests/qemu-iotests/205 b/tests/qemu-iotests/205 index 4bb2c21e8b..9e80fc7d15 100755 --- a/tests/qemu-iotests/205 +++ b/tests/qemu-iotests/205 @@ -78,7 +78,7 @@ class TestNbdServerRemove(iotests.QMPTestCase): =20 def assertConnectFailed(self, qemu_io_output): self.assertEqual(filter_qemu_io(qemu_io_output).strip(), - "qemu-io: can't open device " + nbd_uri + + "qemu-io: error: can't open device " + nbd_uri + ": Requested export not available\n" "server reported: export 'exp' not present") =20 diff --git a/tests/qemu-iotests/215.out b/tests/qemu-iotests/215.out index 5a2fe40d03..9917f48205 100644 --- a/tests/qemu-iotests/215.out +++ b/tests/qemu-iotests/215.out @@ -16,7 +16,7 @@ read 2147483136/2147483136 bytes at offset 1024 2 GiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) read 1024/1024 bytes at offset 3221226496 1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-io: can't open device TEST_DIR/t.wrap.qcow2: Block node is read-only +qemu-io: error: can't open device TEST_DIR/t.wrap.qcow2: Block node is rea= d-only 2 GiB (0x80010000) bytes allocated at offset 0 bytes (0x0) 1023.938 MiB (0x3fff0000) bytes not allocated at offset 2 GiB (0x80010000) 64 KiB (0x10000) bytes allocated at offset 3 GiB (0xc0000000) diff --git a/tests/qemu-iotests/217.out b/tests/qemu-iotests/217.out index e3fc40a8c7..702c6d825b 100644 --- a/tests/qemu-iotests/217.out +++ b/tests/qemu-iotests/217.out @@ -10,7 +10,7 @@ Snapshot list: (Snapshot filtered) =20 qcow2_free_clusters failed: Input/output error -qemu-img: Could not delete snapshot 'foo': Failed to free the cluster and = L1 table: Input/output error +qemu-img: error: Could not delete snapshot 'foo': Failed to free the clust= er and L1 table: Input/output error =20 --- Checking test image --- Leaked cluster 4 refcount=3D2 reference=3D1 diff --git a/tests/qemu-iotests/226.out b/tests/qemu-iotests/226.out index 42be973ff2..5b06a97430 100644 --- a/tests/qemu-iotests/226.out +++ b/tests/qemu-iotests/226.out @@ -3,24 +3,24 @@ QA output created by 226 =3D=3D=3D Testing with driver:file =3D=3D=3D =20 =3D=3D Testing RO =3D=3D -qemu-io: can't open: A regular file was expected by the 'file' driver, but= something else was given +qemu-io: error: can't open: A regular file was expected by the 'file' driv= er, but something else was given qemu-io: warning: Opening a character device as a file using the 'file' dr= iver is deprecated =3D=3D Testing RW =3D=3D -qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory +qemu-io: error: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a direc= tory qemu-io: warning: Opening a character device as a file using the 'file' dr= iver is deprecated =20 =3D=3D=3D Testing with driver:host_device =3D=3D=3D =20 =3D=3D Testing RO =3D=3D -qemu-io: can't open: 'host_device' driver expects either a character or bl= ock device +qemu-io: error: can't open: 'host_device' driver expects either a characte= r or block device =3D=3D Testing RW =3D=3D -qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory +qemu-io: error: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a direc= tory =20 =3D=3D=3D Testing with driver:host_cdrom =3D=3D=3D =20 =3D=3D Testing RO =3D=3D -qemu-io: can't open: 'host_cdrom' driver expects either a character or blo= ck device +qemu-io: error: can't open: 'host_cdrom' driver expects either a character= or block device =3D=3D Testing RW =3D=3D -qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory +qemu-io: error: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a direc= tory =20 *** done diff --git a/tests/qemu-iotests/232.out b/tests/qemu-iotests/232.out index 3bd1a920af..b338f2239c 100644 --- a/tests/qemu-iotests/232.out +++ b/tests/qemu-iotests/232.out @@ -21,11 +21,11 @@ NODE_NAME: TEST_DIR/t.IMGFMT (file, read-only) NODE_NAME: TEST_DIR/t.IMGFMT (file, read-only) NODE_NAME: TEST_DIR/t.IMGFMT (file, read-only) =20 -QEMU_PROG: -drive driver=3Dfile,file=3DTEST_DIR/t.IMGFMT,if=3Dnone,read-on= ly=3Doff,auto-read-only=3Doff: Could not open 'TEST_DIR/t.IMGFMT': Permissi= on denied +QEMU_PROG: -drive driver=3Dfile,file=3DTEST_DIR/t.IMGFMT,if=3Dnone,read-on= ly=3Doff,auto-read-only=3Doff: error: Could not open 'TEST_DIR/t.IMGFMT': P= ermission denied NODE_NAME: TEST_DIR/t.IMGFMT (file) NODE_NAME: TEST_DIR/t.IMGFMT (file) =20 -QEMU_PROG: -drive driver=3Dfile,file=3DTEST_DIR/t.IMGFMT,if=3Dnone,auto-re= ad-only=3Doff: Could not open 'TEST_DIR/t.IMGFMT': Permission denied +QEMU_PROG: -drive driver=3Dfile,file=3DTEST_DIR/t.IMGFMT,if=3Dnone,auto-re= ad-only=3Doff: error: Could not open 'TEST_DIR/t.IMGFMT': Permission denied NODE_NAME: TEST_DIR/t.IMGFMT (file) NODE_NAME: TEST_DIR/t.IMGFMT (file) =20 @@ -49,11 +49,11 @@ node0: TEST_DIR/t.IMGFMT (file, read-only) node0: TEST_DIR/t.IMGFMT (file, read-only) node0: TEST_DIR/t.IMGFMT (file, read-only) =20 -QEMU_PROG: -blockdev driver=3Dfile,filename=3DTEST_DIR/t.IMGFMT,node-name= =3Dnode0,read-only=3Doff,auto-read-only=3Doff: Could not open 'TEST_DIR/t.I= MGFMT': Permission denied +QEMU_PROG: -blockdev driver=3Dfile,filename=3DTEST_DIR/t.IMGFMT,node-name= =3Dnode0,read-only=3Doff,auto-read-only=3Doff: error: Could not open 'TEST_= DIR/t.IMGFMT': Permission denied node0: TEST_DIR/t.IMGFMT (file) -QEMU_PROG: -blockdev driver=3Dfile,filename=3DTEST_DIR/t.IMGFMT,node-name= =3Dnode0,read-only=3Doff: Could not open 'TEST_DIR/t.IMGFMT': Permission de= nied +QEMU_PROG: -blockdev driver=3Dfile,filename=3DTEST_DIR/t.IMGFMT,node-name= =3Dnode0,read-only=3Doff: error: Could not open 'TEST_DIR/t.IMGFMT': Permis= sion denied =20 -QEMU_PROG: -blockdev driver=3Dfile,filename=3DTEST_DIR/t.IMGFMT,node-name= =3Dnode0,auto-read-only=3Doff: Could not open 'TEST_DIR/t.IMGFMT': Permissi= on denied +QEMU_PROG: -blockdev driver=3Dfile,filename=3DTEST_DIR/t.IMGFMT,node-name= =3Dnode0,auto-read-only=3Doff: error: Could not open 'TEST_DIR/t.IMGFMT': P= ermission denied node0: TEST_DIR/t.IMGFMT (file) -QEMU_PROG: -blockdev driver=3Dfile,filename=3DTEST_DIR/t.IMGFMT,node-name= =3Dnode0: Could not open 'TEST_DIR/t.IMGFMT': Permission denied +QEMU_PROG: -blockdev driver=3Dfile,filename=3DTEST_DIR/t.IMGFMT,node-name= =3Dnode0: error: Could not open 'TEST_DIR/t.IMGFMT': Permission denied *** done diff --git a/tests/qemu-iotests/233.out b/tests/qemu-iotests/233.out index c3c344811b..df7e588b36 100644 --- a/tests/qemu-iotests/233.out +++ b/tests/qemu-iotests/233.out @@ -14,16 +14,16 @@ wrote 1048576/1048576 bytes at offset 1048576 1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) =20 =3D=3D check TLS client to plain server fails =3D=3D -qemu-img: Could not open 'driver=3Dnbd,host=3D127.0.0.1,port=3DPORT,tls-cr= eds=3Dtls0': Denied by server for option 5 (starttls) +qemu-img: error: Could not open 'driver=3Dnbd,host=3D127.0.0.1,port=3DPORT= ,tls-creds=3Dtls0': Denied by server for option 5 (starttls) server reported: TLS not configured -qemu-nbd: Denied by server for option 5 (starttls) +qemu-nbd: error: Denied by server for option 5 (starttls) server reported: TLS not configured =20 =3D=3D check plain client to TLS server fails =3D=3D -qemu-img: Could not open 'nbd://localhost:PORT': TLS negotiation required = before option 7 (go) +qemu-img: error: Could not open 'nbd://localhost:PORT': TLS negotiation re= quired before option 7 (go) Did you forget a valid tls-creds? server reported: Option 0x7 not permitted before TLS -qemu-nbd: TLS negotiation required before option 3 (list) +qemu-nbd: error: TLS negotiation required before option 3 (list) Did you forget a valid tls-creds? server reported: Option 0x3 not permitted before TLS =20 @@ -47,8 +47,8 @@ exports available: 1 base:allocation =20 =3D=3D check TLS with different CA fails =3D=3D -qemu-img: Could not open 'driver=3Dnbd,host=3D127.0.0.1,port=3DPORT,tls-cr= eds=3Dtls0': The certificate hasn't got a known issuer -qemu-nbd: The certificate hasn't got a known issuer +qemu-img: error: Could not open 'driver=3Dnbd,host=3D127.0.0.1,port=3DPORT= ,tls-creds=3Dtls0': The certificate hasn't got a known issuer +qemu-nbd: error: The certificate hasn't got a known issuer =20 =3D=3D perform I/O over TLS =3D=3D read 1048576/1048576 bytes at offset 1048576 @@ -59,12 +59,12 @@ read 1048576/1048576 bytes at offset 1048576 1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) =20 =3D=3D check TLS with authorization =3D=3D -qemu-img: Could not open 'driver=3Dnbd,host=3D127.0.0.1,port=3DPORT,tls-cr= eds=3Dtls0': Failed to read option reply: Cannot read from TLS channel: Sof= tware caused connection abort -qemu-img: Could not open 'driver=3Dnbd,host=3D127.0.0.1,port=3DPORT,tls-cr= eds=3Dtls0': Failed to read option reply: Cannot read from TLS channel: Sof= tware caused connection abort +qemu-img: error: Could not open 'driver=3Dnbd,host=3D127.0.0.1,port=3DPORT= ,tls-creds=3Dtls0': Failed to read option reply: Cannot read from TLS chann= el: Software caused connection abort +qemu-img: error: Could not open 'driver=3Dnbd,host=3D127.0.0.1,port=3DPORT= ,tls-creds=3Dtls0': Failed to read option reply: Cannot read from TLS chann= el: Software caused connection abort =20 =3D=3D final server log =3D=3D -qemu-nbd: option negotiation failed: Verify failed: No certificate was fou= nd. -qemu-nbd: option negotiation failed: Verify failed: No certificate was fou= nd. -qemu-nbd: option negotiation failed: TLS x509 authz check for CN=3Dlocalho= st,O=3DCthulhu Dark Lord Enterprises client1,L=3DR'lyeh,C=3DSouth Pacific i= s denied -qemu-nbd: option negotiation failed: TLS x509 authz check for CN=3Dlocalho= st,O=3DCthulhu Dark Lord Enterprises client3,L=3DR'lyeh,C=3DSouth Pacific i= s denied +qemu-nbd: error: option negotiation failed: Verify failed: No certificate = was found. +qemu-nbd: error: option negotiation failed: Verify failed: No certificate = was found. +qemu-nbd: error: option negotiation failed: TLS x509 authz check for CN=3D= localhost,O=3DCthulhu Dark Lord Enterprises client1,L=3DR'lyeh,C=3DSouth Pa= cific is denied +qemu-nbd: error: option negotiation failed: TLS x509 authz check for CN=3D= localhost,O=3DCthulhu Dark Lord Enterprises client3,L=3DR'lyeh,C=3DSouth Pa= cific is denied *** done diff --git a/tests/qemu-iotests/242.out b/tests/qemu-iotests/242.out index 7ac8404d11..fe729faa3e 100644 --- a/tests/qemu-iotests/242.out +++ b/tests/qemu-iotests/242.out @@ -143,7 +143,7 @@ Test 5 {"execute": "block-dirty-bitmap-add", "arguments": {"disabled": false, "gr= anularity": 16384, "name": "bitmap-0", "node": "drive0", "persistent": true= }} {"return": {}} Write an unknown bitmap flag '0x4' into a new QCOW2 image at offset 327695 -qemu-img: Could not open 'TEST_IMG': Bitmap 'bitmap-0' doesn't satisfy the= constraints +qemu-img: error: Could not open 'TEST_IMG': Bitmap 'bitmap-0' doesn't sati= sfy the constraints =20 Unset the unknown bitmap flag '0x4' in the bitmap directory entry: =20 diff --git a/tests/qemu-iotests/244.out b/tests/qemu-iotests/244.out index 6a3d0067cc..6e8b9a9a2b 100644 --- a/tests/qemu-iotests/244.out +++ b/tests/qemu-iotests/244.out @@ -9,22 +9,22 @@ read 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) read 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-io: can't open device TEST_DIR/t.qcow2: Could not open 'inexistent': = No such file or directory +qemu-io: error: can't open device TEST_DIR/t.qcow2: Could not open 'inexis= tent': No such file or directory no file open, try 'help open' =20 Data file required, but without data file name in the image: -qemu-io: can't open device TEST_DIR/t.qcow2: 'data-file' is required for t= his image +qemu-io: error: can't open device TEST_DIR/t.qcow2: 'data-file' is require= d for this image no file open, try 'help open' read 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-io: can't open device TEST_DIR/t.qcow2: Could not open 'inexistent': = No such file or directory +qemu-io: error: can't open device TEST_DIR/t.qcow2: Could not open 'inexis= tent': No such file or directory no file open, try 'help open' =20 Setting data-file for an image with internal data: Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-io: can't open device TEST_DIR/t.qcow2: 'data-file' can only be set f= or images with an external data file +qemu-io: error: can't open device TEST_DIR/t.qcow2: 'data-file' can only b= e set for images with an external data file no file open, try 'help open' -qemu-io: can't open device TEST_DIR/t.qcow2: Could not open 'inexistent': = No such file or directory +qemu-io: error: can't open device TEST_DIR/t.qcow2: Could not open 'inexis= tent': No such file or directory no file open, try 'help open' =20 =3D=3D=3D Conflicting features =3D=3D=3D @@ -33,7 +33,7 @@ Convert to compressed target with data file: Formatting 'TEST_DIR/t.IMGFMT.src', fmt=3DIMGFMT size=3D67108864 wrote 1048576/1048576 bytes at offset 0 1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -qemu-img: error while writing sector 0: Operation not supported +qemu-img: error: error while writing sector 0: Operation not supported =20 Convert uncompressed, then write compressed data manually: Images are identical. @@ -41,7 +41,7 @@ write failed: Operation not supported No errors were found on the image. =20 Take an internal snapshot: -qemu-img: Could not create snapshot 'test': -95 (Operation not supported) +qemu-img: error: Could not create snapshot 'test': -95 (Operation not supp= orted) No errors were found on the image. =20 =3D=3D=3D Standalone image with external data file (efficient) =3D=3D=3D diff --git a/tests/qemu-iotests/249.out b/tests/qemu-iotests/249.out index 51307ed0f7..4ce35e2f6a 100644 --- a/tests/qemu-iotests/249.out +++ b/tests/qemu-iotests/249.out @@ -8,7 +8,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1048576= backing_file=3DTEST_DIR/t. =3D=3D=3D Send a write command to a drive opened in read-only mode (1) =20 { 'execute': 'human-monitor-command', 'arguments': {'command-line': 'qemu-= io none0 "aio_write 0 2k"'}} -{"return": "Block node is read-onlyrn"} +{"return": "error: Block node is read-onlyrn"} =20 =3D=3D=3D Run block-commit on base using an invalid filter node name =20 @@ -20,7 +20,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D10485= 76 backing_file=3DTEST_DIR/t. =3D=3D=3D Send a write command to a drive opened in read-only mode (2) =20 { 'execute': 'human-monitor-command', 'arguments': {'command-line': 'qemu-= io none0 "aio_write 0 2k"'}} -{"return": "Block node is read-onlyrn"} +{"return": "error: Block node is read-onlyrn"} =20 =3D=3D=3D Run block-commit on base using the default filter node name =20 @@ -37,5 +37,5 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D10485= 76 backing_file=3DTEST_DIR/t. =3D=3D=3D Send a write command to a drive opened in read-only mode (3) =20 { 'execute': 'human-monitor-command', 'arguments': {'command-line': 'qemu-= io none0 "aio_write 0 2k"'}} -{"return": "Block node is read-onlyrn"} +{"return": "error: Block node is read-onlyrn"} *** done diff --git a/tests/qemu-iotests/261.out b/tests/qemu-iotests/261.out index 2600354566..176fee892e 100644 --- a/tests/qemu-iotests/261.out +++ b/tests/qemu-iotests/261.out @@ -162,12 +162,12 @@ Snapshots in TEST_DIR/t.IMGFMT: =20 =3D=3D=3D Reject too much unknown extra data =3D=3D=3D =20 -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Too much extra metadata in s= napshot table entry 3 +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': Too much extra metada= ta in snapshot table entry 3 You can force-remove this extra metadata with qemu-img check -r all =20 -qemu-img: ERROR failed to read the snapshot table: Too much extra metadata= in snapshot table entry 3 +qemu-img: error: ERROR failed to read the snapshot table: Too much extra m= etadata in snapshot table entry 3 You can force-remove this extra metadata with qemu-img check -r all -qemu-img: Check failed: File too large +qemu-img: error: Check failed: File too large =20 Discarding too much extra metadata in snapshot table entry 3 (65536 > 1024) ERROR cluster 10 refcount=3D0 reference=3D1 @@ -185,12 +185,12 @@ No errors were found on the image. =3D=3D=3D Snapshot table too big =3D=3D=3D =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Snapshot table is too big +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': Snapshot table is too= big You can force-remove all 1 overhanging snapshots with qemu-img check -r all =20 -qemu-img: ERROR failed to read the snapshot table: Snapshot table is too b= ig +qemu-img: error: ERROR failed to read the snapshot table: Snapshot table i= s too big You can force-remove all 1 overhanging snapshots with qemu-img check -r all -qemu-img: Check failed: File too large +qemu-img: error: Check failed: File too large =20 Discarding 1 overhanging snapshots (snapshot table is too big) Leaked cluster 14 refcount=3D1 reference=3D0 @@ -217,12 +217,12 @@ No errors were found on the image. =20 Snapshot table size should equal 67108872: 67108872 =20 -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Too much extra metadata in s= napshot table entry 505 +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': Too much extra metada= ta in snapshot table entry 505 You can force-remove this extra metadata with qemu-img check -r all =20 -qemu-img: ERROR failed to read the snapshot table: Too much extra metadata= in snapshot table entry 505 +qemu-img: error: ERROR failed to read the snapshot table: Too much extra m= etadata in snapshot table entry 505 You can force-remove this extra metadata with qemu-img check -r all -qemu-img: Check failed: File too large +qemu-img: error: Check failed: File too large =20 Discarding too much extra metadata in snapshot table entry 505 (116944 > 1= 024) Discarding 1 overhanging snapshots (snapshot table is too big) @@ -241,11 +241,11 @@ No errors were found on the image. =3D=3D=3D Too many snapshots =3D=3D=3D =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D67108864 -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Snapshot table too large +qemu-img: error: Could not open 'TEST_DIR/t.IMGFMT': Snapshot table too la= rge =20 -qemu-img: ERROR snapshot table too large +qemu-img: error: ERROR snapshot table too large You can force-remove all 65536 overhanging snapshots with qemu-img check -= r all -qemu-img: Check failed: File too large +qemu-img: error: Check failed: File too large =20 Discarding 65536 overhanging snapshots Leaked cluster 14 refcount=3D1 reference=3D0 diff --git a/tests/qemu-iotests/267.out b/tests/qemu-iotests/267.out index 8dddb4baa4..7e3f77c259 100644 --- a/tests/qemu-iotests/267.out +++ b/tests/qemu-iotests/267.out @@ -6,11 +6,11 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D13421= 7728 Testing: QEMU X.Y.Z monitor - type 'help' for more information (qemu) savevm snap0 -Error: No block device can accept snapshots +error: No block device can accept snapshots (qemu) info snapshots No available block device supports snapshots (qemu) loadvm snap0 -Error: No block device supports snapshots +error: No block device supports snapshots (qemu) quit =20 =20 @@ -20,11 +20,11 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134= 217728 Testing: -drive driver=3Dfile,file=3DTEST_DIR/t.IMGFMT,if=3Dnone QEMU X.Y.Z monitor - type 'help' for more information (qemu) savevm snap0 -Error: Device 'none0' is writable but does not support snapshots +error: Device 'none0' is writable but does not support snapshots (qemu) info snapshots No available block device supports snapshots (qemu) loadvm snap0 -Error: Device 'none0' is writable but does not support snapshots +error: Device 'none0' is writable but does not support snapshots (qemu) quit =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 @@ -56,11 +56,11 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134= 217728 Testing: -drive driver=3Dfile,file=3DTEST_DIR/t.IMGFMT,if=3Dvirtio QEMU X.Y.Z monitor - type 'help' for more information (qemu) savevm snap0 -Error: Device 'virtio0' is writable but does not support snapshots +error: Device 'virtio0' is writable but does not support snapshots (qemu) info snapshots No available block device supports snapshots (qemu) loadvm snap0 -Error: Device 'virtio0' is writable but does not support snapshots +error: Device 'virtio0' is writable but does not support snapshots (qemu) quit =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 @@ -81,11 +81,11 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134= 217728 Testing: -blockdev driver=3Dfile,filename=3DTEST_DIR/t.IMGFMT,node-name=3D= file QEMU X.Y.Z monitor - type 'help' for more information (qemu) savevm snap0 -Error: Device '' is writable but does not support snapshots +error: Device '' is writable but does not support snapshots (qemu) info snapshots No available block device supports snapshots (qemu) loadvm snap0 -Error: Device '' is writable but does not support snapshots +error: Device '' is writable but does not support snapshots (qemu) quit =20 Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D134217728 diff --git a/tests/qemu-iotests/common.filter b/tests/qemu-iotests/common.f= ilter index 3f8ee3e5f7..0f19eeeeca 100644 --- a/tests/qemu-iotests/common.filter +++ b/tests/qemu-iotests/common.filter @@ -58,7 +58,7 @@ _filter_imgfmt() _filter_qemu_img_check() { $SED -e '/allocated.*fragmented.*compressed clusters/d' \ - -e 's/qemu-img: This image format does not support checks/No error= s were found on the image./' \ + -e 's/qemu-img: error: This image format does not support checks/N= o errors were found on the image./' \ -e '/Image end offset: [0-9]\+/d' } =20 diff --git a/util/qemu-error.c b/util/qemu-error.c index dac7c7dc50..03ab07341c 100644 --- a/util/qemu-error.c +++ b/util/qemu-error.c @@ -217,6 +217,7 @@ static void vreport(report_type type, const char *fmt, = va_list ap) =20 switch (type) { case REPORT_TYPE_ERROR: + error_printf("error: "); break; case REPORT_TYPE_WARNING: error_printf("warning: "); --=20 2.17.2 From nobody Mon Feb 9 07:40:17 2026 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=1580121908; cv=none; d=zohomail.com; s=zohoarc; b=Z3eokHyUdipEw1o95nYHGFHYcqWljRosa9LeEZYFjKLSSpwGZnBzz24LpBsX86/QiKiySH3BBL2Eh6mcg0rbs6fD2Kvh0onZNlmvvlAai0giclNS/rrBh2q3+61SQtJjj1OME2Dx55lK27yddOvOrH7y+opyg2gI6YytW3Rn3Q0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1580121908; 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=ykGD5q6tg/Ruqxi7LkOISW7w1se2v94mv33Xd77OWa8=; b=iCcZk187h0gAbRHzGVheqkVjaN6NIfA0BKzrO0szgeALKFONCJNBg1bT9zVebQ4zSnui4Ca1QB/87QTfTr/NtcZu/VLzUt4HLs0MT6oHecl7B2ZPLHdc6EGtC6OMfieZ4b59om9VwheuHLuilV31U+9EsRthTFlDk7azMbOIPMY= 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 1580121908684921.0552261762688; Mon, 27 Jan 2020 02:45:08 -0800 (PST) Received: from localhost ([::1]:42814 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1tD-0007Ug-MK for importer@patchew.org; Mon, 27 Jan 2020 05:45:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42511) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw1m0-0003Xb-Gq for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw1lz-0003Ai-CC for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:40 -0500 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:48779 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 1iw1lz-0003AX-8p for qemu-devel@nongnu.org; Mon, 27 Jan 2020 05:37:39 -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-421-MCjzRulLN7OY2UjyJ1nJbQ-1; Mon, 27 Jan 2020 05:37:35 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5A6FF8010D0; Mon, 27 Jan 2020 10:37:34 +0000 (UTC) Received: from maximlenovopc.usersys.redhat.com (unknown [10.35.206.86]) by smtp.corp.redhat.com (Postfix) with ESMTP id BA6B4451F; Mon, 27 Jan 2020 10:37:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580121459; 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=ykGD5q6tg/Ruqxi7LkOISW7w1se2v94mv33Xd77OWa8=; b=DPTnU3NMMdSYumR+NnB3cDp+eppwZk1Y20yzk+GEhmTvU8pRCqNz3xLbzGqi0Q49irxNpV 85fbsKjjDwgzJ+ykmz/5ZGKXEA1a9hLn30w6DP2ybHzXhnLmWvBS7c3txbqA1oweNnBKKB uc/tXj/GnAxk8MOhWmspIWcn1iLy0UI= From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v3 13/13] monitor/hmp: Prefer to use hmp_handle_error for error reporting in block hmp commands Date: Mon, 27 Jan 2020 12:36:47 +0200 Message-Id: <20200127103647.17761-14-mlevitsk@redhat.com> In-Reply-To: <20200127103647.17761-1-mlevitsk@redhat.com> References: <20200127103647.17761-1-mlevitsk@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: MCjzRulLN7OY2UjyJ1nJbQ-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" , Max Reitz , Gerd Hoffmann , Maxim Levitsky 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 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=3D1719169 Signed-off-by: Maxim Levitsky --- 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 7bbe4e3814..5b060d380d 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -84,7 +84,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; } @@ -98,7 +97,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; @@ -109,6 +108,7 @@ err: monitor_remove_blk(blk); blk_unref(blk); } + hmp_handle_error(mon, err); } =20 void hmp_drive_del(Monitor *mon, const QDict *qdict) @@ -130,14 +130,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); @@ -146,9 +146,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); @@ -169,12 +168,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")) { @@ -185,12 +187,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); @@ -202,8 +204,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