freebsd-dev/sys/nfsclient
Jeff Roberson b646893f0f - Eliminate the acquisition and release of the bqlock in bremfree() by
setting the B_REMFREE flag in the buf.  This is done to prevent lock order
   reversals with code that must call bremfree() with a local lock held.
   This also reduces overhead by removing two lock operations per buf for
   fsync() and similar.
 - Check for the B_REMFREE flag in brelse() and bqrelse() after the bqlock
   has been acquired so that we may remove ourself from the free-list.
 - Provide a bremfreef() function to immediately remove a buf from a
   free-list for use only by NFS.  This is done because the nfsclient code
   overloads the b_freelist queue for its own async. io queue.
 - Simplify the numfreebuffers accounting by removing a switch statement
   that executed the same code in every possible case.
 - getnewbuf() can encounter locked bufs on free-lists once Giant is removed.
   Remove a panic associated with this condition and delay asserts that
   inspect the buf until after it is locked.

Reviewed by:	phk
Sponsored by:	Isilon Systems, Inc.
2004-11-18 08:44:09 +00:00
..
bootp_subr.c
krpc_subr.c
krpc.h
nfs_bio.c - Eliminate the acquisition and release of the bqlock in bremfree() by 2004-11-18 08:44:09 +00:00
nfs_diskless.c
nfs_lock.c
nfs_lock.h
nfs_nfsiod.c
nfs_node.c Move the buffer method vector (buf->b_op) to the bufobj. 2004-10-24 20:03:41 +00:00
nfs_socket.c
nfs_subs.c Add b_bufobj to struct buf which eventually will eliminate the need for b_vp. 2004-10-22 08:47:20 +00:00
nfs_vfsops.c Detect root mount attempts on the flag, not on the NULL path. 2004-11-09 22:21:52 +00:00
nfs_vnops.c Move the buffer method vector (buf->b_op) to the bufobj. 2004-10-24 20:03:41 +00:00
nfs.h style consistency. 2004-09-27 19:44:39 +00:00
nfsargs.h
nfsdiskless.h
nfsm_subs.h
nfsmount.h
nfsnode.h Move the buffer method vector (buf->b_op) to the bufobj. 2004-10-24 20:03:41 +00:00
nfsstats.h
nlminfo.h