On Wednesday 05 April 2006 18:05, D. Bahi wrote:
> Blaisorblade wrote:
> > On Wednesday 05 April 2006 05:59, D. Bahi wrote:
> >> Jeff Dike wrote:

> it doesn't eat the umid= arg (no uml_utilities on the host?) 

> not_dead_yet : couldn't open pid file
> '/home/rtrsvcs/dbahi/.uml/happy/pid', err = 1
> Failed to create 'happy' - err = -17
> Failed to initialize umid "happy", trying with a random umid
Update - I can get this by creating ~/.uml/<umid>.
This will trigger the above failure.

rm -rf ~/.uml (when the machines are off) will solve the umid problem, or rm 
-rf ~/.uml/<the umid you need>.

The patch attached (untested) should fix the problems, will report back when 
it'll be tested.
-- 
Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!".
Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894)
http://www.user-mode-linux.org/~blaisorblade
Index: linux-2.6.git/arch/um/os-Linux/umid.c
===================================================================
--- linux-2.6.git.orig/arch/um/os-Linux/umid.c
+++ linux-2.6.git/arch/um/os-Linux/umid.c
@@ -120,7 +120,8 @@ static int not_dead_yet(char *dir)
 
 	dead = 0;
 	fd = open(file, O_RDONLY);
-	if(fd < 0){
+	if(fd < 0) {
+		fd = -errno;
 		if(fd != -ENOENT){
 			printk("not_dead_yet : couldn't open pid file '%s', "
 			       "err = %d\n", file, -fd);
@@ -130,9 +131,13 @@ static int not_dead_yet(char *dir)
 
 	err = 0;
 	n = read(fd, pid, sizeof(pid));
-	if(n <= 0){
+	if(n < 0){
+		printk("not_dead_yet : couldn't read pid file '%s', "
+		       "err = %d\n", file, errno);
+		goto out_close;
+	} else if(n == 0){
 		printk("not_dead_yet : couldn't read pid file '%s', "
-		       "err = %d\n", file, -n);
+		       "0-byte read\n", file);
 		goto out_close;
 	}
 
@@ -155,9 +160,9 @@ static int not_dead_yet(char *dir)
 
 	return err;
 
- out_close:
+out_close:
 	close(fd);
- out:
+out:
 	return 0;
 }
 

Reply via email to