Patchwork [4/6] migration: remove iohandlers before closing the file

login
register
mail settings
Submitter Paolo Bonzini
Date Aug. 7, 2012, 3:51 p.m.
Message ID <1344354707-27315-5-git-send-email-pbonzini@redhat.com>
Download mbox | patch
Permalink /patch/175675/
State New
Headers show

Comments

Paolo Bonzini - Aug. 7, 2012, 3:51 p.m.
This will be needed as soon as process_incoming_migration will set
handlers on the file.  The patch may be removed if 

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 savevm.c | 3 +++
 1 file modificato, 3 inserzioni(+)
Anthony Liguori - Aug. 7, 2012, 6:46 p.m.
Paolo Bonzini <pbonzini@redhat.com> writes:

> This will be needed as soon as process_incoming_migration will set
> handlers on the file.  The patch may be removed if

...?

Regards,

Anthony Liguori
 
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  savevm.c | 3 +++
>  1 file modificato, 3 inserzioni(+)
>
> diff --git a/savevm.c b/savevm.c
> index 57cae52..8f075e5 100644
> --- a/savevm.c
> +++ b/savevm.c
> @@ -210,6 +210,7 @@ static int socket_get_buffer(void *opaque, uint8_t *buf, int64_t pos, int size)
>  static int socket_close(void *opaque)
>  {
>      QEMUFileSocket *s = opaque;
> +    qemu_set_fd_handler(s->fd, NULL, NULL, NULL);
>      close(s->fd);
>      g_free(s);
>      return 0;
> @@ -238,6 +239,7 @@ static int stdio_pclose(void *opaque)
>  {
>      QEMUFileStdio *s = opaque;
>      int ret;
> +    qemu_set_fd_handler(fileno(s->stdio_file), NULL, NULL, NULL);
>      ret = pclose(s->stdio_file);
>      if (ret == -1) {
>          ret = -errno;
> @@ -250,6 +252,7 @@ static int stdio_fclose(void *opaque)
>  {
>      QEMUFileStdio *s = opaque;
>      int ret = 0;
> +    qemu_set_fd_handler(fileno(s->stdio_file), NULL, NULL, NULL);
>      if (fclose(s->stdio_file) == EOF) {
>          ret = -errno;
>      }
> -- 
> 1.7.11.2
Paolo Bonzini - Aug. 8, 2012, 8 a.m.
Il 07/08/2012 20:46, Anthony Liguori ha scritto:
> 
>> > This will be needed as soon as process_incoming_migration will set
>> > handlers on the file.  The patch may be removed if
> ...?

... we get access to the file descriptor of a QEMUFile in a better way
(i.e. improve patch 6).

Paolo

Patch

diff --git a/savevm.c b/savevm.c
index 57cae52..8f075e5 100644
--- a/savevm.c
+++ b/savevm.c
@@ -210,6 +210,7 @@  static int socket_get_buffer(void *opaque, uint8_t *buf, int64_t pos, int size)
 static int socket_close(void *opaque)
 {
     QEMUFileSocket *s = opaque;
+    qemu_set_fd_handler(s->fd, NULL, NULL, NULL);
     close(s->fd);
     g_free(s);
     return 0;
@@ -238,6 +239,7 @@  static int stdio_pclose(void *opaque)
 {
     QEMUFileStdio *s = opaque;
     int ret;
+    qemu_set_fd_handler(fileno(s->stdio_file), NULL, NULL, NULL);
     ret = pclose(s->stdio_file);
     if (ret == -1) {
         ret = -errno;
@@ -250,6 +252,7 @@  static int stdio_fclose(void *opaque)
 {
     QEMUFileStdio *s = opaque;
     int ret = 0;
+    qemu_set_fd_handler(fileno(s->stdio_file), NULL, NULL, NULL);
     if (fclose(s->stdio_file) == EOF) {
         ret = -errno;
     }