On Tue 15 Aug 2017 03:50:12 PM CEST, Manos Pitsidianakis wrote:
>>> +static inline BlockDriverState *child_bs(BlockDriverState *bs)
>>> +{
>>> +BdrvChild *child = QLIST_FIRST(&bs->children);
>>> +assert(child && !QLIST_NEXT(child, next));
>>> +return child->bs;
>>> +}
>>
>>This aborts i
On Tue, Aug 15, 2017 at 03:24:38PM +0200, Alberto Garcia wrote:
On Wed 09 Aug 2017 04:02:51 PM CEST, Manos Pitsidianakis wrote:
@@ -2988,6 +3004,9 @@ void qmp_block_stream(bool has_job_id, const char
*job_id, const char *device,
return;
}
+/* Skip implicit filter nodes */
+
On Wed 09 Aug 2017 04:02:51 PM CEST, Manos Pitsidianakis wrote:
> @@ -2988,6 +3004,9 @@ void qmp_block_stream(bool has_job_id, const char
> *job_id, const char *device,
> return;
> }
>
> +/* Skip implicit filter nodes */
> +bs = bdrv_get_first_explicit(bs);
> +
> aio_c
Implicit filter nodes added at the top of nodes can interfere with block
jobs. This is not a problem when they are added by other jobs since
adding another job will issue a QERR_DEVICE_IN_USE, but it can happen in
the next commit which introduces an implicitly created throttle filter
node below Blo