summaryrefslogtreecommitdiffstats
path: root/crypto/rmd320.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2014-05-01 16:30:00 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2014-05-01 16:30:00 +0200
commit41edf278fc2f042f4e22a12ed87d19c5201210e1 (patch)
tree4f49bfe5f401dcc7477fb630f3773a59402b634a /crypto/rmd320.c
parentexpand the call of dentry_lru_del() in dentry_kill() (diff)
downloadlinux-41edf278fc2f042f4e22a12ed87d19c5201210e1.tar.xz
linux-41edf278fc2f042f4e22a12ed87d19c5201210e1.zip
dentry_kill(): don't try to remove from shrink list
If the victim in on the shrink list, don't remove it from there. If shrink_dentry_list() manages to remove it from the list before we are done - fine, we'll just free it as usual. If not - mark it with new flag (DCACHE_MAY_FREE) and leave it there. Eventually, shrink_dentry_list() will get to it, remove the sucker from shrink list and call dentry_kill(dentry, 0). Which is where we'll deal with freeing. Since now dentry_kill(dentry, 0) may happen after or during dentry_kill(dentry, 1), we need to recognize that (by seeing DCACHE_DENTRY_KILLED already set), unlock everything and either free the sucker (in case DCACHE_MAY_FREE has been set) or leave it for ongoing dentry_kill(dentry, 1) to deal with. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'crypto/rmd320.c')
0 files changed, 0 insertions, 0 deletions