From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:59833) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFngj-00029c-0A for qemu-devel@nongnu.org; Mon, 17 Oct 2011 09:57:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RFnge-0001UI-RN for qemu-devel@nongnu.org; Mon, 17 Oct 2011 09:57:08 -0400 Received: from mail-gx0-f173.google.com ([209.85.161.173]:57390) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFnge-0001Pr-Ow for qemu-devel@nongnu.org; Mon, 17 Oct 2011 09:57:04 -0400 Received: by mail-gx0-f173.google.com with SMTP id r5so3748914ggn.4 for ; Mon, 17 Oct 2011 06:57:04 -0700 (PDT) Message-ID: <4E9C342E.8010100@codemonkey.ws> Date: Mon, 17 Oct 2011 08:57:02 -0500 From: Anthony Liguori MIME-Version: 1.0 References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 08/36] buffered_file: reuse QEMUFile has_error field List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Juan Quintela Cc: qemu-devel@nongnu.org On 10/11/2011 05:00 AM, Juan Quintela wrote: > Instead of having two has_error fields in QEMUFile& QEMUBufferedFile, > reuse the 1st one. Notice that the one in buffered_file is only set > after a file operation. > > Signed-off-by: Juan Quintela Reviewed-by: Anthony Liguori Regards, Anthony Liguori > --- > buffered_file.c | 17 ++++++++--------- > 1 files changed, 8 insertions(+), 9 deletions(-) > > diff --git a/buffered_file.c b/buffered_file.c > index 701b440..3dadec0 100644 > --- a/buffered_file.c > +++ b/buffered_file.c > @@ -27,7 +27,6 @@ typedef struct QEMUFileBuffered > BufferedCloseFunc *close; > void *opaque; > QEMUFile *file; > - int has_error; > int freeze_output; > size_t bytes_xfer; > size_t xfer_limit; > @@ -73,7 +72,7 @@ static void buffered_flush(QEMUFileBuffered *s) > { > size_t offset = 0; > > - if (s->has_error) { > + if (qemu_file_has_error(s->file)) { > DPRINTF("flush when error, bailing\n"); > return; > } > @@ -93,7 +92,7 @@ static void buffered_flush(QEMUFileBuffered *s) > > if (ret<= 0) { > DPRINTF("error flushing data, %zd\n", ret); > - s->has_error = 1; > + qemu_file_set_error(s->file); > break; > } else { > DPRINTF("flushed %zd byte(s)\n", ret); > @@ -114,7 +113,7 @@ static int buffered_put_buffer(void *opaque, const uint8_t *buf, int64_t pos, in > > DPRINTF("putting %d bytes at %" PRId64 "\n", size, pos); > > - if (s->has_error) { > + if (qemu_file_has_error(s->file)) { > DPRINTF("flush when error, bailing\n"); > return -EINVAL; > } > @@ -139,7 +138,7 @@ static int buffered_put_buffer(void *opaque, const uint8_t *buf, int64_t pos, in > > if (ret<= 0) { > DPRINTF("error putting\n"); > - s->has_error = 1; > + qemu_file_set_error(s->file); > offset = -EINVAL; > break; > } > @@ -173,7 +172,7 @@ static int buffered_close(void *opaque) > > DPRINTF("closing\n"); > > - while (!s->has_error&& s->buffer_size) { > + while (!qemu_file_has_error(s->file)&& s->buffer_size) { > buffered_flush(s); > if (s->freeze_output) > s->wait_for_unfreeze(s->opaque); > @@ -193,7 +192,7 @@ static int buffered_rate_limit(void *opaque) > { > QEMUFileBuffered *s = opaque; > > - if (s->has_error) { > + if (qemu_file_has_error(s->file)) { > return 1; > } > if (s->freeze_output) > @@ -208,7 +207,7 @@ static int buffered_rate_limit(void *opaque) > static int64_t buffered_set_rate_limit(void *opaque, int64_t new_rate) > { > QEMUFileBuffered *s = opaque; > - if (s->has_error) > + if (qemu_file_has_error(s->file)) > goto out; > > if (new_rate> SIZE_MAX) { > @@ -232,7 +231,7 @@ static void buffered_rate_tick(void *opaque) > { > QEMUFileBuffered *s = opaque; > > - if (s->has_error) { > + if (qemu_file_has_error(s->file)) { > buffered_close(s); > return; > }