freebsd-skq/sys/nfsclient
jhb 279b2b8278 Locking for the per-process resource limits structure.
- struct plimit includes a mutex to protect a reference count.  The plimit
  structure is treated similarly to struct ucred in that is is always copy
  on write, so having a reference to a structure is sufficient to read from
  it without needing a further lock.
- The proc lock protects the p_limit pointer and must be held while reading
  limits from a process to keep the limit structure from changing out from
  under you while reading from it.
- Various global limits that are ints are not protected by a lock since
  int writes are atomic on all the archs we support and thus a lock
  wouldn't buy us anything.
- All accesses to individual resource limits from a process are abstracted
  behind a simple lim_rlimit(), lim_max(), and lim_cur() API that return
  either an rlimit, or the current or max individual limit of the specified
  resource from a process.
- dosetrlimit() was renamed to kern_setrlimit() to match existing style of
  other similar syscall helper functions.
- The alpha OSF/1 compat layer no longer calls getrlimit() and setrlimit()
  (it didn't used the stackgap when it should have) but uses lim_rlimit()
  and kern_setrlimit() instead.
- The svr4 compat no longer uses the stackgap for resource limits calls,
  but uses lim_rlimit() and kern_setrlimit() instead.
- The ibcs2 compat no longer uses the stackgap for resource limits.  It
  also no longer uses the stackgap for accessing sysctl's for the
  ibcs2_sysconf() syscall but uses kernel_sysctl() instead.  As a result,
  ibcs2_sysconf() no longer needs Giant.
- The p_rlimit macro no longer exists.

Submitted by:	mtm (mostly, I only did a few cleanups and catchups)
Tested on:	i386
Compiled on:	alpha, amd64
2004-02-04 21:52:57 +00:00
..
bootp_subr.c University of Michigan's Citi NFSv4 kernel client code. 2003-11-14 20:54:10 +00:00
krpc_subr.c unbreak LINT. 2003-11-15 00:26:42 +00:00
krpc.h Cleanup and split of nfs client and server code. 2001-09-18 23:32:09 +00:00
nfs_bio.c Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +00:00
nfs_diskless.c University of Michigan's Citi NFSv4 kernel client code. 2003-11-14 20:54:10 +00:00
nfs_lock.c University of Michigan's Citi NFSv4 kernel client code. 2003-11-14 20:54:10 +00:00
nfs_lock.h Remove a case of exposing 'struct ucred' to userspace. Use a struct xucred 2002-08-15 21:52:22 +00:00
nfs_nfsiod.c University of Michigan's Citi NFSv4 kernel client code. 2003-11-14 20:54:10 +00:00
nfs_node.c University of Michigan's Citi NFSv4 kernel client code. 2003-11-14 20:54:10 +00:00
nfs_socket.c University of Michigan's Citi NFSv4 kernel client code. 2003-11-14 20:54:10 +00:00
nfs_subs.c Use function pointers to remove the depenancy cross dependancy on nfs4 2003-11-22 02:21:49 +00:00
nfs_vfsops.c Bump the NFCv3/TCP defaults for rsize and wsize from 8K to 32K to match 2004-01-31 10:40:15 +00:00
nfs_vnops.c University of Michigan's Citi NFSv4 kernel client code. 2003-11-14 20:54:10 +00:00
nfs.h Use function pointers to remove the depenancy cross dependancy on nfs4 2003-11-22 02:21:49 +00:00
nfsargs.h University of Michigan's Citi NFSv4 kernel client code. 2003-11-14 20:54:10 +00:00
nfsdiskless.h Remove the magic way of configuring NFS backed swap. 2003-08-15 12:04:02 +00:00
nfsm_subs.h University of Michigan's Citi NFSv4 kernel client code. 2003-11-14 20:54:10 +00:00
nfsmount.h Use function pointers to remove the depenancy cross dependancy on nfs4 2003-11-22 02:21:49 +00:00
nfsnode.h Use function pointers to remove the depenancy cross dependancy on nfs4 2003-11-22 02:21:49 +00:00
nfsstats.h Cleanup and split of nfs client and server code. 2001-09-18 23:32:09 +00:00
nlminfo.h Cleanup and split of nfs client and server code. 2001-09-18 23:32:09 +00:00