android_kernel_xiaomi_sm8350/arch
Paolo 'Blaisorblade' Giarrusso eb28931e4a [PATCH] uml: rename and improve actually_do_remove()
Rename actually_do_remove() to remove_files_and_dir(), make it call
closedir(), make it ignore ENOENT (I see it frequently enough).

ENOENT is probably due to multiple threads calling the exitcall functions
together*, but fixing that is non-trivial; and ignoring it is perfectly ok
in any case.

* it can surely happen: last_ditch_exit() is installed as SIGTERM handler
  at boot, and it's not removed on thread creation.  So killall vmlinux
  (which I do) surely causes that.  I've seen also a crash which seems to
  do the same.

Installing the handler on only the main thread would make UML do no cleanup
when another thread exits, and we're not sure we want that.  And mutual
exclusion in that context is tricky - we can't use spinlock in code not on
a kernel stack (spinlock debugging uses "current" a lot).

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>
2006-07-01 09:56:03 -07:00
..
alpha Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
arm Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
arm26 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cris Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
frv Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
h8300 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
i386 [PATCH] SMP alternatives: skip with UP kernels 2006-07-01 09:56:02 -07:00
ia64 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
m32r Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
m68k Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
m68knommu Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mips Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
parisc Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
powerpc Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ppc Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
sh Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sh64 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sparc Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
sparc64 Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2006-06-30 15:40:35 -07:00
um [PATCH] uml: rename and improve actually_do_remove() 2006-07-01 09:56:03 -07:00
v850 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
x86_64 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
xtensa Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00