]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
exec: make -mem-path filenames deterministic
authorPeter Feiner <peter@gridcentric.ca>
Mon, 4 Mar 2013 18:54:25 +0000 (13:54 -0500)
committerAnthony Liguori <aliguori@us.ibm.com>
Tue, 12 Mar 2013 18:42:52 +0000 (13:42 -0500)
Adds ramblocks' names to their backing files when using -mem-path.  Eases
introspection and debugging.

Signed-off-by: Peter Feiner <peter@gridcentric.ca>
Message-id: 1362423265-15855-1-git-send-email-peter@gridcentric.ca
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
exec.c

diff --git a/exec.c b/exec.c
index 46a283071a2e908bd9f3aa77af7d2c2694909246..f84e0955dc024e6d8797264b5ad7bdfba6b60660 100644 (file)
--- a/exec.c
+++ b/exec.c
@@ -844,6 +844,8 @@ static void *file_ram_alloc(RAMBlock *block,
                             const char *path)
 {
     char *filename;
+    char *sanitized_name;
+    char *c;
     void *area;
     int fd;
 #ifdef MAP_POPULATE
@@ -865,7 +867,16 @@ static void *file_ram_alloc(RAMBlock *block,
         return NULL;
     }
 
-    filename = g_strdup_printf("%s/qemu_back_mem.XXXXXX", path);
+    /* Make name safe to use with mkstemp by replacing '/' with '_'. */
+    sanitized_name = g_strdup(block->mr->name);
+    for (c = sanitized_name; *c != '\0'; c++) {
+        if (*c == '/')
+            *c = '_';
+    }
+
+    filename = g_strdup_printf("%s/qemu_back_mem.%s.XXXXXX", path,
+                               sanitized_name);
+    g_free(sanitized_name);
 
     fd = mkstemp(filename);
     if (fd < 0) {