Home | History | Annotate | Download | only in nfs
History log of /src/sys/nfs/nfs_syscalls.c
RevisionDateAuthorComments
 1.164  05-Jul-2024  rin sys: Drop redundant NULL check before m_freem(9)

m_freem(9) safely has accepted NULL argument at least since 4.2BSD:
https://www.tuhs.org/cgi-bin/utree.pl?file=4.2BSD/usr/src/sys/sys/uipc_mbuf.c

Compile-tested on amd64/ALL.

Suggested by knakahara@
 1.163  04-Jun-2021  hannken Add flag/command NFSSVC_REPLACEEXPORTSLIST to nfssvc(2) system call.

Works like NFSSVC_SETEXPORTSLIST but supports "mel_nexports > 1"
and will atomically update the complete exports list for a file system.
 1.162  14-Mar-2020  ad branches: 1.162.8; 1.162.12;
- Hide the details of SPCF_SHOULDYIELD and related behind a couple of small
functions: preempt_point() and preempt_needed().

- preempt(): if the LWP has exceeded its timeslice in kernel, strip it of
any priority boost gained earlier from blocking.
 1.161  03-Feb-2019  mrg - add or adjust /* FALLTHROUGH */ where appropriate
- add __unreachable() after functions that can return but won't in
this case, and thus can't be marked __dead easily
 1.160  16-Mar-2018  christos branches: 1.160.2;
PR/53103: Timo Buhrmester: linux emulation of sendto(2) broken

The sockargs refactoring broke it, because sockargs only works with a user
address. Added an argument to sockargs to indicate where the address is
coming from. Welcome to 8.99.14.
 1.159  25-Jan-2018  riastradh branches: 1.159.2;
Use a random opaque cookie, not kva pointer, for nfssvc(2).

(What were they smoking?!)

I suspect most of this is actually dead code that wasn't properly
amputated along with the rest of the gangrene of NFSKERB a decade
ago, but I'm out of time to investigate further. If someone else
wants to kill NFSSVC_AUTHIN/NFSSVC_AUTHINFAIL and the rest of the
tentacular kerberosity, be my guest.

Noted by Silvio Cesare of InfoSect.
 1.158  12-Feb-2017  maxv Memory leak, found by Mootja; not tested, but obvious enough.
 1.157  10-Jun-2016  ozaki-r branches: 1.157.2; 1.157.4;
Introduce m_set_rcvif and m_reset_rcvif

The API is used to set (or reset) a received interface of a mbuf.
They are counterpart of m_get_rcvif, which will come in another
commit, hide internal of rcvif operation, and reduce the diff of
the upcoming change.

No functional change.
 1.156  22-Jun-2015  mrg add netbsd32 support for nfssvc(2). we do this by defining 5 copyin/out
functions that do all the ugly work, are just plain copyin/out for the
native system calls, and do the necessary translations for netbsd32.

with this i'm able to run 32 bit nfsd and mountd on 64 bit kernel and
mount the file systems remotely.
 1.155  05-Sep-2014  matt branches: 1.155.2;
Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get
a correctly typed pointer.
 1.154  27-Nov-2013  christos branches: 1.154.4;
CID 271162: NULL deref check
 1.153  31-Dec-2009  christos branches: 1.153.12; 1.153.22; 1.153.26;
put nuidhash_max in a file that is shared between server and client code.
 1.152  31-Dec-2009  christos handle the nuidhash_max lossage differently
 1.151  21-Oct-2009  rmind Remove uarea swap-out functionality:

- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code. Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.

Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).

Discussed on <tech-kern>, reviewed by <ad>.
 1.150  14-Sep-2009  pooka Remove stale comment about super user. no functional change
 1.149  07-Jul-2009  christos The compatibility call to re-export from sys_mount() calls
mountd_set_exports_list, with the mnt_updating mutex held. Account for that
to avoid a locking against myself panic.
 1.148  23-May-2009  ad Remove pointless error check.
 1.147  10-Apr-2009  bouyer PR kern/41154: possible races in NFS server code

Fix some of the races (but probably not all of them) in the NFS server code.
nfssvc_nfsd(): change a splsoftclock()/spx() to mutex_enter/exit(&nfsd_lock)
(I guess it was forgotten when the nfsd code was made SMP safe)
m_freem(nd_nam) in nfsrv_slpderef() instead of nfsrv_zapsock() to
avoid possible use after free in nfssvc_nfsd()
Fix nfsrv_slpderef() to not release nfsd_lock before testing SLP_VALID
and reaquiring it just after. This could cause a use after free
of the slp if one thread is in nfsrv_slpderef() and the other one grabs
slp from nfssvc_sockpending and zap it.
 1.146  15-Mar-2009  cegger ansify function definitions
 1.145  14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.144  14-Mar-2009  dsl Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
 1.143  28-Nov-2008  pooka branches: 1.143.4;
g/c unused malloc types
 1.142  19-Nov-2008  ad Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
 1.141  14-Nov-2008  ad Remove COMPAT ifdefs that might as well be comments (i.e., they cost us
almost nothing).
 1.140  09-Oct-2008  christos branches: 1.140.2; 1.140.4;
do the proper ifdef dance for non-inet families
 1.139  28-Sep-2008  pooka Don't free nd_mrep in case of no reply. It is (at least in one
case) freed already within the rpc handler.

XXX: this line and another was originally committed with "don't
leak mbufs", but given that currently it can double-free an mbuf
and essentially crash the system, I'll opt for the leak. Needless
to say, this needs revisiting, but that requires a large scale
campaign due to the sticky nature of nfsm love.
 1.138  06-Aug-2008  plunky Convert socket options code to use a sockopt structure
instead of laying everything into an mbuf.

approved by core
 1.137  24-Jun-2008  ad branches: 1.137.2;
Replace references to getsock/getvnode.
 1.136  20-May-2008  ad branches: 1.136.2;
Make it compile.
 1.135  28-Apr-2008  yamt branches: 1.135.2;
