Blame SOURCES/kvm-qemu-img-Report-bdrv_block_status-failures.patch

383d26
From 1df02b6de7da262eb8349560f27f6c41d85953cd Mon Sep 17 00:00:00 2001
383d26
From: John Snow <jsnow@redhat.com>
383d26
Date: Mon, 6 May 2019 17:56:11 +0200
383d26
Subject: [PATCH 01/53] qemu-img: Report bdrv_block_status failures
383d26
383d26
RH-Author: John Snow <jsnow@redhat.com>
383d26
Message-id: <20190506175629.11079-2-jsnow@redhat.com>
383d26
Patchwork-id: 87181
383d26
O-Subject: [RHEL-7.7 qemu-kvm-rhev PATCH 01/19] qemu-img: Report bdrv_block_status failures
383d26
Bugzilla: 1692018
383d26
RH-Acked-by: Max Reitz <mreitz@redhat.com>
383d26
RH-Acked-by: Stefano Garzarella <sgarzare@redhat.com>
383d26
RH-Acked-by: Thomas Huth <thuth@redhat.com>
383d26
383d26
From: Eric Blake <eblake@redhat.com>
383d26
383d26
If bdrv_block_status_above() fails, we are aborting the convert
383d26
process but failing to print an error message.  Broken in commit
383d26
690c7301 (v2.4) when rewriting convert's logic.
383d26
383d26
Discovered when teaching nbdkit to support NBD_CMD_BLOCK_STATUS, and
383d26
accidentally violating the protocol by returning more than one extent
383d26
in spite of qemu asking for NBD_CMD_FLAG_REQ_ONE.  The qemu NBD code
383d26
should probably handle the server's non-compliance more gracefully
383d26
than failing with EINVAL, but qemu-img shouldn't be silently
383d26
squelching any block status failures. It doesn't help that qemu 3.1
383d26
masks the qemu-img bug with extra noise that the nbd code is dumping
383d26
to stderr (that noise was cleaned up in d8b4bad8).
383d26
383d26
Reported-by: Richard W.M. Jones <rjones@redhat.com>
383d26
Signed-off-by: Eric Blake <eblake@redhat.com>
383d26
Message-Id: <20190323212639.579-2-eblake@redhat.com>
383d26
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
383d26
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
383d26
(cherry picked from commit 2058c2ad261de7f58fae01d63d3d0efa484caf2a)
383d26
Signed-off-by: John Snow <jsnow@redhat.com>
383d26
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
383d26
---
383d26
 qemu-img.c | 2 ++
383d26
 1 file changed, 2 insertions(+)
383d26
383d26
diff --git a/qemu-img.c b/qemu-img.c
383d26
index 3b147ca..096e844 100644
383d26
--- a/qemu-img.c
383d26
+++ b/qemu-img.c
383d26
@@ -1607,6 +1607,8 @@ static int convert_iteration_sectors(ImgConvertState *s, int64_t sector_num)
383d26
                                           count, &count, NULL, NULL);
383d26
         }
383d26
         if (ret < 0) {
383d26
+            error_report("error while reading block status of sector %" PRId64
383d26
+                         ": %s", sector_num, strerror(-ret));
383d26
             return ret;
383d26
         }
383d26
         n = DIV_ROUND_UP(count, BDRV_SECTOR_SIZE);
383d26
-- 
383d26
1.8.3.1
383d26