git: kernel - Performance tuning (3)
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Nov 14 11:56:57 PST 2013
commit b458d1abaa7a0b3892d7c071e99dd6d51090a81c
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Nov 14 11:54:09 2013 -0800
kernel - Performance tuning (3)
* The VOP_CLOSE issues revealed a bigger issue with vn_lock(). Many
callers do not check the return code for vn_lock() and in nearly all
of those cases it wouldn't fail anyway due to a prior ref, but it
creates an API issue.
* Add the LK_FAILRECLAIM flag to vn_lock(). This flag explicitly allows
vn_lock() to fail if the vnode is undergoing reclamation.
This fixes numerous issues, particularly when VOP_CLOSE() is called
during a reclaim due to recent LK_UPGRADE's that we do in some VFS
*_close() functions.
* Remove some unused LK_ defines.
Summary of changes:
.../linux/i386/linprocfs/linprocfs_vnops.c | 3 ++-
sys/gnu/vfs/ext2fs/ext2_lookup.c | 15 ++++++++++-----
sys/gnu/vfs/ext2fs/ext2_vnops.c | 13 +++++++++----
sys/gnu/vfs/ext2fs/fs.h | 3 ++-
sys/kern/tty.c | 2 +-
sys/kern/tty_tty.c | 3 ++-
sys/kern/vfs_lock.c | 2 +-
sys/kern/vfs_syscalls.c | 6 ++++--
sys/kern/vfs_vnops.c | 21 ++++++++++++++++-----
sys/sys/lock.h | 6 +++---
sys/vfs/devfs/devfs_vnops.c | 7 +++++--
sys/vfs/hpfs/hpfs.h | 2 +-
sys/vfs/hpfs/hpfs_vnops.c | 3 ++-
sys/vfs/isofs/cd9660/cd9660_lookup.c | 3 ++-
sys/vfs/isofs/cd9660/cd9660_vnops.c | 3 ++-
sys/vfs/msdosfs/msdosfs_lookup.c | 2 +-
sys/vfs/msdosfs/msdosfs_vnops.c | 5 +++--
sys/vfs/nfs/nfs_vnops.c | 5 +++--
sys/vfs/ntfs/ntfs.h | 1 +
sys/vfs/ntfs/ntfs_vnops.c | 7 ++++---
sys/vfs/nwfs/nwfs_vnops.c | 12 ++++++++----
sys/vfs/procfs/procfs_vnops.c | 3 ++-
sys/vfs/smbfs/smbfs_vnops.c | 8 +++++---
sys/vfs/udf/udf_vnops.c | 3 ++-
sys/vfs/ufs/ufs_lookup.c | 15 +++++++++++----
sys/vfs/ufs/ufs_vnops.c | 14 +++++++++-----
sys/vfs/union/union_subr.c | 9 ++++++---
sys/vm/vm_pageout.c | 2 +-
28 files changed, 118 insertions(+), 60 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b458d1abaa7a0b3892d7c071e99dd6d51090a81c
--
DragonFly BSD source repository
More information about the Commits
mailing list