]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
lift the "already marked killed" case into shrink_dentry_list()
authorAl Viro <viro@zeniv.linux.org.uk>
Wed, 28 May 2014 13:48:44 +0000 (09:48 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 3 Mar 2016 23:06:46 +0000 (15:06 -0800)
commitf718ea386c2f2a077e29a0f338507cfcd75e55cd
tree1b60c45e40150194a2b69bd5cc275494f22efd5c
parent8e0cb6c1f8c403c189b45b969540284862b30f85
lift the "already marked killed" case into shrink_dentry_list()

commit 64fd72e0a44bdd62c5ca277cb24d0d02b2d8e9dc upstream.

It can happen only when dentry_kill() is called with unlock_on_failure
equal to 0 - other callers had dentry pinned until the moment they've
got ->d_lock and DCACHE_DENTRY_KILLED is set only after lockref_mark_dead().

IOW, only one of three call sites of dentry_kill() might end up reaching
that code.  Just move it there.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/dcache.c