[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v3 13/16] block: Implement bdrv_append() without
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-block] [PATCH v3 13/16] block: Implement bdrv_append() without bdrv_swap() |
Date: |
Tue, 13 Oct 2015 10:39:22 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 12.10.2015 um 16:27 hat Alberto Garcia geschrieben:
> On Fri 09 Oct 2015 02:15:38 PM CEST, Kevin Wolf wrote:
> > +static void change_parent_backing_link(BlockDriverState *from,
> > + BlockDriverState *to)
> > +{
> > + BdrvChild *c, *next;
> > +
> > + QLIST_FOREACH_SAFE(c, &from->parents, next_parent, next) {
> > + assert(c->role != &child_backing);
> > + c->bs = to;
> > + QLIST_REMOVE(c, next_parent);
> > + QLIST_INSERT_HEAD(&to->parents, c, next_parent);
> > + bdrv_ref(to);
> > + bdrv_unref(from);
> > + }
> > + if (from->blk) {
> > + blk_set_bs(from->blk, to);
> > + if (!to->device_list.tqe_prev) {
> > + QTAILQ_INSERT_BEFORE(from, to, device_list);
> > + }
>
> Is it even possible that this last condition is false? In what case
> would 'to' be already in bdrv_states?
>
> I understand that it would mean that it would already be attached to a
> BlockBackend, but that's not possible in this case.
Yes, I think it's not possible currently (hopefully, because that would
cause other bugs), just being careful. Eventually we'll allow more than
one BlockBackend pointing to the same BDS, and then this is a scenario
that could happen.
Kevin
- [Qemu-block] [PATCH v3 00/16] block: Get rid of bdrv_swap(), Kevin Wolf, 2015/10/09
- [Qemu-block] [PATCH v3 10/16] block/io: Make bdrv_requests_pending() public, Kevin Wolf, 2015/10/09
- [Qemu-block] [PATCH v3 11/16] block-backend: Add blk_set_bs(), Kevin Wolf, 2015/10/09
- [Qemu-block] [PATCH v3 14/16] blockjob: Store device name at job creation, Kevin Wolf, 2015/10/09
- [Qemu-block] [PATCH v3 01/16] block: Introduce BDS.file_child, Kevin Wolf, 2015/10/09
- [Qemu-block] [PATCH v3 06/16] block: Remove bdrv_open_image(), Kevin Wolf, 2015/10/09
- [Qemu-block] [PATCH v3 02/16] vmdk: Use BdrvChild instead of BDS for references to extents, Kevin Wolf, 2015/10/09