fat: Fix vfat_lookup()
authorOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Mon, 11 Jan 2010 18:32:24 +0000 (03:32 +0900)
committerOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Mon, 11 Jan 2010 18:47:25 +0000 (03:47 +0900)
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: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>

No differences found