• Al Viro's avatar
    delayed mntput · 9ea459e1
    Al Viro authored
    On final mntput() we want fs shutdown to happen before return to
    userland; however, the only case where we want it happen right
    there (i.e. where task_work_add won't do) is MNT_INTERNAL victim.
    Those have to be fully synchronous - failure halfway through module
    init might count on having vfsmount killed right there.  Fortunately,
    final mntput on MNT_INTERNAL vfsmounts happens on shallow stack.
    So we handle those synchronously and do an analog of delayed fput
    logics for everything else.
    
    As the result, we are guaranteed that fs shutdown will always happen
    on shallow stack.
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    9ea459e1
namespace.c 75.1 KB