Am 09.11.2015 um 23:39 hat Max Reitz geschrieben: > The NBD code uses the BDS close notifier to determine when a medium is > ejected. However, now it should use the BB's BDS removal notifier for > that instead of the BDS's close notifier. > > Signed-off-by: Max Reitz <mre...@redhat.com> > --- > blockdev-nbd.c | 37 +------------------------------------ > nbd.c | 13 +++++++++++++ > 2 files changed, 14 insertions(+), 36 deletions(-) > > diff --git a/blockdev-nbd.c b/blockdev-nbd.c > index bcdd18b..b28a55b 100644 > --- a/blockdev-nbd.c > +++ b/blockdev-nbd.c > @@ -46,37 +46,11 @@ void qmp_nbd_server_start(SocketAddress *addr, Error > **errp) > } > } > > -/* > - * Hook into the BlockBackend notifiers to close the export when the > - * backend is closed. > - */ > -typedef struct NBDCloseNotifier { > - Notifier n; > - NBDExport *exp; > - QTAILQ_ENTRY(NBDCloseNotifier) next; > -} NBDCloseNotifier; > - > -static QTAILQ_HEAD(, NBDCloseNotifier) close_notifiers = > - QTAILQ_HEAD_INITIALIZER(close_notifiers); > - > -static void nbd_close_notifier(Notifier *n, void *data) > -{ > - NBDCloseNotifier *cn = DO_UPCAST(NBDCloseNotifier, n, n); > - > - notifier_remove(&cn->n); > - QTAILQ_REMOVE(&close_notifiers, cn, next); > - > - nbd_export_close(cn->exp); > - nbd_export_put(cn->exp);
Here you remove a close/put pair, but in the new code you only add the close call. Why is this correct? Kevin