freebsd-nq/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 Move a relic to its correct location(s): Put nfs diskless initialization 2004-07-28 21:54:57 +00:00
krpc_subr.c Convert GIANT_REQUIRED to NET_ASSERT_GIANT where Giant is used to 2004-06-16 03:12:50 +00:00
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 Move a relic to its correct location(s): Put nfs diskless initialization 2004-07-28 21:54:57 +00:00
nfs_lock.c
nfs_lock.h
nfs_nfsiod.c Explicitly pass vnode to nfs_doio() and mountpoint to nfs_asyncio(). 2004-09-07 08:56:43 +00:00
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 In nfs_timer(), pass curthread rather than &thread0 into the protocol 2004-08-25 01:23:38 +00:00
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 Remove advertising clause from University of California Regent's 2004-04-07 05:00:01 +00:00
nfsdiskless.h Remove advertising clause from University of California Regent's 2004-04-07 05:00:01 +00:00
nfsm_subs.h Remove advertising clause from University of California Regent's 2004-04-07 05:00:01 +00:00
nfsmount.h NFS mobility PHASE I, II & III (phase VI, and V pending): 2004-07-06 09:12:03 +00:00
nfsnode.h Move the buffer method vector (buf->b_op) to the bufobj. 2004-10-24 20:03:41 +00:00
nfsstats.h Remove advertising clause from University of California Regent's 2004-04-07 05:00:01 +00:00
nlminfo.h