summaryrefslogtreecommitdiff
path: root/buffered_file.c
diff options
context:
space:
mode:
authorJuan Quintela <quintela@redhat.com>2011-10-05 01:14:46 +0200
committerJuan Quintela <quintela@redhat.com>2011-10-20 13:23:52 +0200
commit42802d47dd09c6e70763676bb2ba59136427ec6a (patch)
tree93f90e6d8f51d9e586a0914fe34e3a1a14f7cd52 /buffered_file.c
parent3961b4dd0e72ae70e612be1097176d8910fc3f5e (diff)
migration: use qemu_file_get_error() return value when possible
Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'buffered_file.c')
-rw-r--r--buffered_file.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/buffered_file.c b/buffered_file.c
index 41c659cbd8..fed9a227bb 100644
--- a/buffered_file.c
+++ b/buffered_file.c
@@ -71,9 +71,11 @@ static void buffered_append(QEMUFileBuffered *s,
static void buffered_flush(QEMUFileBuffered *s)
{
size_t offset = 0;
+ int error;
- if (qemu_file_get_error(s->file)) {
- DPRINTF("flush when error, bailing\n");
+ error = qemu_file_get_error(s->file);
+ if (error != 0) {
+ DPRINTF("flush when error, bailing: %s\n", strerror(-error));
return;
}
@@ -108,14 +110,15 @@ static void buffered_flush(QEMUFileBuffered *s)
static int buffered_put_buffer(void *opaque, const uint8_t *buf, int64_t pos, int size)
{
QEMUFileBuffered *s = opaque;
- int offset = 0;
+ int offset = 0, error;
ssize_t ret;
DPRINTF("putting %d bytes at %" PRId64 "\n", size, pos);
- if (qemu_file_get_error(s->file)) {
- DPRINTF("flush when error, bailing\n");
- return -EINVAL;
+ error = qemu_file_get_error(s->file);
+ if (error) {
+ DPRINTF("flush when error, bailing: %s\n", strerror(-error));
+ return error;
}
DPRINTF("unfreezing output\n");
@@ -192,14 +195,16 @@ static int buffered_close(void *opaque)
* The meaning of the return values is:
* 0: We can continue sending
* 1: Time to stop
- * -1: There has been an error
+ * negative: There has been an error
*/
static int buffered_rate_limit(void *opaque)
{
QEMUFileBuffered *s = opaque;
+ int ret;
- if (qemu_file_get_error(s->file)) {
- return -1;
+ ret = qemu_file_get_error(s->file);
+ if (ret) {
+ return ret;
}
if (s->freeze_output)
return 1;