Commit 4127d6cd authored by Gerd Knorr's avatar Gerd Knorr Committed by Linus Torvalds

[PATCH] uml: fix umldir init order

Fixup initialization order when creating the $HOME/.uml/<umid> directory and
the files therein, also make the error messages more useful.
Signed-off-by: default avatarGerd Knorr <kraxel@bytesex.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent dc31430e
...@@ -93,8 +93,8 @@ static int __init create_pid_file(void) ...@@ -93,8 +93,8 @@ static int __init create_pid_file(void)
fd = os_open_file(file, of_create(of_excl(of_rdwr(OPENFLAGS()))), fd = os_open_file(file, of_create(of_excl(of_rdwr(OPENFLAGS()))),
0644); 0644);
if(fd < 0){ if(fd < 0){
printf("Open of machine pid file \"%s\" failed - " printf("Open of machine pid file \"%s\" failed: %s\n",
"err = %d\n", file, -fd); file, strerror(-fd));
return 0; return 0;
} }
...@@ -248,7 +248,7 @@ static int __init make_uml_dir(void) ...@@ -248,7 +248,7 @@ static int __init make_uml_dir(void)
strcpy(uml_dir, dir); strcpy(uml_dir, dir);
if((mkdir(uml_dir, 0777) < 0) && (errno != EEXIST)){ if((mkdir(uml_dir, 0777) < 0) && (errno != EEXIST)){
printf("Failed to mkdir %s - errno = %i\n", uml_dir, errno); printf("Failed to mkdir %s: %s\n", uml_dir, strerror(errno));
return(-1); return(-1);
} }
return 0; return 0;
...@@ -265,8 +265,8 @@ static int __init make_umid(int (*printer)(const char *fmt, ...)) ...@@ -265,8 +265,8 @@ static int __init make_umid(int (*printer)(const char *fmt, ...))
strcat(tmp, "XXXXXX"); strcat(tmp, "XXXXXX");
fd = mkstemp(tmp); fd = mkstemp(tmp);
if(fd < 0){ if(fd < 0){
(*printer)("make_umid - mkstemp failed, errno = %d\n", (*printer)("make_umid - mkstemp(%s) failed: %s\n",
errno); tmp,strerror(errno));
return(1); return(1);
} }
...@@ -304,15 +304,14 @@ __uml_setup("uml_dir=", set_uml_dir, ...@@ -304,15 +304,14 @@ __uml_setup("uml_dir=", set_uml_dir,
" The location to place the pid and umid files.\n\n" " The location to place the pid and umid files.\n\n"
); );
__uml_postsetup(make_uml_dir);
static int __init make_umid_setup(void) static int __init make_umid_setup(void)
{ {
return(make_umid(printf)); /* one function with the ordering we need ... */
make_uml_dir();
make_umid(printf);
return create_pid_file();
} }
__uml_postsetup(make_umid_setup); __uml_postsetup(make_umid_setup);
__uml_postsetup(create_pid_file);
/* /*
* Overrides for Emacs so that we follow Linus's tabbing style. * Overrides for Emacs so that we follow Linus's tabbing style.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment