Patchwork qemu-nbd: Initialise main loop earlier

login
register
mail settings
Submitter Kevin Wolf
Date Nov. 12, 2012, 12:23 p.m.
Message ID <1352723015-13007-1-git-send-email-kwolf@redhat.com>
Download mbox | patch
Permalink /patch/198385/
State New
Headers show

Comments

Kevin Wolf - Nov. 12, 2012, 12:23 p.m.
Since the latest AIO changes qemu-nbd would segfault because
bdrv_init() requires qemu_aio_context to be initialised.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 qemu-nbd.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Paolo Bonzini - Nov. 12, 2012, 12:29 p.m.
Il 12/11/2012 13:23, Kevin Wolf ha scritto:
> Since the latest AIO changes qemu-nbd would segfault because
> bdrv_init() requires qemu_aio_context to be initialised.

Thanks... I had this in my NBD queue, going to send it out later.

Paolo

> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  qemu-nbd.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/qemu-nbd.c b/qemu-nbd.c
> index 15bcd08..80f08d8 100644
> --- a/qemu-nbd.c
> +++ b/qemu-nbd.c
> @@ -539,6 +539,7 @@ int main(int argc, char **argv)
>          snprintf(sockpath, 128, SOCKET_PATH, basename(device));
>      }
>  
> +    qemu_init_main_loop();
>      bdrv_init();
>      atexit(bdrv_close_all);
>  
> @@ -584,7 +585,6 @@ int main(int argc, char **argv)
>          memset(&client_thread, 0, sizeof(client_thread));
>      }
>  
> -    qemu_init_main_loop();
>      qemu_set_fd_handler2(fd, nbd_can_accept, nbd_accept, NULL,
>                           (void *)(uintptr_t)fd);
>  
>

Patch

diff --git a/qemu-nbd.c b/qemu-nbd.c
index 15bcd08..80f08d8 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -539,6 +539,7 @@  int main(int argc, char **argv)
         snprintf(sockpath, 128, SOCKET_PATH, basename(device));
     }
 
+    qemu_init_main_loop();
     bdrv_init();
     atexit(bdrv_close_all);
 
@@ -584,7 +585,6 @@  int main(int argc, char **argv)
         memset(&client_thread, 0, sizeof(client_thread));
     }
 
-    qemu_init_main_loop();
     qemu_set_fd_handler2(fd, nbd_can_accept, nbd_accept, NULL,
                          (void *)(uintptr_t)fd);