]> 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)
committerJiri Slaby <jslaby@suse.cz>
Thu, 30 Oct 2014 21:17:40 +0000 (22:17 +0100)
commite69a2ca7917a453a4cba8be4e722908c147ed16d
treefb37bd340092906c8002768c7702f554762be5a0
parent72b7f65091199b7ae38ad658c5ce8246f1496976
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: Jiri Slaby <jslaby@suse.cz>
fs/dcache.c