On 07/14/2016 07:28 AM, Kevin Wolf wrote:
> There is no reason why an NBD server couldn't be started for any node,
> even if it's not on the top level. This converts nbd-server-add to
> accept a node-name.
> 
> Note that there is a semantic difference between using a BlockBackend
> name and the node name of its root: In the former case, the NBD server
> is closed on eject; in the latter case, the NBD server doesn't drop its
> reference and keeps the image file open this way.
> 
> Signed-off-by: Kevin Wolf <kw...@redhat.com>
> ---
>  blockdev-nbd.c  | 21 +++++++++------------
>  qapi/block.json |  4 ++--
>  2 files changed, 11 insertions(+), 14 deletions(-)
> 
> diff --git a/blockdev-nbd.c b/blockdev-nbd.c
> index c437d32..ca41cc6 100644
> --- a/blockdev-nbd.c
> +++ b/blockdev-nbd.c
> @@ -145,7 +145,8 @@ void qmp_nbd_server_start(SocketAddress *addr,
>  void qmp_nbd_server_add(const char *device, bool has_writable, bool writable,
>                          Error **errp)
>  {
> -    BlockBackend *blk;
> +    BlockDriverState *bs = NULL;
> +    BlockBackend *on_eject_blk;
>      NBDExport *exp;
>  
>      if (!nbd_server) {
> @@ -158,26 +159,22 @@ void qmp_nbd_server_add(const char *device, bool 
> has_writable, bool writable,
>          return;

Do we want to do any sanity checking that writing should only be
permitted on a root, and that when using a node name that is not a root
that writable must be false so as not to negatively change the BDS out
of under the feet of the other root?  Do op-blockers already cover that?


-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to