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 <[email protected]>
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 [email protected] https://lists.sourceforge.net/lists/listinfo/lxc-devel
