[PATCH] uml: fix failure path after conversion
authorPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Tue, 11 Apr 2006 05:53:38 +0000 (22:53 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 11 Apr 2006 13:18:36 +0000 (06:18 -0700)
Little fix for error paths in this code.

- Some bug come from conversion to os-Linux (open() doesn't follow the
  kernel -errno return convention, while the old code called os_open_file()
  which followed it).  This caused the wrong return code to be printed.

- Then be more precise about what happened and do some whitespace fixes.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/um/os-Linux/umid.c

index 198e591..34bfc1b 100644 (file)
@@ -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;
 }