• Ian Kent's avatar
    autofs4 - fix expire check · d807ff83
    Ian Kent authored
    In some cases when an autofs indirect mount is contained in a file
    system that is marked as shared (such as when systemd does the
    equivalent of "mount --make-rshared /" early in the boot), mounts
    stop expiring.
    
    When this happens the first expiry check on a mountpoint dentry in
    autofs_expire_indirect() sees a mountpoint dentry with a higher
    than minimal reference count. Consequently the dentry is condidered
    busy and the actual expiry check is never done.
    
    This particular check was originally meant as an optimisation to
    detect a path walk in progress but with the addition of rcu-walk
    it can be ineffective anyway.
    
    Removing the test allows automounts to expire again since the
    actual expire check doesn't rely on the dentry reference count.
    Signed-off-by: default avatarIan Kent <raven@themaw.net>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    d807ff83
expire.c 13.7 KB