diff options
author | OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> | 2010-01-12 03:32:24 +0900 |
---|---|---|
committer | OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> | 2010-01-12 03:47:25 +0900 |
commit | 8045e2985012bdb95d832dfbcceae1815880a6ed (patch) | |
tree | 513a853a81eee10f86047b681bf52132592b36b9 /fs/fat/inode.c | |
parent | 3c8ad49b015eb115fbd6982f56d530f53cf57f84 (diff) | |
download | linux-3.10-8045e2985012bdb95d832dfbcceae1815880a6ed.tar.gz linux-3.10-8045e2985012bdb95d832dfbcceae1815880a6ed.tar.bz2 linux-3.10-8045e2985012bdb95d832dfbcceae1815880a6ed.zip |
fat: Fix vfat_lookup()
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>
Diffstat (limited to 'fs/fat/inode.c')
0 files changed, 0 insertions, 0 deletions