kernel - Remove getnewvnode() bottlenecks
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 22 Feb 2013 18:16:30 +0000 (10:16 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 22 Feb 2013 18:16:30 +0000 (10:16 -0800)
commitbd7598aaf2e0bcbd4614fca451ec918904e4e974
tree8ac4cc24d62ceda22e5f3b81ef21683aac2542b1
parent9c105d5b68ecf41d798c8ec649ce75a89f051572
kernel - Remove getnewvnode() bottlenecks

* Move the global mntvnodescan_list into the mount structure and remove
  the global mntvnode_token.  Adjust the code to use the per-mount
  mp->mnt_token instead.

* This removes a major token bottleneck in getnewvnode(), particularly
  important when doing concurrent not-yet-cached directory scans or file
  creates under different mount points, and when the vnode cache reaches
  its nominal maximum.

* Also add a missing piece for the last cache_findmount() commit.
sys/kern/vfs_mount.c
sys/kern/vfs_syscalls.c
sys/sys/mount.h
sys/sys/namecache.h