[PATCH] uml: fix not_dead_yet when directory is in bad state
authorPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Sat, 1 Jul 2006 11:36:23 +0000 (04:36 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sat, 1 Jul 2006 16:56:03 +0000 (09:56 -0700)
commit912ad92220038b0bb67e3310b8447e4d8802d581
treea4131156931d9ebd5022d969ffbbf3c6bc51e055
parent47e5243afe0bd2a1aca1e1f05dfbcc214267fbc9
[PATCH] uml: fix not_dead_yet when directory is in bad state

The bug occurred to me when a UML left an empty ~/.uml/Sarge-norm folder -
when trying to reuse not_dead_yet() failed one of its check.  The comment
says that's ok and means that we can take the directory, but while normally
not_dead_yet() removes it and returns 0 (i.e.  go on, use this), on failure
it returns 0 but forgets to remove it.  The fix is to remove it anytime
we're going to return 0.

But since "not_dead_yet" didn't make the interface so clear, causing this
bug, and I couldn't find a convenient name for the mix of things it did, I
split it into two parts:

is_umdir_used()      - returns a boolean, contains all checks of not_dead_yet()
umdir_take_if_dead   - tries to remove the dir unless it's used - returns
whether it removed it, that is we now own it.

With this changes the control flow is IMHO a bit clearer and needs less
comment for control flow.

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