]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
Fix do_commit() behavior
authorLuiz Capitulino <lcapitulino@redhat.com>
Fri, 31 Jul 2009 18:15:41 +0000 (15:15 -0300)
committerAnthony Liguori <aliguori@us.ibm.com>
Fri, 28 Aug 2009 02:23:38 +0000 (21:23 -0500)
Commit 751c6a17042b5d011013d6963c0505d671cf708e changed the monitor's
'commit' command to this behavior:

1. Any string you type as argument will cause do_commit() to
call bdrv_commit() to all devices

2. If you enter a device name, it will be the only one ignored
by do_commit() :)

The fix is to call bdrv_commit() to the specified device only and
ignore the others (when 'all' is not specified).

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
monitor.c

index 3816d09c18e4d09c0e273b801202cf6023650f47..de687550203b706da5ccb285c4ff2d7e6eb11e4e 100644 (file)
--- a/monitor.c
+++ b/monitor.c
@@ -257,9 +257,10 @@ static void do_commit(Monitor *mon, const char *device)
 
     all_devices = !strcmp(device, "all");
     for (i = 0; i < nb_drives; i++) {
-            if (all_devices ||
-                !strcmp(bdrv_get_device_name(drives_table[i].bdrv), device))
-                bdrv_commit(drives_table[i].bdrv);
+        if (!all_devices)
+            if (strcmp(bdrv_get_device_name(drives_table[i].bdrv), device))
+                continue;
+        bdrv_commit(drives_table[i].bdrv);
     }
 }