[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v8 3/7] block: allow not one child for implicit node
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[Qemu-block] [PATCH v8 3/7] block: allow not one child for implicit node |
Date: |
Wed, 29 May 2019 18:46:50 +0300 |
Upcoming backup-top filter wants to operate like usual implicit filter
node with fall-through to backing child. But also needs additional
target child, let's support that.
On the other hand, after backup completion (before job dismiss) filter
is still attached to job blk, but don't have any children. Support this
too.
Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
---
block.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/block.c b/block.c
index 57216f4115..3f4de3ae32 100644
--- a/block.c
+++ b/block.c
@@ -6200,9 +6200,20 @@ void bdrv_refresh_filename(BlockDriverState *bs)
}
if (bs->implicit) {
- /* For implicit nodes, just copy everything from the single child */
+ /*
+ * For implicit nodes, just copy everything from the single child or
+ * from backing, if there are several children.
+ * If there are no children for some reason (filter is still attached
+ * to block-job blk, but already removed from backing chain of device)
+ * do nothing.
+ */
child = QLIST_FIRST(&bs->children);
- assert(QLIST_NEXT(child, next) == NULL);
+ if (!child) {
+ return;
+ } else if (QLIST_NEXT(child, next)) {
+ assert(bs->backing);
+ child = bs->backing;
+ }
pstrcpy(bs->exact_filename, sizeof(bs->exact_filename),
child->bs->exact_filename);
--
2.18.0
- [Qemu-block] [PATCH v8 0/7] backup-top filter driver for backup, Vladimir Sementsov-Ogievskiy, 2019/05/29
- [Qemu-block] [PATCH v8 2/7] block: swap operation order in bdrv_append, Vladimir Sementsov-Ogievskiy, 2019/05/29
- [Qemu-block] [PATCH v8 3/7] block: allow not one child for implicit node,
Vladimir Sementsov-Ogievskiy <=
- [Qemu-block] [PATCH v8 5/7] block/io: refactor wait_serialising_requests, Vladimir Sementsov-Ogievskiy, 2019/05/29
- [Qemu-block] [PATCH v8 1/7] block: teach bdrv_debug_breakpoint skip filters with backing, Vladimir Sementsov-Ogievskiy, 2019/05/29
- [Qemu-block] [PATCH v8 6/7] block: add lock/unlock range functions, Vladimir Sementsov-Ogievskiy, 2019/05/29
- [Qemu-block] [PATCH v8 4/7] block: introduce backup-top filter driver, Vladimir Sementsov-Ogievskiy, 2019/05/29
- [Qemu-block] [PATCH v8 7/7] block/backup: use backup-top instead of write notifiers, Vladimir Sementsov-Ogievskiy, 2019/05/29
- Re: [Qemu-block] [PATCH v8 0/7] backup-top filter driver for backup, Vladimir Sementsov-Ogievskiy, 2019/05/30