From: Michal Privoznik Date: Mon, 12 Jun 2017 15:46:30 +0000 (+0200) Subject: qemuDomainBuildNamespace: Clean up temp files X-Git-Tag: v3.5.0-rc1~69 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6ab3e2f6c4c665efdddb313ac9ecd80bf9c67670;p=thirdparty%2Flibvirt.git qemuDomainBuildNamespace: Clean up temp files https://bugzilla.redhat.com/show_bug.cgi?id=1431112 After 290a00e41d we know how to deal with file mount points. However, when cleaning up the temporary location for preserved mount points we are still calling rmdir(). This won't fly for files. We need to call unlink(). Now, since we don't really care if the cleanup succeeded or not (it's the best effort anyway), we can call both rmdir() and unlink() without need for differentiation between files and directories. Signed-off-by: Michal Privoznik Reviewed-by: John Ferlan --- diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 6838d2eaa4..570da2cf54 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -8363,8 +8363,13 @@ qemuDomainBuildNamespace(virQEMUDriverConfigPtr cfg, ret = 0; cleanup: - for (i = 0; i < ndevMountsPath; i++) - rmdir(devMountsSavePath[i]); + for (i = 0; i < ndevMountsPath; i++) { + /* The path can be either a regular file or a dir. */ + if (virFileIsDir(devMountsSavePath[i])) + rmdir(devMountsSavePath[i]); + else + unlink(devMountsSavePath[i]); + } virStringListFreeCount(devMountsPath, ndevMountsPath); virStringListFreeCount(devMountsSavePath, ndevMountsPath); return ret;