summaryrefslogtreecommitdiffstats
path: root/virt
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2014-05-30 17:25:30 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2014-10-09 08:38:59 +0200
commit29355c3904e1765948c7721719a028b7eb5dfe1d (patch)
treeed3b5660e0df3f0c725d678fa80d4cff719a29cd /virt
parentproc: Update proc_flush_task_mnt to use d_invalidate (diff)
downloadlinux-29355c3904e1765948c7721719a028b7eb5dfe1d.tar.xz
linux-29355c3904e1765948c7721719a028b7eb5dfe1d.zip
d_prune_alias(): just lock the parent and call __dentry_kill()
The only reason for games with ->d_prune() was __d_drop(), which was needed only to force dput() into killing the sucker off. Note that lock_parent() can be called under ->i_lock and won't drop it, so dentry is safe from somebody managing to kill it under us - it won't happen while we are holding ->i_lock. __dentry_kill() is called only with ->d_lockref.count being 0 (here and when picked from shrink list) or 1 (dput() and dropping the ancestors in shrink_dentry_list()), so it will never be called twice - the first thing it's doing is making ->d_lockref.count negative and once that happens, nothing will increment it. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions