Re: [PATCH 2/6] qemuDomainBuildNamespace: Try harder to remove temp directories

2020-03-19 Thread Pavel Mores
On Wed, Mar 18, 2020 at 06:32:12PM +0100, Michal Privoznik wrote:
> If building namespace fails somewhere in the middle (that is some
> files exists under devMountsSavePath[i]), then plain rmdir() is
> not enough to remove dir. Umount the temp location and use
> virFileDeleteTree() to remove the directory.
> 
> Signed-off-by: Michal Privoznik 
> ---
>  src/qemu/qemu_domain.c | 5 -
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index 48bf5ae559..2724607311 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -15311,9 +15311,12 @@ qemuDomainBuildNamespace(virQEMUDriverConfigPtr cfg,
>  ret = 0;
>   cleanup:
>  for (i = 0; i < ndevMountsPath; i++) {
> +#if defined(__linux__)
> +umount(devMountsSavePath[i]);
> +#endif /* defined(__linux__) */
>  /* The path can be either a regular file or a dir. */
>  if (virFileIsDir(devMountsSavePath[i]))
> -rmdir(devMountsSavePath[i]);
> +virFileDeleteTree(devMountsSavePath[i]);
>  else
>  unlink(devMountsSavePath[i]);
>  }
> -- 
> 2.24.1
> 

Reviewed-by: Pavel Mores 



[PATCH 2/6] qemuDomainBuildNamespace: Try harder to remove temp directories

2020-03-18 Thread Michal Privoznik
If building namespace fails somewhere in the middle (that is some
files exists under devMountsSavePath[i]), then plain rmdir() is
not enough to remove dir. Umount the temp location and use
virFileDeleteTree() to remove the directory.

Signed-off-by: Michal Privoznik 
---
 src/qemu/qemu_domain.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 48bf5ae559..2724607311 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -15311,9 +15311,12 @@ qemuDomainBuildNamespace(virQEMUDriverConfigPtr cfg,
 ret = 0;
  cleanup:
 for (i = 0; i < ndevMountsPath; i++) {
+#if defined(__linux__)
+umount(devMountsSavePath[i]);
+#endif /* defined(__linux__) */
 /* The path can be either a regular file or a dir. */
 if (virFileIsDir(devMountsSavePath[i]))
-rmdir(devMountsSavePath[i]);
+virFileDeleteTree(devMountsSavePath[i]);
 else
 unlink(devMountsSavePath[i]);
 }
-- 
2.24.1