as softint network processing is now safe to block,
make some mutexes adaptive.
 1.134  24-Apr-2008  ad branches: 1.134.2;
Merge the socket locking patch:

- Socket layer becomes MP safe.
- Unix protocols become MP safe.
- Allows protocol processing interrupts to safely block on locks.
- Fixes a number of race conditions.

With much feedback from matt@ and plunky@.
 1.133  23-Mar-2008  rmind branches: 1.133.2;
G/C l->l_locks.
OK by <ad>.
 1.132  21-Mar-2008  ad Catch up with descriptor handling changes. See kern_descrip.c revision
1.173 for details.
 1.131  28-Feb-2008  elad Introduce a new kauth action, KAUTH_NETWORK_NFS, and two requests,
KAUTH_REQ_NETWORK_NFS_EXPORT and KAUTH_REQ_NETWORK_NFS_SVC, and use them
to replace two KAUTH_GENERIC_ISSUSER calls in the NFS code.

Also replace two more with KAUTH_SYSTEM_MKNOD, where appropriate.

Documetnation and examples updated. More to come.
 1.130  02-Jan-2008  yamt branches: 1.130.2; 1.130.6;
use kmem_alloc instead of malloc.
 1.129  02-Jan-2008  ad Merge vmlocking2 to head.
 1.128  20-Dec-2007  dsl Convert all the system call entry points from:
int foo(struct lwp *l, void *v, register_t *retval)
to:
int foo(struct lwp *l, const struct foo_args *uap, register_t *retval)
Fixup compat code to not write into 'uap' and (in some cases) to actually
pass a correctly formatted 'uap' structure with the right name to the
next routine.
A few 'compat' routines that just call standard ones have been deleted.
All the 'compat' code compiles (along with the kernels required to test
build it).
98% done by automated scripts.
 1.127  04-Dec-2007  yamt branches: 1.127.4;
merge non-intrusive nfs changes from vmlocking.
 1.126  22-Nov-2007  yamt branches: 1.126.2;
nfssvc_nfsd: remove a wrong assertion.
 1.125  08-Oct-2007  ad branches: 1.125.2; 1.125.4;
Merge file descriptor locking, cwdi locking and cross-call changes
from the vmlocking branch.
 1.124  10-Aug-2007  yamt branches: 1.124.2; 1.124.4;
- instead of scanning an array of iods, maintain a list of idle iods.
- make nfs_getset_niothreads MP friendly.
 1.123  08-Aug-2007  yamt push kernel_lock a little.
 1.122  02-Aug-2007  yamt branches: 1.122.2; 1.122.4;
nfsrv_slpderef: add an assertion.
 1.121  02-Aug-2007  yamt nfssvc_nfsd: fix a wrong assertion. PR/36710 from Tobias Nygren.
 1.120  02-Aug-2007  yamt nfsrv_zapsock: update SLP_DOREC for consistency.
 1.119  02-Aug-2007  yamt nfssvc_nfsd: don't leave sockets with SLP_DISCONN.
 1.118  20-Jul-2007  yamt - fix decreasing of vfs.nfs.iothreads after the recent partial merge
of vmlocking.
- don't make nfsiod exit with requests left.
- make NFSSVC_BIOD a dummy so that nfsiod can be simplified.
 1.117  09-Jul-2007  ad branches: 1.117.2;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.116  22-Jun-2007  yamt - nfsrv_slpderef: fix a locking botch.
(should fix "slp->ns_sref == 0" assertion failures in nfsrv_init)
- add some related assertions.
 1.115  19-Jun-2007  yamt nfssvc_iod: fix nm_bufqiods accounting on exit.
 1.114  12-Jun-2007  yamt - nfssvc_nfsd: clear nfsd_slp when exiting.
(fix an assertion failure in rev.1.112.)

- nfsrv_init: add assertions.
 1.113  01-Jun-2007  yamt nfssvc_nfsd: check SPCF_SHOULDYIELD and yield cpu.
 1.112  01-Jun-2007  yamt nfssvc_nfsd: add assertions.
 1.111  01-Jun-2007  yamt use mutex and condvar.
 1.110  30-Apr-2007  yamt fix a lock leak in rev.1.109. pointed by Mindaugas R.
 1.109  29-Apr-2007  yamt use mutex and condver.
 1.108  19-Apr-2007  yamt hold proclist_mutex when calling psignal().
 1.107  04-Mar-2007  christos branches: 1.107.2; 1.107.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.106  22-Feb-2007  thorpej TRUE -> true, FALSE -> false
 1.105  09-Feb-2007  ad branches: 1.105.2;
Merge newlock2 to head.
 1.104  17-Jan-2007  yamt plug a mbuf leak.
 1.103  04-Jan-2007  elad Consistent usage of KAUTH_GENERIC_ISSUSER.
 1.102  28-Dec-2006  yamt remove several nqnfs definitions.
 1.101  27-Dec-2006  yamt - remove the rest of nqnfs.
- reject NFSMNT_MNTD and NFSMNT_KERB. (no users in tree.)
 1.100  27-Dec-2006  yamt remove nqnfs.
 1.99  09-Nov-2006  yamt branches: 1.99.2; 1.99.4;
remove some __unused in function parameters.
 1.98  22-Oct-2006  pooka kauth_cred_uucvt() -> kauth_uucred_to_cred(), introduce kauth_cred_to_uucred()

per tech-kern proposal
 1.97  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.96  23-Jul-2006  ad branches: 1.96.4; 1.96.6;
Use the LWP cached credentials where sane.
 1.95  07-Jun-2006  kardel merge FreeBSD timecounters from branch simonb-timecounters
- struct timeval time is gone
time.tv_sec -> time_second
- struct timeval mono_time is gone
mono_time.tv_sec -> time_uptime
- access to time via
{get,}{micro,nano,bin}time()
get* versions are fast but less precise
- support NTP nanokernel implementation (NTP API 4)
- further reading:
Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf
NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
 1.94  19-May-2006  yamt branches: 1.94.2;
