On Tue 03 May 2016 03:23:24 PM CEST, Kevin Wolf wrote: >> c) we fix bdrv_reopen() so we can actually run both jobs at the same >> time. I'm wondering if pausing all block jobs between >> bdrv_reopen_prepare() and bdrv_reopen_commit() would do the >> trick. Opinions? > > I would have to read up the details of the problem again, but I think > with bdrv_drained_begin/end() we actually have the right tool now to fix > it properly. We may need to pull up the drain (bdrv_drain_all() today) > from bdrv_reopen_multiple() to its caller and just assert it in the > function itself, but there shouldn't be much more to it than that.
I think that's not enough, see point 2) here: https://lists.gnu.org/archive/html/qemu-block/2015-12/msg00180.html "I've been taking a look at the bdrv_drained_begin/end() API, but as I understand it it prevents requests from a different AioContext. Since all BDS in the same chain share the same context it does not really help here." Berto
