linux/arch/um
Jeff Dike b4fd310e16 [PATCH] uml: preserve errno in error paths
The poster child for this patch is the third tuntap_user hunk.  When an ioctl
fails, it properly closes the opened file descriptor and returns.  However,
the close resets errno to 0, and the 'return errno' that follows returns 0
rather than the value that ioctl set.  This caused the caller to believe that
the device open succeeded and had opened file descriptor 0, which caused no
end of interesting behavior.

The rest of this patch is a pass through the UML sources looking for places
where errno could be reset before being passed back out.  A common culprit is
printk, which could call write, being called before errno is returned.

In some cases, where the code ends up being much smaller, I just deleted the
printk.

There was another case where a caller of run_helper looked at errno after a
failure, rather than the return value of run_helper, which was the errno value
that it wanted.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-17 11:50:00 -07:00
..
drivers [PATCH] uml: preserve errno in error paths 2005-09-17 11:50:00 -07:00
include [PATCH] uml: breakpoint an arbitrary thread 2005-09-17 11:49:59 -07:00
kernel [PATCH] uml: preserve errno in error paths 2005-09-17 11:50:00 -07:00
os-Linux [PATCH] uml: preserve errno in error paths 2005-09-17 11:50:00 -07:00
scripts [PATCH] sparse on uml (infrastructure bits) 2005-09-09 10:31:58 -07:00
sys-i386 [PATCH] bogus symbol used in arch/um/os-Linux/elf_aux.c 2005-09-07 17:17:33 -07:00
sys-ia64 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sys-ppc [PATCH] uml: stack dump fix 2005-05-28 16:46:13 -07:00
sys-x86_64 [PATCH] bogus symbol used in arch/um/os-Linux/elf_aux.c 2005-09-07 17:17:33 -07:00
util [PATCH] uml: cross-build support : mk_task and mk_constants 2005-05-05 16:36:35 -07:00
config.release Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
defconfig [PATCH] uml: skas0 - separate kernel address space on stock hosts 2005-07-07 18:23:44 -07:00
Kconfig [PATCH] uml: mark SMP on UML/x86_64 as broken 2005-09-05 00:06:22 -07:00
Kconfig.char [PATCH] uml: Rename Kconfig files to be like the other arches 2005-09-05 00:06:19 -07:00
Kconfig.debug [PATCH] uml: workaround GDB problems on debugging 2005-09-05 00:06:20 -07:00
Kconfig.i386 [PATCH] uml: Rename Kconfig files to be like the other arches 2005-09-05 00:06:19 -07:00
Kconfig.net [PATCH] uml: Rename Kconfig files to be like the other arches 2005-09-05 00:06:19 -07:00
Kconfig.scsi [PATCH] uml: Rename Kconfig files to be like the other arches 2005-09-05 00:06:19 -07:00
Kconfig.x86_64 [PATCH] uml: mark SMP on UML/x86_64 as broken 2005-09-05 00:06:22 -07:00
Makefile kbuild: rename prepare to archprepare to fix dependency chain 2005-09-11 22:30:22 +02:00
Makefile-i386 [PATCH] lost chunk of "uml: build cleanups" 2005-09-07 17:17:32 -07:00
Makefile-ia64 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile-os-Linux Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile-ppc Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile-skas Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile-tt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile-x86_64 [PATCH] sparse on uml (infrastructure bits) 2005-09-09 10:31:58 -07:00