The removal does not account for possible leading path components that
were also created during creation of pivotdir.

Signed-off-by: Ferenc Wagner <wf...@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


------------------------------------------------------------------------------

_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to