[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 04/13] block: Drop detached child from ignore list
From: |
Kevin Wolf |
Subject: |
[PULL 04/13] block: Drop detached child from ignore list |
Date: |
Mon, 15 Nov 2021 15:54:00 +0100 |
From: Hanna Reitz <hreitz@redhat.com>
bdrv_attach_child_common_abort() restores the parent's AioContext. To
do so, the child (which was supposed to be attached, but is now detached
again by this abort handler) is added to the ignore list for the
AioContext changing functions.
However, since we modify a BDS's children list in the BdrvChildClass's
.attach and .detach handlers, the child is already effectively detached
from the parent by this point. We do not need to put it into the ignore
list.
Use this opportunity to clean up the empty line structure: Keep setting
the ignore list, invoking the AioContext function, and freeing the
ignore list in blocks separated by empty lines.
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20211111120829.81329-5-hreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
block.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/block.c b/block.c
index 19bff4f95c..c7d5aa5254 100644
--- a/block.c
+++ b/block.c
@@ -2774,14 +2774,16 @@ static void bdrv_attach_child_common_abort(void *opaque)
}
if (bdrv_child_get_parent_aio_context(child) != s->old_parent_ctx) {
- GSList *ignore = g_slist_prepend(NULL, child);
+ GSList *ignore;
+ /* No need to ignore `child`, because it has been detached already */
+ ignore = NULL;
child->klass->can_set_aio_ctx(child, s->old_parent_ctx, &ignore,
&error_abort);
g_slist_free(ignore);
- ignore = g_slist_prepend(NULL, child);
- child->klass->set_aio_ctx(child, s->old_parent_ctx, &ignore);
+ ignore = NULL;
+ child->klass->set_aio_ctx(child, s->old_parent_ctx, &ignore);
g_slist_free(ignore);
}
--
2.31.1
- [PULL 00/13] Block layer patches, Kevin Wolf, 2021/11/15
- [PULL 01/13] stream: Traverse graph after modification, Kevin Wolf, 2021/11/15
- [PULL 04/13] block: Drop detached child from ignore list,
Kevin Wolf <=
- [PULL 02/13] block: Manipulate children list in .attach/.detach, Kevin Wolf, 2021/11/15
- [PULL 03/13] block: Unite remove_empty_child and child_free, Kevin Wolf, 2021/11/15
- [PULL 05/13] block: Pass BdrvChild ** to replace_child_noperm, Kevin Wolf, 2021/11/15
- [PULL 06/13] block: Restructure remove_file_or_backing_child(), Kevin Wolf, 2021/11/15
- [PULL 08/13] block: Let replace_child_tran keep indirect pointer, Kevin Wolf, 2021/11/15
- [PULL 11/13] docs: Deprecate incorrectly typed device_add arguments, Kevin Wolf, 2021/11/15
- [PULL 12/13] file-posix: Fix alignment after reopen changing O_DIRECT, Kevin Wolf, 2021/11/15
- [PULL 10/13] iotests/030: Unthrottle parallel jobs in reverse, Kevin Wolf, 2021/11/15
- [PULL 09/13] block: Let replace_child_noperm free children, Kevin Wolf, 2021/11/15
- [PULL 13/13] softmmu/qdev-monitor: fix use-after-free in qdev_set_id(), Kevin Wolf, 2021/11/15