* [Qemu-devel] [PATCH v2] blockdev: loosen restrictions on drive-backup source node
@ 2019-05-21 21:00 John Snow
2019-05-28 16:24 ` Max Reitz
0 siblings, 1 reply; 2+ messages in thread
From: John Snow @ 2019-05-21 21:00 UTC (permalink / raw)
To: qemu-devel, qemu-block
Cc: Kevin Wolf, John Snow, Markus Armbruster, Max Reitz
We mandate that the source node must be a root node; but there's no reason
I am aware of that it needs to be restricted to such. In some cases, we need
to make sure that there's a medium present, but in the general case we can
allow the backup job itself to do the graph checking.
This patch helps improve the error message when you try to backup from
the same node more than once, which is reflected in the change to test
056.
For backups with bitmaps, it will also show a better error message that
the bitmap is in use instead of giving you something cryptic like "need
a root node."
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1707303
Signed-off-by: John Snow <jsnow@redhat.com>
---
blockdev.c | 7 ++++++-
tests/qemu-iotests/056 | 2 +-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/blockdev.c b/blockdev.c
index 79fbac8450..bc339d7818 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -3450,11 +3450,16 @@ static BlockJob *do_drive_backup(DriveBackup *backup, JobTxn *txn,
backup->compress = false;
}
- bs = qmp_get_root_bs(backup->device, errp);
+ bs = bdrv_lookup_bs(backup->device, backup->device, errp);
if (!bs) {
return NULL;
}
+ if (!bs->drv) {
+ error_setg(errp, "Device has no medium");
+ return NULL;
+ }
+
aio_context = bdrv_get_aio_context(bs);
aio_context_acquire(aio_context);
diff --git a/tests/qemu-iotests/056 b/tests/qemu-iotests/056
index 3df323984d..f40fc11a09 100755
--- a/tests/qemu-iotests/056
+++ b/tests/qemu-iotests/056
@@ -214,7 +214,7 @@ class BackupTest(iotests.QMPTestCase):
res = self.vm.qmp('query-block-jobs')
self.assert_qmp(res, 'return[0]/status', 'concluded')
# Leave zombie job un-dismissed, observe a failure:
- res = self.qmp_backup_and_wait(serror='Need a root block node',
+ res = self.qmp_backup_and_wait(serror="Node 'drive0' is busy: block device is in use by block job: backup",
device='drive0', format=iotests.imgfmt,
sync='full', target=self.dest_img,
auto_dismiss=False)
--
2.20.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH v2] blockdev: loosen restrictions on drive-backup source node
2019-05-21 21:00 [Qemu-devel] [PATCH v2] blockdev: loosen restrictions on drive-backup source node John Snow
@ 2019-05-28 16:24 ` Max Reitz
0 siblings, 0 replies; 2+ messages in thread
From: Max Reitz @ 2019-05-28 16:24 UTC (permalink / raw)
To: John Snow, qemu-devel, qemu-block; +Cc: Kevin Wolf, Markus Armbruster
[-- Attachment #1: Type: text/plain, Size: 1044 bytes --]
On 21.05.19 23:00, John Snow wrote:
> We mandate that the source node must be a root node; but there's no reason
> I am aware of that it needs to be restricted to such. In some cases, we need
> to make sure that there's a medium present, but in the general case we can
> allow the backup job itself to do the graph checking.
>
> This patch helps improve the error message when you try to backup from
> the same node more than once, which is reflected in the change to test
> 056.
>
> For backups with bitmaps, it will also show a better error message that
> the bitmap is in use instead of giving you something cryptic like "need
> a root node."
>
> Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1707303
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
> blockdev.c | 7 ++++++-
> tests/qemu-iotests/056 | 2 +-
> 2 files changed, 7 insertions(+), 2 deletions(-)
Thanks, applied to my block branch:
https://git.xanclic.moe/XanClic/qemu/commits/branch/block
Let’s see what breaks.
Max
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-05-28 16:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-21 21:00 [Qemu-devel] [PATCH v2] blockdev: loosen restrictions on drive-backup source node John Snow
2019-05-28 16:24 ` Max Reitz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).