From: Orit Wasserman <owasserm@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org, quintela@redhat.com
Subject: Re: [Qemu-devel] [PATCH 08/12] migration: xxx_close will only be called once
Date: Sun, 28 Oct 2012 11:53:30 +0200 [thread overview]
Message-ID: <508D009A.2040703@redhat.com> (raw)
In-Reply-To: <1350555758-29988-9-git-send-email-pbonzini@redhat.com>
On 10/18/2012 12:22 PM, Paolo Bonzini wrote:
> No need to test s->fd again, it is tested in the caller.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> migration-exec.c | 14 ++++++--------
> migration-fd.c | 33 +++++++++++++++------------------
> migration-tcp.c | 7 ++-----
> migration-unix.c | 7 ++-----
> 4 file modificati, 25 inserzioni(+), 36 rimozioni(-)
>
> diff --git a/migration-exec.c b/migration-exec.c
> index 0964dbb..1c562ab 100644
> --- a/migration-exec.c
> +++ b/migration-exec.c
> @@ -48,14 +48,12 @@ static int exec_close(MigrationState *s)
> {
> int ret = 0;
> DPRINTF("exec_close\n");
> - if (s->opaque) {
> - ret = qemu_fclose(s->opaque);
> - s->opaque = NULL;
> - s->fd = -1;
> - if (ret >= 0 && !(WIFEXITED(ret) && WEXITSTATUS(ret) == 0)) {
> - /* close succeeded, but non-zero exit code: */
> - ret = -EIO; /* fake errno value */
> - }
> + ret = qemu_fclose(s->opaque);
> + s->opaque = NULL;
> + s->fd = -1;
> + if (ret >= 0 && !(WIFEXITED(ret) && WEXITSTATUS(ret) == 0)) {
> + /* close succeeded, but non-zero exit code: */
> + ret = -EIO; /* fake errno value */
> }
> return ret;
> }
> diff --git a/migration-fd.c b/migration-fd.c
> index bb91e0a..67ee3d1 100644
> --- a/migration-fd.c
> +++ b/migration-fd.c
> @@ -48,29 +48,26 @@ static int fd_close(MigrationState *s)
> int ret;
>
> DPRINTF("fd_close\n");
> - if (s->fd != -1) {
> - ret = fstat(s->fd, &st);
> - if (ret == 0 && S_ISREG(st.st_mode)) {
> - /*
> - * If the file handle is a regular file make sure the
> - * data is flushed to disk before signaling success.
> - */
> - ret = fsync(s->fd);
> - if (ret != 0) {
> - ret = -errno;
> - perror("migration-fd: fsync");
> - return ret;
> - }
> - }
> - ret = close(s->fd);
> - s->fd = -1;
> + ret = fstat(s->fd, &st);
> + if (ret == 0 && S_ISREG(st.st_mode)) {
> + /*
> + * If the file handle is a regular file make sure the
> + * data is flushed to disk before signaling success.
> + */
> + ret = fsync(s->fd);
> if (ret != 0) {
> ret = -errno;
> - perror("migration-fd: close");
> + perror("migration-fd: fsync");
> return ret;
> }
> }
> - return 0;
> + ret = close(s->fd);
> + s->fd = -1;
> + if (ret != 0) {
> + ret = -errno;
> + perror("migration-fd: close");
> + }
> + return ret;
> }
>
> int fd_start_outgoing_migration(MigrationState *s, const char *fdname)
> diff --git a/migration-tcp.c b/migration-tcp.c
> index e797d23..07715de 100644
> --- a/migration-tcp.c
> +++ b/migration-tcp.c
> @@ -44,11 +44,8 @@ static int tcp_close(MigrationState *s)
> {
> int r = 0;
> DPRINTF("tcp_close\n");
> - if (s->fd != -1) {
> - if (closesocket(s->fd) < 0) {
> - r = -errno;
> - }
> - s->fd = -1;
> + if (closesocket(s->fd) < 0) {
> + r = -socket_error();
> }
> return r;
> }
> diff --git a/migration-unix.c b/migration-unix.c
> index a407af2..def1969 100644
> --- a/migration-unix.c
> +++ b/migration-unix.c
> @@ -44,11 +44,8 @@ static int unix_close(MigrationState *s)
> {
> int r = 0;
> DPRINTF("unix_close\n");
> - if (s->fd != -1) {
> - if (close(s->fd) < 0) {
> - r = -errno;
> - }
> - s->fd = -1;
> + if (close(s->fd) < 0) {
> + r = -errno;
> }
> return r;
> }
>
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
next prev parent reply other threads:[~2012-10-28 9:53 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-18 10:22 [Qemu-devel] [PATCH 0/9] Incoming migration coroutine Paolo Bonzini
2012-10-18 10:22 ` [Qemu-devel] [PATCH 01/12] migration: unify stdio-based QEMUFile operations Paolo Bonzini
2012-10-28 11:20 ` Orit Wasserman
2012-10-30 12:19 ` Juan Quintela
2012-10-18 10:22 ` [Qemu-devel] [PATCH 02/12] migration: consolidate QEMUFile methods in a single QEMUFileOps struct Paolo Bonzini
2012-10-28 11:24 ` Orit Wasserman
2012-10-30 12:26 ` Juan Quintela
2012-10-18 10:22 ` [Qemu-devel] [PATCH 03/12] migration: add qemu_get_fd Paolo Bonzini
2012-10-28 11:27 ` Orit Wasserman
2012-10-30 12:27 ` Juan Quintela
2012-10-18 10:22 ` [Qemu-devel] [PATCH 04/12] migration: replace qemu_stdio_fd with qemu_get_fd Paolo Bonzini
2012-10-28 9:29 ` Orit Wasserman
2012-10-30 12:28 ` Juan Quintela
2012-10-18 10:22 ` [Qemu-devel] [PATCH 05/12] migration: clean up server sockets and handlers before invoking process_incoming_migration Paolo Bonzini
2012-10-28 9:35 ` Orit Wasserman
2012-10-30 12:29 ` Juan Quintela
2012-10-18 10:22 ` [Qemu-devel] [PATCH 06/12] migration: use migrate_fd_close in migrate_fd_cleanup Paolo Bonzini
2012-10-28 9:47 ` Orit Wasserman
2012-10-28 15:05 ` Paolo Bonzini
2012-10-18 10:22 ` [Qemu-devel] [PATCH 07/12] migration: use closesocket, not close Paolo Bonzini
2012-10-28 9:49 ` Orit Wasserman
2012-10-30 12:32 ` Juan Quintela
2012-10-18 10:22 ` [Qemu-devel] [PATCH 08/12] migration: xxx_close will only be called once Paolo Bonzini
2012-10-28 9:53 ` Orit Wasserman [this message]
2012-10-30 12:35 ` Juan Quintela
2012-10-18 10:22 ` [Qemu-devel] [PATCH 09/12] migration: close socket QEMUFile from socket_close Paolo Bonzini
2012-10-28 9:55 ` Orit Wasserman
2012-10-30 12:40 ` Juan Quintela
2012-10-18 10:22 ` [Qemu-devel] [PATCH 10/12] migration: move qemu_fclose to process_incoming_migration Paolo Bonzini
2012-10-28 9:56 ` Orit Wasserman
2012-10-18 10:22 ` [Qemu-devel] [PATCH 11/12] migration: handle EAGAIN while reading QEMUFile Paolo Bonzini
2012-10-28 10:01 ` Orit Wasserman
2012-10-18 10:22 ` [Qemu-devel] [PATCH 12/12] migration: move process_incoming_migration to a coroutine Paolo Bonzini
2012-10-28 10:07 ` Orit Wasserman
-- strict thread matches above, loose matches on Subject: below --
2012-11-02 17:50 [Qemu-devel] [PULL 00/12] Incoming migration coroutine Paolo Bonzini
2012-11-02 17:51 ` [Qemu-devel] [PATCH 08/12] migration: xxx_close will only be called once Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=508D009A.2040703@redhat.com \
--to=owasserm@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.