[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 30/41] savevm: make qemu_fflush() return an error co
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PATCH 30/41] savevm: make qemu_fflush() return an error code |
Date: |
Tue, 2 Oct 2012 13:33:25 +0200 |
Adjust all the callers. We moved the set of last_error from inside
qemu_fflush() to all the callers.
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
---
savevm.c | 39 +++++++++++++++++++++++----------------
1 file changed, 23 insertions(+), 16 deletions(-)
diff --git a/savevm.c b/savevm.c
index 6865862..0953695 100644
--- a/savevm.c
+++ b/savevm.c
@@ -459,23 +459,22 @@ static void qemu_file_set_if_error(QEMUFile *f, int ret)
/** Flushes QEMUFile buffer
*
- * In case of error, last_error is set.
*/
-static void qemu_fflush(QEMUFile *f)
+static int qemu_fflush(QEMUFile *f)
{
+ int ret = 0;
+
if (!f->put_buffer)
- return;
+ return 0;
if (f->is_write && f->buf_index > 0) {
- int len;
-
- len = f->put_buffer(f->opaque, f->buf, f->buf_offset, f->buf_index);
- if (len > 0)
+ ret = f->put_buffer(f->opaque, f->buf, f->buf_offset, f->buf_index);
+ if (ret >= 0) {
f->buf_offset += f->buf_index;
- else
- qemu_file_set_error(f, -EINVAL);
+ }
f->buf_index = 0;
}
+ return ret;
}
static void qemu_fill_buffer(QEMUFile *f)
@@ -533,9 +532,13 @@ static int qemu_fclose_internal(QEMUFile *f)
*/
int qemu_fclose(QEMUFile *f)
{
- int ret;
- qemu_fflush(f);
- ret = qemu_fclose_internal(f);
+ int ret, ret2;
+ ret = qemu_fflush(f);
+ ret2 = qemu_fclose_internal(f);
+
+ if (ret >= 0) {
+ ret = ret2;
+ }
/* If any error was spotted before closing, we should report it
* instead of the close() return value.
*/
@@ -570,8 +573,10 @@ void qemu_put_buffer(QEMUFile *f, const uint8_t *buf, int
size)
f->buf_index += l;
buf += l;
size -= l;
- if (f->buf_index >= IO_BUF_SIZE)
- qemu_fflush(f);
+ if (f->buf_index >= IO_BUF_SIZE) {
+ int ret = qemu_fflush(f);
+ qemu_file_set_if_error(f, ret);
+ }
}
}
@@ -585,8 +590,10 @@ void qemu_put_byte(QEMUFile *f, int v)
f->buf[f->buf_index++] = v;
f->is_write = 1;
- if (f->buf_index >= IO_BUF_SIZE)
- qemu_fflush(f);
+ if (f->buf_index >= IO_BUF_SIZE) {
+ int ret = qemu_fflush(f);
+ qemu_file_set_if_error(f, ret);
+ }
}
static void qemu_file_skip(QEMUFile *f, int size)
--
1.7.11.4
- [Qemu-devel] [PATCH 13/41] ram: create trace event for migration sync bitmap, (continued)
- [Qemu-devel] [PATCH 13/41] ram: create trace event for migration sync bitmap, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 15/41] migration: Add dirty_pages_rate to query migrate output, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 20/41] buffered_file: unfold migrate_fd_put_ready, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 18/41] buffered_file: opaque is MigrationState, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 16/41] BufferedFile: append, then flush, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 19/41] buffered_file: unfold migrate_fd_put_buffer, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 21/41] buffered_file: unfold migrate_fd_wait_for_unfreeze, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 26/41] migration: make migrate_fd_wait_for_unfreeze() return errors, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 22/41] buffered_file: unfold migrate_fd_close, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 30/41] savevm: make qemu_fflush() return an error code,
Juan Quintela <=
- [Qemu-devel] [PATCH 29/41] savevm: Remove qemu_fseek(), Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 28/41] virtio-net: use qemu_get_buffer() in a temp buffer, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 33/41] savevm: make qemu_fill_buffer() be consistent, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 36/41] block-migration: make flush_blks() return errors, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 37/41] block-migration: Switch meaning of return value, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 38/41] block-migration: handle errors with the return codes correctly, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 40/41] savevm: make qemu_file_put_notify() return errors, Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 39/41] savevm: un-export qemu_file_set_error(), Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 31/41] savevm: unfold qemu_fclose_internal(), Juan Quintela, 2012/10/02
- [Qemu-devel] [PATCH 24/41] buffered_file: callers of buffered_flush() already check for errors, Juan Quintela, 2012/10/02