qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH V6 8/8] block: Use graph node name as reference


From: Benoît Canet
Subject: Re: [Qemu-devel] [PATCH V6 8/8] block: Use graph node name as reference in bdrv_file_open().
Date: Fri, 30 May 2014 21:17:20 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

The Friday 30 May 2014 à 13:10:56 (-0600), Eric Blake wrote :
> On 01/24/2014 07:48 AM, Kevin Wolf wrote:
> 
> Revisiting this:
> 
> >> However, first of all I'd like to hear the opinions of at least Eric and
> >>> Max on what BlockRef should really refer to. I think node names make
> >>> most sense, but perhaps it's a bit inconvenient and the command line
> >>> should default to node-name = id when id is set, but node-name isn't?
> >>
> >> The QAPI schema is pretty clear about this: “references the ID of an
> >> existing block device.”
> > 
> > Sure, that's because I wrote that text before we had a node name.
> > 
> > However, in 1.7 references didn't work yet, so we still have all freedom
> > to change the interface as we like.
> 
> Is this statement still true of 2.0?  I'm trying to figure out if it is
> possible to create a node name not attached to a device, and then later
> attach it by reference to another device
Seems possible.

> , from either the command line
> or via blockdev-add.  More precisely, I'm trying to figure out if Jeff's
> patches have to worry about the user ever doing:
> 
>       / file1
> base <
>       \ file2
> 
> and having to identify the overlay of node-name base, which gets more
> interesting if a node-name can belong to more than one device.
> 

I think a bdrv_swap would occur and prevent double parenting.

> > 
> >> However, if the ID cannot be found, I think
> >> we should interpret it as a reference to the node name.
> >>
> >> Therefore, I'd first try bdrv_find() and if that returns NULL, try
> >> again with bdrv_find_node().
> > 
> > I think I would prefer to avoid such ambiguities. Otherwise a management
> > tool that wants to use the node name needs to check first if it's not
> > already used as a device name somewhere else and would therefore operate
> > on the wrong device.
> > 
> > On the other hand, a management tool using the same names for devices
> > and nodes just gets what it deserves.
> > 
> > Perhaps we should use a common namespace for both, i.e. you get an error
> > if you try to assign a node name that is already a device name and vice
> > versa?
> > 
> > Kevin
> > 
> > 
> 
> -- 
> Eric Blake   eblake redhat com    +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]