On 04/18/2013 10:32 AM, Stéphane Graber wrote: > This reverts commit 8de4140644f01180f2fdab55b0ab0f13d1c761c6. > > This commit was preventing container startup on my machine, making them > all fail with various "No such file or directory" errors. > > Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
Was directly applied to the staging branch as the issue was preventing regular use of LXC. > --- > src/lxc/utils.c | 48 +++++++++++++++++++++++++++++++----------------- > 1 file changed, 31 insertions(+), 17 deletions(-) > > diff --git a/src/lxc/utils.c b/src/lxc/utils.c > index 9794553..e07ca7b 100644 > --- a/src/lxc/utils.c > +++ b/src/lxc/utils.c > @@ -95,25 +95,39 @@ extern int get_u16(unsigned short *val, const char *arg, > int base) > return 0; > } > > +static int is_all_slashes(char *path) > +{ > + while (*path && *path == '/') > + path++; > + if (*path) > + return 0; > + return 1; > +} > + > extern int mkdir_p(char *dir, mode_t mode) > { > - char *tmp = dir; > - char *orig = dir; > - char *makeme; > - > - do { > - dir = tmp + strspn(tmp, "/"); > - tmp = dir + strcspn(dir, "/"); > - makeme = strndupa(orig, dir - orig); > - if (*makeme) { > - if (!access(makeme, F_OK)) > - return 0; > - if (mkdir(makeme, mode)) { > - SYSERROR("failed to create directory '%s'\n", > makeme); > - return -1; > - } > - } > - } while(tmp != dir); > + int ret; > + char *d; > + > + if (is_all_slashes(dir)) > + return 0; > + > + d = strdup(dir); > + if (!d) > + return -1; > + > + ret = mkdir_p(dirname(d), mode); > + free(d); > + if (ret) > + return -1; > + > + if (!access(dir, F_OK)) > + return 0; > + > + if (mkdir(dir, mode)) { > + SYSERROR("failed to create directory '%s'\n", dir); > + return -1; > + } > > return 0; > } > -- Stéphane Graber Ubuntu developer http://www.ubuntu.com
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------------ Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel