From d84a19ce52a7b01dc7318ea3a8223dfe44cccb6f Mon Sep 17 00:00:00 2001 From: Paolo 'Blaisorblade' Giarrusso Date: Mon, 10 Apr 2006 22:53:38 -0700 Subject: [PATCH] [PATCH] uml: fix failure path after conversion 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 Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- arch/um/os-Linux/umid.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/arch/um/os-Linux/umid.c b/arch/um/os-Linux/umid.c index 198e59163288..34bfc1bb9e38 100644 --- a/arch/um/os-Linux/umid.c +++ b/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, -n); + "err = %d\n", file, errno); + goto out_close; + } else if(n == 0){ + printk("not_dead_yet : couldn't read pid file '%s', " + "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; }