[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
>