]> git.hungrycats.org Git - linux/commit
[PATCH] remove dparent_lock
authorAndrew Morton <akpm@digeo.com>
Thu, 3 Apr 2003 00:28:58 +0000 (16:28 -0800)
committerLinus Torvalds <torvalds@home.transmeta.com>
Thu, 3 Apr 2003 00:28:58 +0000 (16:28 -0800)
commit723c6e83134f78035b93cb3e70503ad4d04a7dfa
tree5f592fd50d2b74a5a5e5016d66fb98edd24c5e45
parent1b8910cf1042f2de2cdd1dc26e4fb677b6dad7ed
[PATCH] remove dparent_lock

The big SMP machines are seeing quite some contention in dnotify_parent()
(via vfs_write).  This function is hammering the global dparent_lock.

However we don't actually need a global dparent_lock for pinning down
dentry->d_parent.  We can use dentry->d_lock for this.  That is already being
held across d_move.

This patch speeds up SDET on the 16-way by 5% and wipes dnotify_parent() off
the profiles.

It also uninlines dnofity_parent().

It also uses spin_lock(), which is faster than read_lock().

I'm not sure that we need to take both the source and target dentry's d_lock
in d_move.

The patch also does lots of s/__inline__/inline/ in dcache.h
20 files changed:
Documentation/filesystems/porting
fs/afs/dir.c
fs/dcache.c
fs/dnotify.c
fs/exportfs/expfs.c
fs/fat/inode.c
fs/ncpfs/dir.c
fs/nfs/dir.c
fs/nfsd/export.c
fs/nfsd/nfs3xdr.c
fs/nfsd/nfsfh.c
fs/nfsd/vfs.c
fs/ntfs/namei.c
fs/reiserfs/inode.c
fs/smbfs/dir.c
fs/smbfs/proc.c
include/linux/dcache.h
include/linux/dnotify.h
include/linux/fs.h
kernel/ksyms.c