From: Linus Torvalds Date: Fri, 30 May 2014 16:52:55 +0000 (-0700) Subject: Merge branch 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs X-Git-Tag: v3.15-rc8~11 X-Git-Url: http://git.cascardo.eti.br/?a=commitdiff_plain;h=6f6111e4a73d0f6370eb8be4f8e4523210b6a67d;p=cascardo%2Flinux.git Merge branch 'for-linus-2' of git://git./linux/kernel/git/viro/vfs Pull vfs dcache livelock fix from Al Viro: "Fixes for livelocks in shrink_dentry_list() introduced by fixes to shrink list corruption; the root cause was that trylock of parent's ->d_lock could be disrupted by d_walk() happening on other CPUs, resulting in shrink_dentry_list() making no progress *and* the same d_walk() being called again and again for as long as shrink_dentry_list() doesn't get past that mess. The solution is to have shrink_dentry_list() treat that trylock failure not as 'try to do the same thing again', but 'lock them in the right order'" * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: dentry_kill() doesn't need the second argument now dealing with the rest of shrink_dentry_list() livelock shrink_dentry_list(): take parent's ->d_lock earlier expand dentry_kill(dentry, 0) in shrink_dentry_list() split dentry_kill() lift the "already marked killed" case into shrink_dentry_list() --- 6f6111e4a73d0f6370eb8be4f8e4523210b6a67d