[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v8 1/5] block: check for existing device IDs in exte
From: |
Alberto Garcia |
Subject: |
[Qemu-devel] [PATCH v8 1/5] block: check for existing device IDs in external_snapshot_prepare() |
Date: |
Mon, 26 Oct 2015 14:27:13 +0200 |
The 'snapshot-node-name' parameter of blockdev-snapshot-sync allows
setting the node name of the image that is going to be created.
Before creating the image, external_snapshot_prepare() checks that the
name is not already being used. The check is however incomplete since
it only considers existing node names, but node names must not clash
with device IDs either because they share the same namespace.
If the user attempts to create a snapshot using the name of an
existing device for the 'snapshot-node-name' parameter the operation
will eventually fail, but only after the new image has been created.
This patch replaces bdrv_find_node() with bdrv_lookup_bs() to extend
the check to existing device IDs, and thus detect possible name
clashes before the new image is created.
Signed-off-by: Alberto Garcia <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
---
blockdev.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/blockdev.c b/blockdev.c
index 18712d2..8084b0d 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -1568,8 +1568,9 @@ static void external_snapshot_prepare(BlkTransactionState
*common,
return;
}
- if (has_snapshot_node_name && bdrv_find_node(snapshot_node_name)) {
- error_setg(errp, "New snapshot node name already existing");
+ if (has_snapshot_node_name &&
+ bdrv_lookup_bs(snapshot_node_name, snapshot_node_name, NULL)) {
+ error_setg(errp, "New snapshot node name already in use");
return;
}
--
2.6.1
- [Qemu-devel] [PATCH v8 0/5] Add 'blockdev-snapshot' command, Alberto Garcia, 2015/10/26
- [Qemu-devel] [PATCH v8 1/5] block: check for existing device IDs in external_snapshot_prepare(),
Alberto Garcia <=
- [Qemu-devel] [PATCH v8 5/5] block: add tests for the 'blockdev-snapshot' command, Alberto Garcia, 2015/10/26
- [Qemu-devel] [PATCH v8 2/5] block: rename BlockdevSnapshot to BlockdevSnapshotSync, Alberto Garcia, 2015/10/26
- [Qemu-devel] [PATCH v8 4/5] block: add a 'blockdev-snapshot' QMP command, Alberto Garcia, 2015/10/26
- [Qemu-devel] [PATCH v8 3/5] block: support passing 'backing': '' to 'blockdev-add', Alberto Garcia, 2015/10/26
- Re: [Qemu-devel] [PATCH v8 0/5] Add 'blockdev-snapshot' command, Kevin Wolf, 2015/10/27