- fix compilation problem for !NFSSERVER && NFS.
pointed by Tom Spindler on source-changes@.
- make nfs_srvdesc_pool static.
 1.93  18-May-2006  yamt - fix some leaks in nfsd, introduced by kauth changes.
- simplify code.
- add some assertions.
- wrap some long lines.
- remove an unnecessary ";".
 1.92  14-May-2006  elad integrate kauth.
 1.91  10-May-2006  mrg quell GCC 4.1 uninitialised variable warnings.

XXX: we should audit the tree for which old ones are no longer needed
after getting the older compilers out of the tree..
 1.90  15-Apr-2006  christos Coverity CID 1162: Prevent NULL deref.
 1.89  15-Apr-2006  christos Coverity CID 1165: Cannot have nfsiod without an lwp, so remove the superfluous
test.
 1.88  05-Jan-2006  yamt branches: 1.88.2; 1.88.4; 1.88.6; 1.88.8; 1.88.10;
ensure the export list is not changed during nfsd operations.
 1.87  03-Jan-2006  yamt fix a deadlock due to a spl problem.
 1.86  03-Jan-2006  yamt nfssvc_nfsd: reduce a chance for a slow peer to capture all our threads.
instead of sleeping to wait for the socket to send our reply,
just hand-off our reply to the thread which is holding the socket.
 1.85  03-Jan-2006  yamt improve nfsd locking.
- don't bother to take nfs_sndlock when doing nfsrv_rcv.
unlike client, we never reconnect.
- nfsrv_getstream: fix the case that m_split sleeps.
- free socket in nfsrv_slpderef rather than nfsrv_zapsock.
fix race with nfssvc_nfsd.
- while i'm here, remove NFSD_WAITING and NFSD_REQINPROG
as they are redundant.
- some comments and assertions.
 1.84  11-Dec-2005  christos branches: 1.84.2;
merge ktrace-lwp.
 1.83  25-Nov-2005  thorpej Use a once control to initialize the NFS server / client shared data
from nfs_vfs_init() or sys_nfssvc(). Remove the nfs_init() call from
main().
 1.82  23-Sep-2005  jmmv branches: 1.82.6;
Apply the NFS exports list rototill patch:

- Remove all NFS related stuff from file system specific code.
- Drop the vfs_checkexp hook and generalize it in the new nfs_check_export
function, thus removing redundancy from all file systems.
- Move all NFS export-related stuff from kern/vfs_subr.c to the new
file sys/nfs/nfs_export.c. The former was becoming large and its code
is always compiled, regardless of the build options. Using the latter,
the code is only compiled in when NFSSERVER is enabled. While doing this,
also make some functions in nfs_subs.c conditional to NFSSERVER.
- Add a new command in nfssvc(2), called NFSSVC_SETEXPORTSLIST, that takes a
path and a set of export entries. At the moment it can only clear the
exports list or append entries, one by one, but it is done in a way that
allows setting the whole set of entries atomically in the future (see the
comment in mountd_set_exports_list or in doc/TODO).
- Change mountd(8) to use the nfssvc(2) system call instead of mount(2) so
that it becomes file system agnostic. In fact, all this whole thing was
done to remove a 'XXX' block from this utility!
- Change the mount*, newfs and fsck* userland utilities to not deal with NFS
exports initialization; done internally by the kernel when initializing
the NFS support for each file system.
- Implement an interface for VFS (called VFS hooks) so that several kernel
subsystems can run arbitrary code upon receipt of specific VFS events.
At the moment, this only provides support for unmount and is used to
destroy NFS exports lists from the file systems being unmounted, though it
has room for extension.

Thanks go to yamt@, chs@, thorpej@, wrstuden@ and others for their comments
and advice in the development of this patch.
 1.81  11-Sep-2005  rpaulo Wrap a multiple line comment so that it doesn't go beyond 80 columns.
 1.80  03-Aug-2005  onoe Fix mbuf leak in nfssvc_nfsd().
 1.79  07-Jul-2005  christos 1. use p = uio->uio_procp consistently and eliminate suspicious uses
of curproc (where uio->uio_procp should be used?). Don't do this
for nfs_commit(), because yamt says it is possibly wrong.
2. nfs_doio() does not use struct proc; remove it and the code to compute it.
3. use copyin_proc() and copyout_proc() instead of copyin() and copyout().
4. check return of copyout_proc(). and mark return from copyin_proc() XXX
5. Eliminate check p == curproc assertion check from nfs_write;
nfs_read does not have it and we might be called in a different
process context anyway (PR 20138).
 1.78  26-Feb-2005  perry branches: 1.78.4;
nuke trailing whitespace
 1.77  10-Jun-2004  yamt branches: 1.77.4; 1.77.6;
make sure that nfssvc sockets are zapped before being freed.
 1.76  10-Jun-2004  yamt nfsrv_zapsock: fix an inverted condition in nfs_syscall.c rev.1.74.
 1.75  22-May-2004  jonathan Eliminate several uses of `curproc' from the socket-layer code and from NFS.

Add a new explicit `struct proc *p' argument to socreate(), sosend().
Use that argument instead of curproc. Follow-on changes to pass that
argument to socreate(), sosend(), and (*so->so_send)() calls.
These changes reviewed and independently recoded by Matt Thomas.

