On Thu 21 Jan 2021 11:52:17 AM CET, Kevin Wolf wrote: >> Hmm, still, removing a filter which want to unshare WRITE even when >> doesn't have any parents will be a problem anyway, so we'll need a >> new command to drop filter with a logic like in bdrv_drop_filter in >> my series. >> >> Or, we can introduce multiple reopen.. So that x-blockdev-reopen will >> take a list of BlockdevOptions, and do all modifications in one >> transaction. Than we'll be able to drop filter by transactional >> update of top node child and removing filter child link. > > Internally, we already have reopen queues anyway, so it would make > sense to me to expose them externally and take a list of > BlockdevOptions. This way we should be able to do even complex > changes of the graph where adding some edges requires the removal of > other edges in a single atomic operation.
So you mean changing the signature to something like this? { 'command': 'x-blockdev-reopen', 'data': { 'options': ['BlockdevOptions'] } } It should be easy to make that change, I can have a look. Berto