mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
nbd: Remove NBDExport.close callback
The export close callback is unused by the built-in NBD server. qemu-nbd uses it only during shutdown to wait for the unrefed export to actually go away. It can just use nbd_export_close_all() instead and do without the callback. This removes the close callback from nbd_export_new() and makes both callers of it more similar. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20200924152717.287415-11-kwolf@redhat.com> Acked-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
fefee85da0
commit
d794f7f372
4 changed files with 7 additions and 21 deletions
14
qemu-nbd.c
14
qemu-nbd.c
|
@ -70,7 +70,7 @@ static int verbose;
|
|||
static char *srcpath;
|
||||
static SocketAddress *saddr;
|
||||
static int persistent = 0;
|
||||
static enum { RUNNING, TERMINATE, TERMINATING, TERMINATED } state;
|
||||
static enum { RUNNING, TERMINATE, TERMINATED } state;
|
||||
static int shared = 1;
|
||||
static int nb_fds;
|
||||
static QIONetListener *server;
|
||||
|
@ -332,12 +332,6 @@ static int nbd_can_accept(void)
|
|||
return state == RUNNING && nb_fds < shared;
|
||||
}
|
||||
|
||||
static void nbd_export_closed(NBDExport *export)
|
||||
{
|
||||
assert(state == TERMINATING);
|
||||
state = TERMINATED;
|
||||
}
|
||||
|
||||
static void nbd_update_server_watch(void);
|
||||
|
||||
static void nbd_client_closed(NBDClient *client, bool negotiated)
|
||||
|
@ -1067,7 +1061,7 @@ int main(int argc, char **argv)
|
|||
|
||||
export = nbd_export_new(bs, export_name,
|
||||
export_description, bitmap, readonly, shared > 1,
|
||||
nbd_export_closed, writethrough, &error_fatal);
|
||||
writethrough, &error_fatal);
|
||||
|
||||
if (device) {
|
||||
#if HAVE_NBD_DEVICE
|
||||
|
@ -1107,10 +1101,10 @@ int main(int argc, char **argv)
|
|||
do {
|
||||
main_loop_wait(false);
|
||||
if (state == TERMINATE) {
|
||||
state = TERMINATING;
|
||||
nbd_export_close(export);
|
||||
nbd_export_put(export);
|
||||
nbd_export_close_all();
|
||||
export = NULL;
|
||||
state = TERMINATED;
|
||||
}
|
||||
} while (state != TERMINATED);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue