diff options
author | Peter Maydell | 2021-01-01 15:33:03 +0100 |
---|---|---|
committer | Peter Maydell | 2021-01-01 15:33:03 +0100 |
commit | 1f7c02797fa189ce4b34382020bbce63262a5758 (patch) | |
tree | 467ab5404de2084c44df0f9d97b8524fa210c789 /qga/commands-posix.c | |
parent | Merge remote-tracking branch 'remotes/marcel/tags/rdma-pull-request' into sta... (diff) | |
parent | qobject: Make QString immutable (diff) | |
download | qemu-1f7c02797fa189ce4b34382020bbce63262a5758.tar.gz qemu-1f7c02797fa189ce4b34382020bbce63262a5758.tar.xz qemu-1f7c02797fa189ce4b34382020bbce63262a5758.zip |
Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2020-12-19' into staging
QAPI patches patches for 2020-12-19
# gpg: Signature made Sat 19 Dec 2020 09:40:05 GMT
# gpg: using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653
# gpg: issuer "armbru@redhat.com"
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full]
# gpg: aka "Markus Armbruster <armbru@pond.sub.org>" [full]
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653
* remotes/armbru/tags/pull-qapi-2020-12-19: (33 commits)
qobject: Make QString immutable
block: Use GString instead of QString to build filenames
keyval: Use GString to accumulate value strings
json: Use GString instead of QString to accumulate strings
migration: Replace migration's JSON writer by the general one
qobject: Factor JSON writer out of qobject_to_json()
qobject: Factor quoted_str() out of to_json()
qobject: Drop qstring_get_try_str()
qobject: Drop qobject_get_try_str()
Revert "qobject: let object_property_get_str() use new API"
block: Avoid qobject_get_try_str()
qmp: Fix tracing of non-string command IDs
qobject: Move internals to qobject-internal.h
hw/rdma: Replace QList by GQueue
Revert "qstring: add qstring_free()"
qobject: Change qobject_to_json()'s value to GString
qobject: Use GString instead of QString to accumulate JSON
qobject: Make qobject_to_json_pretty() take a pretty argument
monitor: Use GString instead of QString for output buffer
hmp: Simplify how qmp_human_monitor_command() gets output
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'qga/commands-posix.c')
-rw-r--r-- | qga/commands-posix.c | 47 |
1 files changed, 11 insertions, 36 deletions
diff --git a/qga/commands-posix.c b/qga/commands-posix.c index c089e38120..849923b260 100644 --- a/qga/commands-posix.c +++ b/qga/commands-posix.c @@ -1036,7 +1036,6 @@ static void build_guest_fsinfo_for_real_device(char const *syspath, { GuestDiskAddress *disk; GuestPCIAddress *pciaddr; - GuestDiskAddressList *list = NULL; bool has_hwinf; #ifdef CONFIG_LIBUDEV struct udev *udev = NULL; @@ -1053,9 +1052,6 @@ static void build_guest_fsinfo_for_real_device(char const *syspath, disk->pci_controller = pciaddr; disk->bus_type = GUEST_DISK_BUS_TYPE_UNKNOWN; - list = g_new0(GuestDiskAddressList, 1); - list->value = disk; - #ifdef CONFIG_LIBUDEV udev = udev_new(); udevice = udev_device_new_from_syspath(udev, syspath); @@ -1089,10 +1085,9 @@ static void build_guest_fsinfo_for_real_device(char const *syspath, } if (has_hwinf || disk->has_dev || disk->has_serial) { - list->next = fs->disk; - fs->disk = list; + QAPI_LIST_PREPEND(fs->disk, disk); } else { - qapi_free_GuestDiskAddressList(list); + qapi_free_GuestDiskAddress(disk); } } @@ -1288,7 +1283,6 @@ static void get_disk_deps(const char *disk_dir, GuestDiskInfo *disk) disk->has_dependencies = true; while ((dep = g_dir_read_name(dp_deps)) != NULL) { g_autofree char *dep_dir = NULL; - strList *dep_item = NULL; char *dev_name; /* Add dependent disks */ @@ -1296,10 +1290,7 @@ static void get_disk_deps(const char *disk_dir, GuestDiskInfo *disk) dev_name = get_device_for_syspath(dep_dir); if (dev_name != NULL) { g_debug(" adding dependent device: %s", dev_name); - dep_item = g_new0(strList, 1); - dep_item->value = dev_name; - dep_item->next = disk->dependencies; - disk->dependencies = dep_item; + QAPI_LIST_PREPEND(disk->dependencies, dev_name); } } g_dir_close(dp_deps); @@ -1318,7 +1309,7 @@ static GuestDiskInfoList *get_disk_partitions( const char *disk_name, const char *disk_dir, const char *disk_dev) { - GuestDiskInfoList *item, *ret = list; + GuestDiskInfoList *ret = list; struct dirent *de_disk; DIR *dp_disk = NULL; size_t len = strlen(disk_name); @@ -1352,15 +1343,9 @@ static GuestDiskInfoList *get_disk_partitions( partition->name = dev_name; partition->partition = true; /* Add parent disk as dependent for easier tracking of hierarchy */ - partition->dependencies = g_new0(strList, 1); - partition->dependencies->value = g_strdup(disk_dev); - partition->has_dependencies = true; - - item = g_new0(GuestDiskInfoList, 1); - item->value = partition; - item->next = ret; - ret = item; + QAPI_LIST_PREPEND(partition->dependencies, g_strdup(disk_dev)); + QAPI_LIST_PREPEND(ret, partition); } closedir(dp_disk); @@ -1369,7 +1354,7 @@ static GuestDiskInfoList *get_disk_partitions( GuestDiskInfoList *qmp_guest_get_disks(Error **errp) { - GuestDiskInfoList *item, *ret = NULL; + GuestDiskInfoList *ret = NULL; GuestDiskInfo *disk; DIR *dp = NULL; struct dirent *de = NULL; @@ -1415,10 +1400,7 @@ GuestDiskInfoList *qmp_guest_get_disks(Error **errp) disk->partition = false; disk->alias = get_alias_for_syspath(disk_dir); disk->has_alias = (disk->alias != NULL); - item = g_new0(GuestDiskInfoList, 1); - item->value = disk; - item->next = ret; - ret = item; + QAPI_LIST_PREPEND(ret, disk); /* Get address for non-virtual devices */ bool is_virtual = is_disk_virtual(disk_dir, &local_err); @@ -1495,7 +1477,7 @@ GuestFilesystemInfoList *qmp_guest_get_fsinfo(Error **errp) { FsMountList mounts; struct FsMount *mount; - GuestFilesystemInfoList *new, *ret = NULL; + GuestFilesystemInfoList *ret = NULL; Error *local_err = NULL; QTAILQ_INIT(&mounts); @@ -1508,10 +1490,7 @@ GuestFilesystemInfoList *qmp_guest_get_fsinfo(Error **errp) QTAILQ_FOREACH(mount, &mounts, next) { g_debug("Building guest fsinfo for '%s'", mount->dirname); - new = g_malloc0(sizeof(*ret)); - new->value = build_guest_fsinfo(mount, &local_err); - new->next = ret; - ret = new; + QAPI_LIST_PREPEND(ret, build_guest_fsinfo(mount, &local_err)); if (local_err) { error_propagate(errp, local_err); qapi_free_GuestFilesystemInfoList(ret); @@ -1777,7 +1756,6 @@ GuestFilesystemTrimResponse * qmp_guest_fstrim(bool has_minimum, int64_t minimum, Error **errp) { GuestFilesystemTrimResponse *response; - GuestFilesystemTrimResultList *list; GuestFilesystemTrimResult *result; int ret = 0; FsMountList mounts; @@ -1801,10 +1779,7 @@ qmp_guest_fstrim(bool has_minimum, int64_t minimum, Error **errp) result = g_malloc0(sizeof(*result)); result->path = g_strdup(mount->dirname); - list = g_malloc0(sizeof(*list)); - list->value = result; - list->next = response->paths; - response->paths = list; + QAPI_LIST_PREPEND(response->paths, result); fd = qemu_open_old(mount->dirname, O_RDONLY); if (fd == -1) { |