Changes to soreceive() and (*dom->dom_exernalize() from Matt Thomas:
pass soreceive()'s struct uio* uio->uio_procp to unp_externalize().
Eliminate curproc from unp_externalize. Also, now soreceive() uses
its uio->uio_procp value, pass that same value downward to
((pr->pru_usrreq)() calls for consistency, instead of (struct proc * )0.

Similar changes in sys/nfs to eliminate (most) uses of curproc,
either via the req-> r_procp field of a struct nfsreq *req argument,
or by passing down new explicit struct proc * arguments.

Reviewed by: Matt Thomas, posted to tech-kern.
NB: The (*pr->pru_usrreq)() change should be tested on more (all!) protocols.
 1.74  17-Mar-2004  yamt branches: 1.74.2;
nfsrv_zapsock: zap an nfsd socket only if it's valid.
 1.73  17-Mar-2004  yamt nfsrv_zapsock: remove slp from nfssvc_sockpending before zapping.
 1.72  17-Mar-2004  yamt SHUT_RDWR rather than bare 2.
 1.71  07-Dec-2003  thorpej Fix a couple of small whitespace errors.
 1.70  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.69  29-Jun-2003  fvdl branches: 1.69.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.68  28-Jun-2003  darrenr Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
 1.67  26-Jun-2003  yamt add appropriate #ifdef's.
pointed by Simon Burge on source-changes
and by some people in private mail.
 1.66  25-Jun-2003  yamt - instead of scaning a list when looking up
{a idle thread, a socket with pending requests},
maintain dedicated list of them.
- add spin locks.
 1.65  26-May-2003  yamt make duplicated codes to a function, nfsrv_sockalloc.
 1.64  22-May-2003  yamt poolify nfsrv_descript.
 1.63  22-May-2003  yamt indent (nfssvc_nfsd)
 1.62  21-May-2003  yamt - use FREE not free for MALLOC'ed memory.
- remove unneeded caddr_t casts.
 1.61  21-May-2003  yamt remove local definitions of TRUE and FALSE.
 1.60  07-May-2003  yamt simple lock for nfs iod.
 1.59  07-May-2003  yamt indent.
 1.58  09-Apr-2003  yamt make per-iod datas together.
 1.57  02-Apr-2003  yamt use queue manipulation macros.
 1.56  31-Mar-2003  yamt adapt to file interlock.
 1.55  26-Feb-2003  matt Add MBUFTRACE kernel option.
Do a little mbuf rework while here. Change all uses of MGET*(*, M_WAIT, *)
to m_get*(M_WAIT, *). These are not performance critical and making them
call m_get saves considerable space. Add m_clget analogue of MCLGET and
make corresponding change for M_WAIT uses.
Modify netinet, gem, fxp, tulip, nfs to support MBUFTRACE.
Begin to change netstat to use sysctl.
 1.54  01-Feb-2003  thorpej Add extensible malloc types, adapted from FreeBSD. This turns
malloc types into a structure, a pointer to which is passed around,
instead of an int constant. Allow the limit to be adjusted when the
malloc type is defined, or with a function call, as suggested by
Jonathan Stone.
 1.53  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.52  14-Sep-2002  chs pick up a fix from openbsd:
revision 1.33
date: 2002/07/24 23:32:11; author: nordin; state: Exp; lines: +3 -3
Use sizeof(array) instead of sizeof(array *) for bcopy length. ok deraadt@
 1.51  12-May-2002  matt Eliminate commons
 1.50  29-Nov-2001  christos sprinkle crcvt()
 1.49  10-Nov-2001  lukem add RCSIDs
 1.48  27-Nov-2000  chs branches: 1.48.2; 1.48.4; 1.48.8;
Initial integration of the Unified Buffer Cache project.
 1.47  24-Nov-2000  chs put more ISO bits under ifdef ISO.
 1.46  24-Oct-2000  matt Change a DIAGNOSTIC panic slightly to print the locked vnodes and to just
print a diagnostic but not panic.
 1.45  23-Oct-2000  chs fix nfs iod management so we don't lose i/os when iods die.
 1.44  19-Sep-2000  fvdl Don't do write gathering for v3; it makes no sense. Unless the client
is broken and does sync writes all the time, but that's the client's
fault.
 1.43  19-Sep-2000  bjh21 New kernel option, NFS_V2_ONLY, which aims to reduce the NFS client to just
that required to support NFSv2 mounts. Not finished yet, but already
provides some 44k of saving in code size on arm26. More savings, and some
documentation, are still to come.
 1.42  23-Aug-2000  nathanw Fix typo in comment.
 1.41  09-Jun-2000  fvdl branches: 1.41.2;
Some tweaks to enable NFS over IPv6. The special-casing of AF_INET
should really be removed.
 1.40  07-May-2000  tsarna branches: 1.40.2;
Auto-adjusting vfs.nfs.iothreads: when mounting the first nfs
filesystem, if the number of threads is "-1", meaning it's never been
set, then set it to 4. You can override by setting this to some other
number (including 0) before or after mounting, of course.

Thanks to whoever it was that suggested this on ICB... sorry I don't
remember who.
 1.39  15-Apr-2000  tsarna Death to nfsiod!

It is replaced by kernel threads that do the same thing. The number of
kernel threads used is set with the vfs.nfs.iothreads sysctl.
 1.38  30-Mar-2000  augustss Remove register declarations.
 1.37  30-Mar-2000  simonb Delete redundant decl of nfs_pub - it's in <sys/mount.h>.
Delete redundant decl of nfsrv_zapsock() - it's in <nfs/nfs_var.h>.
 1.36  29-Jun-1999  wrstuden branches: 1.36.2;
Add fhopen, fhstat, fhstatfs syscalls. Also move getfh in from the nfs
syscall code.
 1.35  05-May-1999  thorpej Add "use counting" to file entries. When closing a file, and it's reference
count is 0, wait for use count to drain before finishing the close.

This is necessary in order for multiple processes to safely share file
descriptor tables.
 1.34  04-May-1999  sommerfe Include checks (under DIAGNOSTIC) to catch vnode lock leaks soon after
they happen (while we still know which remote op is to blame for it),
instead of later when we trip over the already-locked vnode.
 1.33  08-Nov-1998  mycroft branches: 1.33.6;
Do not permit the u area for nfsd or nfsiod to be swapped out.
 1.32  09-Aug-1998  perry bzero->memset, bcopy->memcpy, bcmp->memcmp
 1.31  05-Jul-1998  jonathan defopt ISO TPIP.
 1.30  25-Jun-1998  thorpej defopt NFSSERVER
 1.29  25-Apr-1998  matt Adapt to new sosend/soreceive and upcall (now down in sowakeup)
 1.28  19-Feb-1998  thorpej Include the NFS option header.
 1.27  10-Oct-1997  fvdl branches: 1.27.2;
* New directory entry caching system. Provides full caching of any
directory cookie that may be thrown back at us from userspace, up
to a size limit. Fixes double entry problem.
* Split flags for internal and external use in the NFS mount structure.
* Fix some buffer structure fields that weren're being used correctly.
* Fix missing directory cache inval call in nfs_open.
* Limit on NFS_DIRBLKSIZ no longer needed, bumped to the more reasonable
value of 8k.
* Various other things that I forget, all related to the dir caching
somehow, though.
 1.26  24-Jun-1997  fvdl branches: 1.26.4;
Invalidate nfs_pub info when reinitting the NFS server.
 1.25  24-Mar-1997  mycroft KNF police.
 1.24  31-Jan-1997  thorpej NFSCLIENT -> NFS.
 1.23  03-Dec-1996  thorpej branches: 1.23.2;
Make NFSSERVER work without NFSCLIENT. This is achieved by splitting
the client and server/shared data initialization into separate functions,
and calling the server/shared initialization directly from main().
Problem noted in PR #1308 (Kenneth Stailey) and PR #1780 (Chris Demetriou).
Fix suggested in PR #1780 by Chris Demetriou, and munged a bit by me,
and OK'd by Frank van der Linden <fvdl@netbsd.org>.
 1.22  02-Dec-1996  thorpej NFS performance improvement from Doug Rabson/FreeBSD:

Improve the queuing algorithms used by NFS' asynchronous i/o. The
existing mechanism uses a global queue for some buffers and the
vp->b_dirtyblkhd queue for others. This turns sequential writes into
randomly ordered writes to the server, affecting both read and write
performance. The existing mechanism also copes badly with hung
servers, tending to block accesses to other servers when all the iods
are waiting for a hung server.

The new mechanism uses a queue for each mount point. All asynchronous
i/o goes through this queue which preserves the ordering of requests.
A simple mechanism ensures that the iods are shared out fairly between
active mount points.

Reviewed/integrated/approved by Frank van der Linden <fvdl@netbsd.org>
 1.21  13-Oct-1996  christos revert kprintf changes
 1.20  10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.19  18-Feb-1996  fvdl Bring in a merge of Rick Macklem's NFSv3 code from Lite2
 1.18  09-Feb-1996  christos nfs prototype changes
 1.17  19-Dec-1995  cgd changes to make this work on systems where pointers & longs are 64 bits.
This is mostly just changes to make the stuff that goes over the wire
use fixed-size types.
 1.16  07-Oct-1995  mycroft Prefix names of system call implementation functions with `sys_'.
 1.15  19-Sep-1995  thorpej Make system calls conform to a standard prototype and bring those
prototypes into scope.
 1.14  13-Aug-1995  mycroft splnet --> splsoftnet
 1.13  20-Oct-1994  cgd update for new syscall args description mechanism
 1.12  17-Aug-1994  mycroft Convert some more lists and queues.
 1.11  29-Jun-1994  cgd branches: 1.11.2;
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
 1.10  08-Jun-1994  mycroft Update to 4.4-Lite fs code, with local changes.
 1.9  14-Feb-1994  cgd be more intelligent with credentials, so nfsd's don't inherit
strange credentials. This doesn't actually have any effect on
performance, because the remote cred is used for all operations,
anyway. however, it makes "ps" et al. look normal, because the
proc's ucred is no longer clobbered.
 1.8  06-Feb-1994  mycroft Eliminate some more uses of b_actl.
 1.7  18-Dec-1993  mycroft Canonicalize all #includes.
 1.6  17-Jul-1993  mycroft branches: 1.6.4;
Finish moving struct definitions outside of function declarations.
 1.5  22-May-1993  cgd add include of select.h if necessary for protos, or delete if extraneous
 1.4  18-May-1993  cgd make kernel select interface be one-stop shopping & clean it all up.
 1.3  10-Apr-1993  glass migrated code to make split possible
 1.2  21-Mar-1993  cgd after 0.2.2 "stable" patches applied
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.3  01-Mar-1998  fvdl Import 4.4BSD-Lite2
 1.1.1.2  01-Mar-1998  fvdl Import 4.4BSD-Lite for reference
 1.1.1.1  21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.6.4.1  14-Nov-1993  mycroft Canonicalize all #includes.
 1.11.2.1  19-Aug-1994  mycroft update from trunk
 1.23.2.1  14-Jan-1997  thorpej Snapshot of work-in-progress, committed to private branch.

These changes implement machine-independent root device and file system
selection. Notable features:

- All ports behave in a consistent manner regarding root
device selection.
- No more "options GENERIC"; all kernels have the ability
to boot with RB_ASKNAME to select root device and file system
type.
- Root file system type can be wildcarded; a machine-independent
function will try all possible file systems for the selected
root device until one succeeds.
- If the root file system fails to mount, the operator will
be given the chance to select a new root device and file
system type, rather than having the machine simply panic.
- nfs_mountroot() no longer panics if any part of the NFS
mount process fails; it now returns an error, giving the
operator a chance to recover.
- New, more consistent, config(8) grammar. The constructs:

config netbsd swap generic
config netbsd root on nfs

have been replaced with:

config netbsd root on ? type ?
config netbsd root on ? type nfs

Additionally, the operator may select or wildcard root file
system type in the kernel configuration file:

config netbsd root on cd0a type cd9660

config(8) now requires that a "root" specification be
made. "root" may be wired down or wildcarded. "swap" and
"dump" specifications are optional, and follow previous
semantics.

- config(8) has a new "file-system" keyword, used to configure
file systems into the kernel. Eventually, this will be used
to generate the default vfssw[].

- "options NFSCLIENT" is obsolete, and is replaced by
"file-system NFS". "options NFSSERVER" still exists, since
NFS server support is independent of the NFS file system
client.

- sys/arch/<foo>/<foo>/swapgeneric.c is no longer used, and
will be removed; all information is now generated by config(8).

As of this commit, all ports except arm32 have been updated to use
the new setroot(). Only SPARC, i386, and Alpha ports have been
tested at this time. Port masters should test these changes on their
ports, and report any problems back to me.

More changes are on their way, including RB_ASKNAME support in
nfs_mountroot() (to prompt for server address and path) and, potentially,
the ability to select rarp/bootparam or bootp in nfs_mountroot().
 1.26.4.1  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.27.2.1  08-Nov-1998  cgd pull up rev 1.33 from trunk (mycroft)
 1.33.6.2  25-Oct-2000  he Pull up revision 1.45 (via patch, requested by chs):
Fix a bug where NFS async I/O requests will be lost if the number
of I/O daemons is ever reduced to a smaller but non-zero number.
 1.33.6.1  04-May-1999  perry branches: 1.33.6.1.2;
pullup 1.33->1.34 (sommerfeld)
 1.33.6.1.2.2  01-Jul-1999  thorpej Sync w/ -current.
 1.33.6.1.2.1  21-Jun-1999  thorpej Sync w/ -current.
 1.36.2.2  08-Dec-2000  bouyer Sync with HEAD.
 1.36.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.40.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.41.2.3  09-Feb-2002  he Pull up revision 1.50 (requested by christos):
Widen cr_ref to prevent overflow.
 1.41.2.2  14-Dec-2000  he Pull up revisions 1.44-1.45 (requested by fvdl):
Improve NFS performance, possibly with as much as 100% in
throughput. Please note: this implies a kernel interface change,
VOP_FSYNC gains two arguments.
 1.41.2.1  24-Oct-2000  tv Pullup 1.45 [chs]:
fix nfs iod management so we don't lose i/os when iods die.
 1.48.8.1  12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.48.4.3  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.48.4.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.48.4.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.48.2.9  17-Sep-2002  nathanw Catch up to -current.
 1.48.2.8  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.48.2.7  24-Jun-2002  nathanw Curproc->curlwp renaming.

Change uses of "curproc->l_proc" back to "curproc", which is more like the
original use. Bare uses of "curproc" are now "curlwp".

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).
 1.48.2.6  20-Jun-2002  nathanw Catch up to -current.
 1.48.2.5  29-May-2002  nathanw #include <sys/sa.h> before <sys/syscallargs.h>, to provide sa_upcall_t
now that <sys/param.h> doesn't include <sys/sa.h>.

(Behold the Power of Ed)
 1.48.2.4  08-Jan-2002  nathanw Catch up to -current.
 1.48.2.3  27-Nov-2001  thorpej Make lockmgr() lwp-aware:
- Locks are counted against LWPs, not procs.
- When we record the lockholder in the lock structure, we need to
also record the lwpid.
- When we are checking who holds the lock, also consider lwpid.

Fixes a "locking against myself" panic reported by Allen Briggs that
could be easily triggered by redirecting the output of an LWP-using
program to a file.
 1.48.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.48.2.1  05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.69.2.7  11-Dec-2005  christos Sync with head.
 1.69.2.6  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.69.2.5  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.69.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.69.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.69.2.2  03-Aug-2004  skrll Sync with HEAD
 1.69.2.1  02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.74.2.1  14-Jun-2004  jmc Pullup rev 1.76 (requested by yamt in ticket #466)

nfsrv_zapsock: fix an inverted condition in nfs_syscall.c rev.1.74.
 1.77.6.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.77.4.1  29-Apr-2005  kent sync with -current
 1.78.4.11  24-Mar-2008  yamt sync with head.
 1.78.4.10  17-Mar-2008  yamt sync with head.
 1.78.4.9  27-Feb-2008  yamt revert incomplete nfs client locking for now.
 1.78.4.8  15-Feb-2008  yamt - sprinkle some locks.
- disable MNT_UPDATE because it involves too much locking headache.
- don't overwrite other bits in v_vflags when setting VV_ROOT.
 1.78.4.7  21-Jan-2008  yamt sync with head
 1.78.4.6  07-Dec-2007  yamt sync with head
 1.78.4.5  27-Oct-2007  yamt sync with head.
 1.78.4.4  03-Sep-2007  yamt sync with head.
 1.78.4.3  26-Feb-2007  yamt sync with head.
 1.78.4.2  30-Dec-2006  yamt sync with head.
 1.78.4.1  21-Jun-2006  yamt sync with head.
 1.82.6.1  29-Nov-2005  yamt sync with head.
 1.84.2.1  15-Jan-2006  yamt sync with head.
 1.88.10.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.88.8.9  11-May-2006  elad sync with head
 1.88.8.8  06-May-2006  christos - Move kauth_cred_t declaration to <sys/types.h>
- Cleanup struct ucred; forward declarations that are unused.
- Don't include <sys/kauth.h> in any header, but include it in the c files
that need it.

Approved by core.
 1.88.8.7  19-Apr-2006  elad sync with head.
 1.88.8.6  14-Apr-2006  elad Plug some possible leaks of kauth_cred_t.
 1.88.8.5  12-Mar-2006  elad Rename kauth_cred_compare() to kauth_cred_uucmp(), and kauth_cred_convert()
to kauth_cred_uucvt(). This makes it clearer that we're working on struct
uucred.

Inspired by comments from yamt@.
 1.88.8.4  10-Mar-2006  elad Cleanup more interface abuse.

Make nfsrv_setcred() take a kauth_cred_t * as outcred. The original code
just modified it directly; we can't do that, nor do we want to.

Get rid of another case of kauth_cred_zero() followed by kauth_cred_hold()
and use kauth_cred_clone() to make sure we don't leave out important
members.

Add another DIAGNOSTIC check for reference count of above one.

Again, this should be tested.
 1.88.8.3  10-Mar-2006  elad Some cleanup.

kauth_cred_setrefcnt() was only called after kauth_cred_convert() in NFS
code to convert a struct uucred to kauth_cred_t. Since there's no valid
use for such a function, make kauth_cred_convert() set the reference
count to 1 and eliminate the need for kauth_cred_setrefcnt() entirely.

Motivated by comments from yamt@ and thorpej@.
 1.88.8.2  10-Mar-2006  elad generic_authorize() -> kauth_authorize_generic().
 1.88.8.1  08-Mar-2006  elad Adapt to kernel authorization KPI.

This could use some testing...
 1.88.6.3  11-Aug-2006  yamt sync with head
 1.88.6.2  26-Jun-2006  yamt sync with head.
 1.88.6.1  24-May-2006  yamt sync with head.
 1.88.4.3  01-Jun-2006  kardel Sync with head.
 1.88.4.2  22-Apr-2006  simonb Sync with head.
 1.88.4.1  04-Feb-2006  simonb Adapt for timecounters: mostly use get*time() and use "time_second"
instead of "time.tv_sec".
 1.88.2.1  09-Sep-2006  rpaulo sync with head
 1.94.2.2  19-Jun-2006  chap Sync with head.
 1.94.2.1  19-May-2006  chap file nfs_syscalls.c was added on branch chap-midi on 2006-06-19 04:10:37 +0000
 1.96.6.2  10-Dec-2006  yamt sync with head.
 1.96.6.1  22-Oct-2006  yamt sync with head
 1.96.4.4  01-Feb-2007  ad Sync with head.
 1.96.4.3  30-Jan-2007  ad Remove support for SA. Ok core@.
 1.96.4.2  12-Jan-2007  ad Sync with head.
 1.96.4.1  18-Nov-2006  ad Sync with head.
 1.99.4.1  03-Sep-2007  wrstuden Sync w/ NetBSD-4-RC_1
 1.99.2.1  05-Jun-2007  bouyer Pull up following revision(s) (requested by yamt in ticket #705):
sys/nfs/nfs_syscalls.c: revision 1.104
plug a mbuf leak.
 1.105.2.3  07-May-2007  yamt sync with head.
 1.105.2.2  12-Mar-2007  rmind Sync with HEAD.
 1.105.2.1  28-Feb-2007  yamt sync with head. (somehow missed in the previous)
 1.107.4.1  11-Jul-2007  mjf Sync with head.
 1.107.2.13  27-Oct-2007  yamt call soshutdown with kernel_lock held.
 1.107.2.12  26-Aug-2007  yamt - mark nfssvc(2) MPSAFE and move the most of nfsd out of the kernel lock.
- remove unused ns_solock.
- remove some of KERNEL_LOCK/UNLOCK which are not necessary on this branch.
 1.107.2.11  20-Aug-2007  ad Sync with HEAD.
 1.107.2.10  15-Jul-2007  ad Sync with head.
 1.107.2.9  18-Jun-2007  yamt fix a merge botch.
 1.107.2.8  09-Jun-2007  ad Sync with head.
 1.107.2.7  08-Jun-2007  ad Sync with head.
 1.107.2.6  13-May-2007  ad - Pass the error number and residual count to biodone(), and let it handle
setting error indicators. Prepare to eliminate B_ERROR.
- Add a flag argument to brelse() to be set into the buf's flags, instead
of doing it directly. Typically used to set B_INVAL.
- Add a "struct cpu_info *" argument to kthread_create(), to be used to
create bound threads. Change "bool mpsafe" to "int flags".
- Allow exit of LWPs in the IDL state when (l != curlwp).
- More locking fixes & conversion to the new API.
 1.107.2.5  10-Apr-2007  ad Nuke the deferred kthread creation stuff, as it's no longer needed.
Pointed out by thorpej@.
 1.107.2.4  09-Apr-2007  ad - Add two new arguments to kthread_create1: pri_t pri, bool mpsafe.
- Fork kthreads off proc0 as new LWPs, not new processes.
 1.107.2.3  05-Apr-2007  ad Compile fixes.
 1.107.2.2  21-Mar-2007  ad - Put a lock around the proc's CWD info (work in progress).
- Replace some more simplelocks.
- Make lbolt a condvar.
 1.107.2.1  13-Mar-2007  ad Pull in the initial set of changes for the vmlocking branch.
 1.117.2.1  15-Aug-2007  skrll Sync with HEAD.
 1.122.4.2  02-Aug-2007  yamt nfsrv_slpderef: add an assertion.
 1.122.4.1  02-Aug-2007  yamt file nfs_syscalls.c was added on branch matt-mips64 on 2007-08-02 12:46:04 +0000
 1.122.2.5  09-Dec-2007  jmcneill Sync with HEAD.
 1.122.2.4  27-Nov-2007  joerg Sync with HEAD. amd64 Xen support needs testing.
 1.122.2.3  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.122.2.2  16-Aug-2007  jmcneill Sync with HEAD.
 1.122.2.1  09-Aug-2007  jmcneill Sync with HEAD.
 1.124.4.1  14-Oct-2007  yamt sync with head.
 1.124.2.3  23-Mar-2008  matt sync with HEAD
 1.124.2.2  09-Jan-2008  matt sync with HEAD
 1.124.2.1  06-Nov-2007  matt sync with HEAD
 1.125.4.3  18-Feb-2008  mjf Sync with HEAD.
 1.125.4.2  27-Dec-2007  mjf Sync with HEAD.
 1.125.4.1  08-Dec-2007  mjf Sync with HEAD.
 1.125.2.1  22-Nov-2007  bouyer Sync with HEAD
 1.126.2.4  29-Dec-2007  yamt to prepare merge, put nfsd back under kernel_lock for now.
 1.126.2.3  26-Dec-2007  ad Sync with head.
 1.126.2.2  08-Dec-2007  ad Sync with head.
 1.126.2.1  04-Dec-2007  ad Pull the vmlocking changes into a new branch.
 1.127.4.1  02-Jan-2008  bouyer Sync with HEAD
 1.130.6.6  17-Jan-2009  mjf Sync with HEAD.
 1.130.6.5  05-Oct-2008  mjf Sync with HEAD.
 1.130.6.4  28-Sep-2008  mjf Sync with HEAD.
 1.130.6.3  29-Jun-2008  mjf Sync with HEAD.
 1.130.6.2  02-Jun-2008  mjf Sync with HEAD.
 1.130.6.1  03-Apr-2008  mjf Sync with HEAD.
 1.130.2.1  24-Mar-2008  keiichi sync with head.
 1.133.2.2  04-Jun-2008  yamt sync with head
 1.133.2.1  18-May-2008  yamt sync with head.
 1.134.2.7  11-Mar-2010  yamt sync with head
 1.134.2.6  16-Sep-2009  yamt sync with head
 1.134.2.5  18-Jul-2009  yamt sync with head.
 1.134.2.4  20-Jun-2009  yamt sync with head
 1.134.2.3  04-May-2009  yamt sync with head.
 1.134.2.2  16-May-2008  yamt sync with head.
 1.134.2.1  27-Apr-2008  yamt commit some work-in-progress changes to make nfs client mp-safe to a branch,
so that they won't get lost.
- sprinkle some locking
- mark the filesystem, nfstimer callout, and kq kthread mp-safe
- add assertions and comments
- disable upgrade mount for now
- some unrelated cosmetic changes
 1.135.2.5  10-Oct-2008  skrll Sync with HEAD.
 1.135.2.4  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.135.2.3  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.135.2.2  14-May-2008  wrstuden Per discussion with ad, remove most of the #include <sys/sa.h> lines
as they were including sa.h just for the type(s) needed for syscallargs.h.

Instead, create a new file, sys/satypes.h, which contains just the
types needed for syscallargs.h. Yes, there's only one now, but that
may change and it's probably more likely to change if it'd be difficult
to handle. :-)

Per discussion with matt at n dot o, add an include of satypes.h to
sigtypes.h. Upcall handlers are kinda signal handlers, and signalling
is the header file that's already included for syscallargs.h that
closest matches SA.

This shaves about 3000 lines off of the diff of the branch relative
to the base. That also represents about 18% of the total before this
checkin.

I think this reduction is very good thing.
 1.135.2.1  10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
 1.136.2.1  27-Jun-2008  simonb Sync with head.
 1.137.2.2  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.137.2.1  19-Oct-2008  haad Sync with HEAD.
 1.140.4.1  13-Apr-2009  snj Pull up following revision(s) (requested by ad in ticket #701):
sys/nfs/nfs_syscalls.c: revision 1.147
PR kern/41154: possible races in NFS server code
Fix some of the races (but probably not all of them) in the NFS server code.
nfssvc_nfsd(): change a splsoftclock()/spx() to mutex_enter/exit(&nfsd_lock)
(I guess it was forgotten when the nfsd code was made SMP safe)
m_freem(nd_nam) in nfsrv_slpderef() instead of nfsrv_zapsock() to
avoid possible use after free in nfssvc_nfsd()
Fix nfsrv_slpderef() to not release nfsd_lock before testing SLP_VALID
and reaquiring it just after. This could cause a use after free
of the slp if one thread is in nfsrv_slpderef() and the other one grabs
slp from nfssvc_sockpending and zap it.
 1.140.2.2  28-Apr-2009  skrll Sync with HEAD.
 1.140.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.143.4.2  23-Jul-2009  jym Sync with HEAD.
 1.143.4.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.153.26.1  18-May-2014  rmind sync with head
 1.153.22.2  03-Dec-2017  jdolecek update from HEAD
 1.153.22.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.153.12.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.154.4.1  04-Nov-2015  riz Pull up following revision(s) (requested by mrg in ticket #956):
sys/compat/netbsd32/files.netbsd32: revision 1.36
sys/compat/netbsd32/netbsd32_sysent.c: revision 1.115
sys/compat/netbsd32/netbsd32_syscallargs.h: revision 1.116
sys/nfs/nfs_var.h: revision 1.93
sys/compat/netbsd32/netbsd32_conv.h: revision 1.30
sys/compat/netbsd32/netbsd32_syscall.h: revision 1.116
sys/compat/netbsd32/netbsd32_syscalls.c: revision 1.115
sys/compat/netbsd32/netbsd32_nfssvc.c: revision 1.1
sys/compat/netbsd32/netbsd32_nfssvc.c: revision 1.3
sys/nfs/nfs_syscalls.c: revision 1.156
sys/compat/netbsd32/syscalls.master: revision 1.108
sys/compat/netbsd32/netbsd32.h: revision 1.107
add netbsd32 support for nfssvc(2). we do this by defining 5 copyin/out
functions that do all the ugly work, are just plain copyin/out for the
native system calls, and do the necessary translations for netbsd32.
with this i'm able to run 32 bit nfsd and mountd on 64 bit kernel and
mount the file systems remotely.
don't copy the first netbsd32_export_args nexports times, but actually
advance the userland pointer each entry through the loop. oops.
 1.155.2.3  28-Aug-2017  skrll Sync with HEAD
 1.155.2.2  09-Jul-2016  skrll Sync with HEAD
 1.155.2.1  22-Sep-2015  skrll Sync with HEAD
 1.157.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.157.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.159.2.1  22-Mar-2018  pgoyette Synch with HEAD, resolve conflicts
 1.160.2.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.160.2.1  10-Jun-2019  christos Sync with HEAD
 1.162.12.1  06-Jun-2021  cjep sync with head
 1.162.8.1  17-Jun-2021  thorpej Sync w/ HEAD.

RSS XML Feed