[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 7/9] block: BDRVReopenState: drop replace_backing_bs field
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v6 7/9] block: BDRVReopenState: drop replace_backing_bs field |
Date: |
Thu, 10 Jun 2021 15:05:35 +0300 |
It's used only in bdrv_reopen_commit(). "backing" is covered by the
loop through all children except for case when we removed backing child
during reopen.
Make it more obvious and drop extra boolean field: qdict_del will not
fail if there is no such entry.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
include/block/block.h | 1 -
block.c | 10 ++++------
2 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/include/block/block.h b/include/block/block.h
index 8e707a83b7..d28022e761 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -208,7 +208,6 @@ typedef struct BDRVReopenState {
int flags;
BlockdevDetectZeroesOptions detect_zeroes;
bool backing_missing;
- bool replace_backing_bs; /* new_backing_bs is ignored if this is false */
BlockDriverState *old_backing_bs; /* keep pointer for permissions update */
QDict *options;
QDict *explicit_options;
diff --git a/block.c b/block.c
index f835b576a9..eb98aced9d 100644
--- a/block.c
+++ b/block.c
@@ -4296,7 +4296,6 @@ static int bdrv_reopen_parse_backing(BDRVReopenState
*reopen_state,
return -EINVAL;
}
- reopen_state->replace_backing_bs = true;
reopen_state->old_backing_bs = bs->backing ? bs->backing->bs : NULL;
return bdrv_set_backing_noperm(bs, new_backing_bs, set_backings_tran,
errp);
}
@@ -4550,17 +4549,16 @@ static void bdrv_reopen_commit(BDRVReopenState
*reopen_state)
bs->open_flags = reopen_state->flags;
bs->detect_zeroes = reopen_state->detect_zeroes;
- if (reopen_state->replace_backing_bs) {
- qdict_del(bs->explicit_options, "backing");
- qdict_del(bs->options, "backing");
- }
-
/* Remove child references from bs->options and bs->explicit_options.
* Child options were already removed in bdrv_reopen_queue_child() */
QLIST_FOREACH(child, &bs->children, next) {
qdict_del(bs->explicit_options, child->name);
qdict_del(bs->options, child->name);
}
+ /* backing is probably removed, so it's not handled by previous loop */
+ qdict_del(bs->explicit_options, "backing");
+ qdict_del(bs->options, "backing");
+
bdrv_refresh_limits(bs, NULL, NULL);
}
--
2.29.2
- [PATCH v6 0/9] Allow changing bs->file on reopen, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 1/9] block: introduce bdrv_remove_file_or_backing_child(), Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 3/9] block: bdrv_reopen_parse_backing(): don't check aio context, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 2/9] block: introduce bdrv_set_file_or_backing_noperm(), Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 5/9] block: bdrv_reopen_parse_backing(): simplify handling implicit filters, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 6/9] block: move supports_backing check to bdrv_set_file_or_backing_noperm(), Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 9/9] iotests: Test replacing files with x-blockdev-reopen, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 4/9] block: bdrv_reopen_parse_backing(): don't check frozen child, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 7/9] block: BDRVReopenState: drop replace_backing_bs field,
Vladimir Sementsov-Ogievskiy <=
- [PATCH v6 8/9] block: Allow changing bs->file on reopen, Vladimir Sementsov-Ogievskiy, 2021/06/10
- Re: [PATCH v6 0/9] Allow changing bs->file on reopen, Kevin Wolf, 2021/06/28