Am 05.04.2012 17:42, schrieb Paolo Bonzini: > QED's opaque data includes a pointer back to the BlockDriverState. > Creating a snapshot whose format is QED breaks the relationship when > bdrv_append shuffles data between bs_new and bs_top. To avoid this, > add a "rebind" function that tells the driver about the new relationship > between the BlockDriverState and its opaque. > > The patch also adds rebind to VVFAT for completeness, even though it is > not used with live snapshots. > > Thanks to Stefan and Jeff for help reproducing and debugging this. > > Cc: Stefan Hajnoczi <stefa...@linux.vnet.ibm.com> > Cc: Jeff Cody <jc...@redhat.com> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
These drivers should really have been written in a way that they pass bs instead of s when they need bs. I know that fixing the drivers properly is much more work than adding another API that shouldn't exist in the first place, so I'll take this anyway, but I do dislike it. Kevin