[libvirt] [PATCH] Fix uses of virFileMakePath.
Daniel Veillard
veillard at redhat.com
Wed Jan 20 20:32:56 UTC 2010
On Wed, Jan 20, 2010 at 02:32:36AM -0500, Laine Stump wrote:
> When I modified the use of virFileMakePath in my own code, I noticed
> that it was checking for a return < 0 to indicate error, but I had
> seen in virFileMakePath that it returns 0 for success, or the value of
> errno on failure, and errno is usually (always?) >=0. Seeing incorrect
> usage in one place, I investigated and found several others.
> ---
> src/lxc/lxc_container.c | 10 +++++-----
> src/lxc/lxc_controller.c | 2 +-
> src/lxc/lxc_driver.c | 2 +-
> src/network/bridge_driver.c | 4 ++--
> src/qemu/qemu_driver.c | 8 ++++----
> src/uml/uml_driver.c | 4 ++--
> 6 files changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
> index 023d553..539a1f4 100644
> --- a/src/lxc/lxc_container.c
> +++ b/src/lxc/lxc_container.c
> @@ -317,7 +317,7 @@ static int lxcContainerPivotRoot(virDomainFSDefPtr root)
> goto err;
> }
>
> - if ((rc = virFileMakePath(oldroot)) < 0) {
> + if ((rc = virFileMakePath(oldroot)) != 0) {
> virReportSystemError(NULL, rc,
> _("Failed to create %s"),
> oldroot);
> @@ -339,7 +339,7 @@ static int lxcContainerPivotRoot(virDomainFSDefPtr root)
> goto err;
> }
>
> - if ((rc = virFileMakePath(newroot)) < 0) {
> + if ((rc = virFileMakePath(newroot)) != 0) {
> virReportSystemError(NULL, rc,
> _("Failed to create %s"),
> newroot);
> @@ -407,7 +407,7 @@ static int lxcContainerMountBasicFS(virDomainFSDefPtr root)
> }
>
> for (i = 0 ; i < ARRAY_CARDINALITY(mnts) ; i++) {
> - if (virFileMakePath(mnts[i].dst) < 0) {
> + if (virFileMakePath(mnts[i].dst) != 0) {
> virReportSystemError(NULL, errno,
> _("Failed to mkdir %s"),
> mnts[i].src);
> @@ -421,7 +421,7 @@ static int lxcContainerMountBasicFS(virDomainFSDefPtr root)
> }
> }
>
> - if ((rc = virFileMakePath("/dev/pts") < 0)) {
> + if ((rc = virFileMakePath("/dev/pts") != 0)) {
> virReportSystemError(NULL, rc, "%s",
> _("Cannot create /dev/pts"));
> goto cleanup;
> @@ -510,7 +510,7 @@ static int lxcContainerMountNewFS(virDomainDefPtr vmDef)
> return -1;
> }
>
> - if (virFileMakePath(vmDef->fss[i]->dst) < 0) {
> + if (virFileMakePath(vmDef->fss[i]->dst) != 0) {
> virReportSystemError(NULL, errno,
> _("Failed to create %s"),
> vmDef->fss[i]->dst);
> diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
> index 3cecdce..6304815 100644
> --- a/src/lxc/lxc_controller.c
> +++ b/src/lxc/lxc_controller.c
> @@ -556,7 +556,7 @@ lxcControllerRun(virDomainDefPtr def,
> goto cleanup;
> }
>
> - if (virFileMakePath(devpts) < 0) {
> + if (virFileMakePath(devpts) != 0) {
> virReportSystemError(NULL, errno,
> _("Failed to make path %s"),
> devpts);
> diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
> index ec5ee6b..d78f7f7 100644
> --- a/src/lxc/lxc_driver.c
> +++ b/src/lxc/lxc_driver.c
> @@ -1193,7 +1193,7 @@ static int lxcVmStart(virConnectPtr conn,
> char **veths = NULL;
> lxcDomainObjPrivatePtr priv = vm->privateData;
>
> - if ((r = virFileMakePath(driver->logDir)) < 0) {
> + if ((r = virFileMakePath(driver->logDir)) != 0) {
> virReportSystemError(conn, r,
> _("Cannot create log directory '%s'"),
> driver->logDir);
> diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
> index 4385215..08e5ee6 100644
> --- a/src/network/bridge_driver.c
> +++ b/src/network/bridge_driver.c
> @@ -539,13 +539,13 @@ dhcpStartDhcpDaemon(virConnectPtr conn,
> return -1;
> }
>
> - if ((err = virFileMakePath(NETWORK_PID_DIR)) < 0) {
> + if ((err = virFileMakePath(NETWORK_PID_DIR)) != 0) {
> virReportSystemError(conn, err,
> _("cannot create directory %s"),
> NETWORK_PID_DIR);
> return -1;
> }
> - if ((err = virFileMakePath(NETWORK_STATE_DIR)) < 0) {
> + if ((err = virFileMakePath(NETWORK_STATE_DIR)) != 0) {
> virReportSystemError(conn, err,
> _("cannot create directory %s"),
> NETWORK_STATE_DIR);
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 951e033..fa2e5d3 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -1033,19 +1033,19 @@ qemudStartup(int privileged) {
> goto out_of_memory;
> }
>
> - if (virFileMakePath(qemu_driver->stateDir) < 0) {
> + if (virFileMakePath(qemu_driver->stateDir) != 0) {
> char ebuf[1024];
> VIR_ERROR(_("Failed to create state dir '%s': %s"),
> qemu_driver->stateDir, virStrerror(errno, ebuf, sizeof ebuf));
> goto error;
> }
> - if (virFileMakePath(qemu_driver->libDir) < 0) {
> + if (virFileMakePath(qemu_driver->libDir) != 0) {
> char ebuf[1024];
> VIR_ERROR(_("Failed to create lib dir '%s': %s"),
> qemu_driver->libDir, virStrerror(errno, ebuf, sizeof ebuf));
> goto error;
> }
> - if (virFileMakePath(qemu_driver->cacheDir) < 0) {
> + if (virFileMakePath(qemu_driver->cacheDir) != 0) {
> char ebuf[1024];
> VIR_ERROR(_("Failed to create cache dir '%s': %s"),
> qemu_driver->cacheDir, virStrerror(errno, ebuf, sizeof ebuf));
> @@ -2782,7 +2782,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
> vm->def->graphics[0]->data.vnc.port = port;
> }
>
> - if (virFileMakePath(driver->logDir) < 0) {
> + if (virFileMakePath(driver->logDir) != 0) {
> virReportSystemError(conn, errno,
> _("cannot create log directory %s"),
> driver->logDir);
> diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c
> index b808090..31cea5c 100644
> --- a/src/uml/uml_driver.c
> +++ b/src/uml/uml_driver.c
> @@ -419,7 +419,7 @@ umlStartup(int privileged) {
> goto error;
> }
>
> - if (virFileMakePath(uml_driver->monitorDir) < 0) {
> + if (virFileMakePath(uml_driver->monitorDir) != 0) {
> char ebuf[1024];
> VIR_ERROR(_("Failed to create monitor directory %s: %s"),
> uml_driver->monitorDir, virStrerror(errno, ebuf, sizeof ebuf));
> @@ -840,7 +840,7 @@ static int umlStartVMDaemon(virConnectPtr conn,
> return -1;
> }
>
> - if (virFileMakePath(driver->logDir) < 0) {
> + if (virFileMakePath(driver->logDir) != 0) {
> virReportSystemError(conn, errno,
> _("cannot create log directory %s"),
> driver->logDir);
Ah, right !!!
ACK
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list