]> git.neil.brown.name Git - history.git/commit
[PATCH] exportfs - Remove unnecessary locking from find_exported_dentry()
authorAndrew Morton <akpm@osdl.org>
Wed, 17 Mar 2004 10:55:20 +0000 (02:55 -0800)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 17 Mar 2004 10:55:20 +0000 (02:55 -0800)
commit1b8e3f2187f3e8227f5c4b47ab0dc038bc742a60
tree652349ad78f618ee4416e9109a84b56bc7ef5110
parentefbe9b14927b5eed083903357498c44edc7187b1
[PATCH] exportfs - Remove unnecessary locking from find_exported_dentry()

From: "Jose R. Santos" <jrsantos@austin.ibm.com>

After discussing it with Neil, he fell that the original justification for
taking the kernel_lock on find_exported_dentry() is not longer valid and
should be safe to remove.

This patch fixes an issue while running SpecSFS where under memory
pressure, shrinking dcache cause find_exported_dentry() to allocate
disconnected dentries that later needed to be properly connected.  The
connecting part of the code was done with BKL taken which cause a sharp
drop in performance during iterations and profiles showing 75% time spent
on find_exported_dentry().  After applying the patch, time spent on the
function is reduce to <1%.

I have tested this on an 8-way machine with 56 filesystems for several days
now with no problems using ext2, ext3, xfs and jfs.
fs/exportfs/expfs.c