Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
blockjob: update nodes head while removing all bdrv
block_job_remove_all_bdrv() iterates through job->nodes, calling bdrv_root_unref_child() for each entry. The call to the latter may reach child_job_[can_]set_aio_ctx(), which will also attempt to traverse job->nodes, potentially finding entries that where freed on previous iterations. To avoid this situation, update job->nodes head on each iteration to ensure that already freed entries are no longer linked to the list. RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1746631 Signed-off-by: Sergio Lopez <[email protected]> Cc: [email protected] Signed-off-by: Max Reitz <[email protected]> Message-id: [email protected] Reviewed-by: Sergio Lopez <[email protected]> Signed-off-by: Max Reitz <[email protected]>
- Loading branch information