qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH v7 13/35] hostmem-file: use whole file size if possi


From: Xiao Guangrong
Subject: [Qemu-devel] [PATCH v7 13/35] hostmem-file: use whole file size if possible
Date: Mon, 2 Nov 2015 17:13:15 +0800

Use the whole file size if @size is not specified which is useful
if we want to directly pass a file to guest

Signed-off-by: Xiao Guangrong <address@hidden>
---
 backends/hostmem-file.c | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c
index 9097a57..ea355c1 100644
--- a/backends/hostmem-file.c
+++ b/backends/hostmem-file.c
@@ -38,15 +38,29 @@ file_backend_memory_alloc(HostMemoryBackend *backend, Error 
**errp)
 {
     HostMemoryBackendFile *fb = MEMORY_BACKEND_FILE(backend);
 
-    if (!backend->size) {
-        error_setg(errp, "can't create backend with size 0");
-        return;
-    }
     if (!fb->mem_path) {
         error_setg(errp, "mem-path property not set");
         return;
     }
 
+    if (!backend->size) {
+        Error *local_err = NULL;
+
+        /*
+         * use the whole file size if @size is not specified.
+         */
+        backend->size = qemu_file_getlength(fb->mem_path, &local_err);
+        if (local_err) {
+            error_propagate(errp, local_err);
+            return;
+        }
+    }
+
+    if (!backend->size) {
+        error_setg(errp, "can't create backend on the file whose size is 0");
+        return;
+    }
+
     backend->force_prealloc = mem_prealloc;
     memory_region_init_ram_from_file(&backend->mr, OBJECT(backend),
                                  object_get_canonical_path(OBJECT(backend)),
-- 
1.8.3.1




reply via email to

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