aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-05-30 09:52:55 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2014-05-30 09:52:55 -0700
commit6f6111e4a73d0f6370eb8be4f8e4523210b6a67d (patch)
tree18348a2d6793d637f913e25adca67287fdab24d0 /arch
parentfe45736f4134b9656c656ac5e15b915192f2704a (diff)
parent8cbf74da435d1bd13dbb790f94c7ff67b2fb6af4 (diff)
Merge branch 'for-linus-2' of git://git.kernel.org/pub/scm/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()
Diffstat (limited to 'arch')
0 files changed, 0 insertions, 0 deletions