• Paolo 'Blaisorblade' Giarrusso's avatar
    [PATCH] uml: rename and improve actually_do_remove() · eb28931e
    Paolo 'Blaisorblade' Giarrusso authored
    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: default avatarPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
    Cc: Jeff Dike <jdike@addtoit.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    eb28931e
umid.c 7.64 KB