Am 25.01.2018 um 15:45 hat Eric Blake geschrieben: > Since everything else about the nbd-server-* QMP commands is > accessible from HMP, we might as well make removing an export > available as well. For now, I went with a bool flag rather > than a mode string for choosing between safe (default) and > hard modes. > > Signed-off-by: Eric Blake <ebl...@redhat.com> > --- > > Based-on: <20180119135719.24745-1-vsement...@virtuozzo.com> > ([PATCH v3 0/5] nbd export qmp interface) > > hmp.h | 1 + > hmp.c | 14 +++++++++++--- > hmp-commands.hx | 17 +++++++++++++++++ > 3 files changed, 29 insertions(+), 3 deletions(-) > > diff --git a/hmp.h b/hmp.h > index a6f56b1f29e..536cb91caa4 100644 > --- a/hmp.h > +++ b/hmp.h > @@ -101,6 +101,7 @@ void hmp_sendkey(Monitor *mon, const QDict *qdict); > void hmp_screendump(Monitor *mon, const QDict *qdict); > void hmp_nbd_server_start(Monitor *mon, const QDict *qdict); > void hmp_nbd_server_add(Monitor *mon, const QDict *qdict); > +void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict); > void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict); > void hmp_chardev_add(Monitor *mon, const QDict *qdict); > void hmp_chardev_change(Monitor *mon, const QDict *qdict); > diff --git a/hmp.c b/hmp.c > index 7a64dd59c5c..b3de32d219b 100644 > --- a/hmp.c > +++ b/hmp.c > @@ -2226,10 +2226,18 @@ void hmp_nbd_server_add(Monitor *mon, const QDict > *qdict) > Error *local_err = NULL; > > qmp_nbd_server_add(device, !!name, name, true, writable, &local_err); > + hmp_handle_error(mon, &local_err); > +} > > - if (local_err != NULL) { > - hmp_handle_error(mon, &local_err); > - } > +void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict) > +{ > + const char *name = qdict_get_str(qdict, "name"); > + bool force = qdict_get_try_bool(qdict, "force", false); > + Error *err = NULL; > + > + /* Rely on NBD_SERVER_REMOVE_MODE_SAFE being the default */ > + qmp_nbd_server_remove(name, force, NBD_SERVER_REMOVE_MODE_HARD, &err);
Usually we pass has_* = true and don't rely on defaults which may change in the long run. Might also make the code a bit easier to understand, as the existence of your comment shows. > + hmp_handle_error(mon, &err); > } Either way: Reviewed-by: Kevin Wolf <kw...@redhat.com>