From: Peter Krempa Date: Wed, 13 Nov 2019 11:45:54 +0000 (+0100) Subject: qemu: domain: Use g_file_read_link instead of virFileReadLink X-Git-Tag: v5.10.0-rc1~239 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=794c9ec535fd86dfd87e77c97f7d77389e916173;p=thirdparty%2Flibvirt.git qemu: domain: Use g_file_read_link instead of virFileReadLink In an effort to remove as much gnulib usage as possible let's reimplement virFileReadLink. Since it's used in two places only I opted to open-code it. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 54dde34f15..7123f45cd7 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -13167,12 +13167,13 @@ qemuDomainCreateDeviceRecursive(const char *device, } if (isLink) { + g_autoptr(GError) gerr = NULL; + /* We are dealing with a symlink. Create a dangling symlink and descend * down one level which hopefully creates the symlink's target. */ - if (virFileReadLink(device, &target) < 0) { - virReportSystemError(errno, - _("unable to resolve symlink %s"), - device); + if (!(target = g_file_read_link(device, &gerr))) { + virReportError(VIR_ERR_SYSTEM_ERROR, + _("failed to resolve symlink %s: %s"), device, gerr->message); goto cleanup; } @@ -14161,10 +14162,11 @@ qemuDomainAttachDeviceMknodRecursive(virQEMUDriverPtr driver, data.target = target; } else if (isLink) { - if (virFileReadLink(file, &target) < 0) { - virReportSystemError(errno, - _("unable to resolve symlink %s"), - file); + g_autoptr(GError) gerr = NULL; + + if (!(target = g_file_read_link(file, &gerr))) { + virReportError(VIR_ERR_SYSTEM_ERROR, + _("failed to resolve symlink %s: %s"), file, gerr->message); return ret; }