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 <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Luiz Capitulino 2009-07-31 15:15:41 -03:00 committed by Anthony Liguori
parent b8630e45f0
commit 866c72bbb8

View File

@ -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);
}
}