Am 28.05.2015 um 02:59 hat Wen Congyang geschrieben: > On 05/27/2015 08:31 PM, Kevin Wolf wrote: > > Am 21.05.2015 um 07:47 hat Wen Congyang geschrieben: > >> On 05/09/2015 01:21 AM, Kevin Wolf wrote: > >>> For bs->file, using references to existing BDSes has been possible for a > >>> while already. This patch enables the same for bs->backing_hd. > >> > >> 1. We reference to an existing BDSes, and some disk uses this blk. Do > >> we allow this? > > > > Currently yes. If it breaks, you get to keep both pieces. > > > > As long as your guest device is read-only, it should just work. It would > > be a very bad idea, though, to write to a backing file. > > > > Op blockers should eventually prevent this from happening (Jeff, you may > > want to take a note ;-)) > > > >> 2. bs->backing_hd->blk can be not NULL now? If we do an active commit > >> to this backing file(use mirror job), we will call bdrv_swap() in > >> mirror_exit(), and the function bdrv_swap() doesn't allow that > >> new_bs->blk(here is bs->backing_hd) is not NULL. > > > > You're right. > > > > I can remove this patch from the series for now, but of course that > > doesn't solve the problem. I'm not sure what to do about it. Making > > bdrv_swap() work with BDSes that have BB attached is probably another > > item in the list of "dynamic reconfiguration" problems. > > What does "dynamic reconfiguration" mean? Allow to change drive's option > when guest is running?
Sorry, I should have been more specific for those of you who haven't been part of previous discussions. In this context, I'm talking about dynamic reconfiguration of the BlockDriverState graph, i.e. any operation that changes the relationship between different BDSes (essentially add/remove/change pointers to other BDSes). An example for that is changing the backing file of an opened image after having merged external snapshots with block-commit, or inserting a new active layer for taking a live snapshot. Kevin