[lxc-devel] [PATCH 1/2] remove pivotdir only if it was created by us
Ferenc Wagner
wferi at niif.hu
Wed May 12 17:04:30 UTC 2010
The removal does not account for possible leading path components that
were also created during creation of pivotdir.
Signed-off-by: Ferenc Wagner <wferi at niif.hu>
---
src/lxc/conf.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/lxc/conf.c b/src/lxc/conf.c
index 2b8ddf4..6d9b6b0 100644
--- a/src/lxc/conf.c
+++ b/src/lxc/conf.c
@@ -464,6 +464,7 @@ static int setup_rootfs_pivot_root(const char *rootfs, const char *pivotdir)
void *cbparm[2];
struct lxc_list mountlist, *iterator;
int ok, still_mounted, last_still_mounted;
+ int remove_pivotdir = 0;
/* change into new root fs */
if (chdir(rootfs)) {
@@ -484,6 +485,7 @@ static int setup_rootfs_pivot_root(const char *rootfs, const char *pivotdir)
return -1;
}
+ remove_pivotdir = 1;
DEBUG("created '%s' directory", path);
}
@@ -573,8 +575,8 @@ static int setup_rootfs_pivot_root(const char *rootfs, const char *pivotdir)
/* remove temporary mount point, we don't consider the removing
* as fatal */
- if (rmdir(pivotdir))
- WARN("can't remove mountpoint: %m");
+ if (remove_pivotdir && rmdir(pivotdir))
+ WARN("can't remove mountpoint '%s': %m", pivotdir);
INFO("pivoted to '%s'", rootfs);
return 0;
--
1.6.5
More information about the lxc-devel
mailing list