• Al Viro's avatar
    fix old umount_tree() breakage · 7b8a53fd
    Al Viro authored
    Expiry-related code calls umount_tree() several times with
    the same list to collect vfsmounts to.  Which is fine, except
    that umount_tree() implicitly assumed that the list would
    be empty on each call - it moves the victims over there and
    then iterates through the list kicking them out.  It's *almost*
    idempotent, so everything nearly worked.  However, mnt->ghosts
    handling (and thus expirability checks) had been broken - that
    part was not idempotent...
    
    The fix is trivial - use local temporary list, splice it to
    the the collector list when we are through.
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    7b8a53fd
namespace.c 63.1 KB