• Eric W. Biederman's avatar
    mnt: Clarify and correct the disconnect logic in umount_tree · f2d0a123
    Eric W. Biederman authored
    rmdir mntpoint will result in an infinite loop when there is
    a mount locked on the mountpoint in another mount namespace.
    
    This is because the logic to test to see if a mount should
    be disconnected in umount_tree is buggy.
    
    Move the logic to decide if a mount should remain connected to
    it's mountpoint into it's own function disconnect_mount so that
    clarity of expression instead of terseness of expression becomes
    a virtue.
    
    When the conditions where it is invalid to leave a mount connected
    are first ruled out, the logic for deciding if a mount should
    be disconnected becomes much clearer and simpler.
    
    Fixes: e0c9c0af mnt: Update detach_mounts to leave mounts connected
    Fixes: ce07d891 mnt: Honor MNT_LOCKED when detaching mounts
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
    f2d0a123
namespace.c 81.1 KB