On Wed, Oct 30, 2013 at 02:49:32PM +0100, Markus Armbruster wrote: > The first proposal is to add another parameter, say "id". Users can > then refer either to an arbitrary BDS by "id", or (for backward > compatibility) to the root BDS by "device". When the code sees > "device", it'll look up the BB, then fetch its root BDS. > > CON: Existing parameter "device" becomes compatibility cruft. > > PRO: Clean and obvious semantics (in my opinion).
This proposal gets my vote. > The second proposal is to press the existing parameter "device" into > service for referring to BDS node_name. > > To keep backward compatibility, we obviously need to ensure that > whenever the old code accepts a value of "device", the new code accepts > it as well, and both resolve it to the same BDS. Different legacy commands given the same device name might need to operate on different nodes. Dynamic renaming does not solve this problem, so I'm not convinced we can always choose a device name matching a node name. Device name commands are higher-level than graph node commands. For example, block_set_io_throttle makes sense on a device but less sense on a graph node, unless we add the implicit assumption that the new throttling node is created on top of the given node or updated in place if the throttling node already exists (!!). Stefan