From: Luiz Capitulino Date: Fri, 31 Jul 2009 18:15:41 +0000 (-0300) Subject: Fix do_commit() behavior X-Git-Tag: v0.11.0-rc2~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=866c72bbb886293d26e01ef7ee4277ebd27c9efd;p=thirdparty%2Fqemu.git Fix do_commit() behavior 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 Signed-off-by: Anthony Liguori --- diff --git a/monitor.c b/monitor.c index 3816d09c18e..de687550203 100644 --- 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); } }