qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/4] savevm: teach qemu_fill_buffer to do partia


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH 1/4] savevm: teach qemu_fill_buffer to do partial refills
Date: Wed, 05 Oct 2011 14:41:20 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.21) Gecko/20110831 Lightning/1.0b2 Thunderbird/3.1.13

On 10/04/2011 09:38 AM, Juan Quintela wrote:
We will need on next patch to be able to lookahead on next patch

Signed-off-by: Juan Quintela<address@hidden>

Reviewed-by: Anthony Liguori <address@hidden>

Regards,

Anthony Liguori

---
  savevm.c |   14 +++++++++++---
  1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/savevm.c b/savevm.c
index 46f2447..31131df 100644
--- a/savevm.c
+++ b/savevm.c
@@ -455,6 +455,7 @@ void qemu_fflush(QEMUFile *f)
  static void qemu_fill_buffer(QEMUFile *f)
  {
      int len;
+    int used;

      if (!f->get_buffer)
          return;
@@ -462,10 +463,17 @@ static void qemu_fill_buffer(QEMUFile *f)
      if (f->is_write)
          abort();

-    len = f->get_buffer(f->opaque, f->buf, f->buf_offset, IO_BUF_SIZE);
+    used = f->buf_size - f->buf_index;
+    if (used>  0) {
+        memmove(f->buf, f->buf + f->buf_index, used);
+    }
+    f->buf_index = 0;
+    f->buf_size = used;
+
+    len = f->get_buffer(f->opaque, f->buf + used, f->buf_offset,
+                        IO_BUF_SIZE - used);
      if (len>  0) {
-        f->buf_index = 0;
-        f->buf_size = len;
+        f->buf_size += len;
          f->buf_offset += len;
      } else if (len != -EAGAIN)
          f->has_error = 1;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]