diff options
| author | Al Viro <[email protected]> | 2014-05-29 13:11:45 +0000 |
|---|---|---|
| committer | Al Viro <[email protected]> | 2014-05-30 15:10:33 +0000 |
| commit | b2b80195d8829921506880f6dccd21cabd163d0d (patch) | |
| tree | 4c0845c5bdbcfba145459fb1a5f9853f762fb64c /tools/perf/scripts/python/sctop.py | |
| parent | shrink_dentry_list(): take parent's ->d_lock earlier (diff) | |
| download | kernel-b2b80195d8829921506880f6dccd21cabd163d0d.tar.gz kernel-b2b80195d8829921506880f6dccd21cabd163d0d.zip | |
dealing with the rest of shrink_dentry_list() livelock
We have the same problem with ->d_lock order in the inner loop, where
we are dropping references to ancestors. Same solution, basically -
instead of using dentry_kill() we use lock_parent() (introduced in the
previous commit) to get that lock in a safe way, recheck ->d_count
(in case if lock_parent() has ended up dropping and retaking ->d_lock
and somebody managed to grab a reference during that window), trylock
the inode->i_lock and use __dentry_kill() to do the rest.
Signed-off-by: Al Viro <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/sctop.py')
0 files changed, 0 insertions, 0 deletions
