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
signature.asc
Description: OpenPGP digital signature