On Thu, Mar 05, 2015 at 03:09:58PM +0100, Kevin Wolf wrote: > > { 'command': 'block-stream', > > - 'data': { 'device': 'str', '*base': 'str', '*backing-file': 'str', > > - '*speed': 'int', '*on-error': 'BlockdevOnError' } } > > + 'data': { 'device': 'str', '*base': 'str', '*top': 'str', > > + '*backing-file': 'str', '*speed': 'int', > > + '*on-error': 'BlockdevOnError' } }
> A better interface would probably be to allow node names for > 'device' and leave everything else as it is. That's possible, but if the API is the same how does libvirt know if streaming to an intermediate node is possible or not? > There is no point in specifying some root node as 'device' that > isn't actually involved in the operation; worse, it isn't even > possible in the general case because 'top' could have multiple > users/parents. The latter is actually a good point, if 'top' is used by 2+ parents then it makes sense that the ownership of the block job in in 'top', not in the root node. I think I will need to investigate the consequences of that. Berto