• OGAWA Hirofumi's avatar
    fat: Fix vfat_lookup() · 8045e298
    OGAWA Hirofumi authored
    After d_find_alias(), vfat_lookup() checks !(->d_flags & DCACHE_DISCONNECTED)
    without IS_ROOT().  This means it hits non-anonymous but disconnected
    dentry. (NOTE: d_splice_alias() doesn't clear DCACHE_DISCONNECTED)
    
    But, vfat_lookup() has interest to alias if it was non-anonymous. So,
    this adds vfat_d_anon_disconn() helper to check it correctly.
    
    Another bug is refcnt leak. It needs dput() for uninterested alias.
    Signed-off-by: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
    8045e298
namei_vfat.c 25.4 KB