[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v10 08/16] block: Support streaming to an interm
From: |
Alberto Garcia |
Subject: |
Re: [Qemu-devel] [PATCH v10 08/16] block: Support streaming to an intermediate layer |
Date: |
Wed, 12 Oct 2016 16:33:43 +0200 |
User-agent: |
Notmuch/0.18.2 (http://notmuchmail.org) Emacs/24.4.1 (i586-pc-linux-gnu) |
On Wed 12 Oct 2016 04:23:05 PM CEST, Kevin Wolf <address@hidden> wrote:
>> + /* Block all intermediate nodes between bs and base, because they
>> + * will disappear from the chain after this operation */
>> + for (iter = backing_bs(bs); iter && iter != base; iter =
>> backing_bs(iter)) {
>> + block_job_add_bdrv(&s->common, iter);
>> + }
>
> In patch 6, you had a comment that the top node must be blocked as
> well because its backing file string will be updated. Isn't it the
> same for streaming?
In the block-stream case, 'device' is always the top node, and creating
the block job there already blocks all operations in it.
In the block-commit case, 'device' and 'top' are different parameters,
that's why 'top' must be explicitly blocked. I actually don't think that
we need to block 'device' at all, and we could even make the parameter
optional. That would be for a future patch, though. Also, the backing
file string is not updated in 'top', but in its overlay (unlike in
block-stream, 'top' disappears after a block-commit job).
Berto
[Qemu-devel] [PATCH v10 05/16] block: Check blockers in all nodes involved in a block-commit job, Alberto Garcia, 2016/10/06
[Qemu-devel] [PATCH v10 03/16] block: Use block_job_add_bdrv() in mirror_start_job(), Alberto Garcia, 2016/10/06