On Thu 27 Feb 2020 07:18:04 PM CET, Kevin Wolf wrote:
> /*
> - * TODO: before removing the x- prefix from x-blockdev-reopen we
> - * should move the new backing file into the right AioContext
> - * instead of returning an error.
> + * Check AioContext compatibility so that the bdrv_set_backing_hd() call
> in
> + * bdrv_reopen_commit() won't fail.
> */
> - if (new_backing_bs) {
> - if (bdrv_get_aio_context(new_backing_bs) !=
> bdrv_get_aio_context(bs)) {
> - error_setg(errp, "Cannot use a new backing file "
> - "with a different AioContext");
> - return -EINVAL;
> - }
> + if (!bdrv_reopen_can_attach(bs->backing, bs, new_backing_bs, errp)) {
> + return -EINVAL;
> }
What happens here now if 'new_backing_bs' is NULL ?
It seems that you would be calling bdrv_can_set_aio_context(NULL, ...),
and it looks like that would crash.
Berto