• Ian Kent's avatar
    autofs4 - fix get_next_positive_subdir() · a45440f0
    Ian Kent authored
    Following a report of a crash during an automount expire I found that
    the locking in fs/autofs4/expire.c:get_next_positive_subdir() was wrong.
    Not only is the locking wrong but the function is more complex than it
    needs to be.
    
    The function is meant to calculate (and dget) the next entry in the list
    of directories contained in the root of an autofs mount point (an autofs
    indirect mount to be precise). The main problem was that the d_lock of
    the owner of the list was not being taken when walking the list, which
    lead to list corruption under load. The only other lock that needs to
    be taken is against the next dentry candidate so it can be checked for
    usability.
    Signed-off-by: default avatarIan Kent <raven@themaw.net>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    a45440f0
expire.c 13.8 KB