History log of /openbsd-current/sys/nfs/nfs_var.h
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.65 04-May-2024 jsg

remove prototypes for removed functions


# 1.64 30-Apr-2024 miod

Convert all the NFS macros (in nfsm_subs.h) into inline functions with the
appropriate extra arguments.

This (hopefully) completes the unmessyfication work started by thib@ a long,
long time ago (in a galaxy far away).

The conversion logic has been:
- nfsm_dissect has been turned into an rvalue expression, leaving the
cast operation up to its caller.
- macros which had three different exit paths (return, goto nfsmout or
fallthrough) have been split so that no macros have more than two exit paths.
- then they have been modified to return a value, which lets the caller
figure out what exit path is needed.
- local variables abused by the macros are now local variables of the new
inline functions.

This single commit is the sum of 25 intermediate diffs, which have all been
carefully reviewed by (at least) jsg@ and semarie@.

Tested with v2 and v3 servers and clients.

ok jsg@ semarie@


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE OPENBSD_7_4_BASE OPENBSD_7_5_BASE
# 1.63 22-Feb-2017 mpi

Keep local definitions local.

"good work" deraadt@, ok visa@


# 1.62 27-Sep-2016 dlg

replace the use of RB macros with the RBT functions.


Revision tags: OPENBSD_6_0_BASE
# 1.61 29-Apr-2016 beck

Fix some gibbering horrors due to uninitialized struct nameidata's

1) turn NDINITAT into a function and make the macros point to it
with the later goal of getting rid of them.

2) Sweep the kernel for places where people make a struct nameidata manually
on the stack and fill in what they hope are the required fields and count
on prayer and clean living to always get them right. Instead use NDINIT
everywhere. NFS was especially bad for this and there have likely
been things lurking there for a while.

3) Add a couple of strategic KASSERT's to catch future offenders.

ok krw@ sthen@ deraadt@


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE
# 1.60 11-Jun-2013 deraadt

final removal of daddr64_t. daddr_t has been 64 bit for a long enough
test period; i think 3 years ago the last bugs fell out.
ok otto beck others


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.59 12-Apr-2010 beck

Don't jump the queue if we have to wait on the client side because
the nfs_bufq is full - instead tsleep waiting for one of our nfsiod's
to free up space for us in the queue so we can enqueue on the end.

ok blambert@, tedu@, oga@


Revision tags: OPENBSD_4_7_BASE
# 1.58 02-Sep-2009 thib

Backout the asyncio/aiod change, as it causes buf's to get hung.
problem noticed by deraadt@

ok beck@


# 1.57 20-Aug-2009 thib

Rework the way we do async I/O in nfs. Introduce separate buf queues for
each mount, and when work is "found", peg an aiod to that mount todo the
I/O. Make nfs_asyncio() a bit smarter when deciding when to do asyncio
and when to force it sync, this is done by keeping the aiod's one two lists,
an "idle" and an "all" list, so asyncio is only done when there are aiods
hanging around todo it for us or are already pegged to the mount.

Idea liked by at least beck@ (and I think art@).
Extensive testing done by myself and jasper and a few others on various
arch's.

Ideas/Code from Net/Free.

OK blambert@.


# 1.56 13-Aug-2009 blambert

Teach nfsm_fhtom about nfsm_info structs

ok thib@


# 1.55 13-Aug-2009 blambert

change version 3 post-operation attribute building function to not
use mbufs directly, but the shiny new nfsm_info struct

ok thib@


# 1.54 10-Aug-2009 thib

Use an RB tree instead of a hashtable for fh/node lookups.

Idea from NetBSD.

OK blambert@


# 1.53 10-Aug-2009 thib

Remove the v2 writegather code. It did help alot back in the 80s
but extensive performance benchmarking done by myself and jasper@
has shown that it doesn't help, at all - even on vaxens and in some
cases it makes things significantly slower.

"this excites me sexually" jetpack@
Tested by jasper@.
OK blambert@


# 1.52 04-Aug-2009 thib

group all of the on-stack variables that are uses by the nfsm_macros
to keep the data munging "state" into an nfsm_info structure. Each
function now has this structure on its stack, and it and its members
are now passed around so that the macros/functions can work there magic.

this will make removing the nfsm_* macros way easier.

Idea/code picked up from DragonflyBSD.

Tested by krw@, jacekm@ and myself.

OK blambert@.


Revision tags: OPENBSD_4_6_BASE
# 1.51 04-Jun-2009 blambert

simplify argument list for nfssvc_nfsd()

ok thib@


# 1.50 13-Apr-2009 blambert

Convert macros to functions to reduce kernel memory usage.

In snaps for a while (way too long, according to deraadt@)


# 1.49 30-Mar-2009 blambert

Convert a sizeable macro to a much-leaner function. Saves (IIRC) 5k on i386.

In snaps for a while.


Revision tags: OPENBSD_4_5_BASE
# 1.48 20-Jan-2009 blambert

Start reworking NFS client mbuf handling by creating an interface which
requires well-formed mbuf chains to work. Existing function name is now
a wrapper to this interface. Much, much more work to follow which will
build on this.

Truly change we can believe in.

ok thib@, who would have preferred this in two commits, but I'm impatient :)

testing on multiple arches (i386, arm, amd64, and sparc64 at least) by many,
thanks to all who did so


# 1.47 18-Jan-2009 blambert

remove function which only called nfssvc_iod(), and pass nfssvc_iod()
to kthread_create()

ok thib@


# 1.46 16-Jan-2009 thib

turn nfs_msg into void functions, also make it take an nfsreq
argument since all of the info we need is there, makes it and
the use it a tad bit nicer.

ok blambert@


# 1.45 15-Jan-2009 thib

remove prototypes for nonexistent functions


# 1.44 16-Oct-2008 blambert

Don't hide the fact that NFS uses vop_generic_* functions behind
#define's in nfs_var.h

ok thib@


# 1.43 09-Aug-2008 thib

o nfs_vinvalbuf() is always called with the intrflag as 1, and then
checks if the mount is actually interrutable, and if not sets it 0.
remove this argument from nfs_vinvalbuf and just do the checking inside
the function.
o give nfs_vinvalbuf() a makeover so it looks nice. (spacing, casts, &c);
o Actually pass PCATCH too tsleep() if the mount it interrutable.

ok art@, blambert@


Revision tags: OPENBSD_4_4_BASE
# 1.42 14-Jun-2008 thib

put the canonical ifdef dance for multiple inclusion, also put all the
contents of this file inside #ifdef _KERNEL; there's nothing here that
userland should ever need/touch.

but then again, some userland programs define _KERNEL before they include
kernel header files *shrugh*...

survived a build, OK blambert@


# 1.41 13-Jun-2008 blambert

Kill one-liner macro which obfuscated mbuf pointer assignment.

Rescue nfsm_reqhead macro name and rename nfsm_reqh.

End of one-liners from nfsm_subs.h.

ok thib@


# 1.40 13-Jun-2008 blambert

Replace one-line macro which only obfuscated the fact that
the function it was named after took 4 arguments instead of 2.

"get it in; get it in; get it in" thib@


# 1.39 12-Jun-2008 blambert

Remove now-vestigial bpos pointer from NFS. For building outgoing
NFS mbufs, mbufs now contain all their internal buffer state internally,
the way god intended.

ok thib@

testing johan@ (and possibly merdely@; this diff's been around for a bit...)


# 1.38 10-Jun-2008 thib

o Avoid putting duplicate entries into the name cache,
add a function to handle cache_enter()'s for us since
we need to update the appropriate timestamps so we don't
miss on lookup;
o Do not purge the dvp in nfs_rmdir(), since there's no need;
o cache the new entry created in nfs_mkdir();
o Do caching of the access modes, this drastically reduces the
amount of over the wire access RPCs we do in the NFSv3 case.

This diff was written by Pedro Martelletto, sometime in 2004.
A lot of people have been running with it at one time or another,
this includes at least markus and matthieu.

OK deraadt@, blambert@


# 1.37 09-Jun-2008 djm

nfsm_get_xid() => nfs_get_xid() after thib@ informed me that the
nfsm_* functions are for mbufs


# 1.36 09-Jun-2008 djm

Introduce a facility to generate unpredictable 32 bit numbers with
near maximal (2^32) cycle times. These are useful for network
IDs in cases where there are negative consequences to ID prediction
and/or reuse.

Use the idgen32() functions to generate IPv6 IDs and NFS client/server
XIDs.

Pseudorandom permutation code in crypto/idgen.c based on public
domain skip32.c from Greg Rose.

feedback & ok thib@ deraadt@


# 1.35 22-Apr-2008 thib

remove the "kerbflag" argument from nfsrv_fhtovp() and nfs_namei()
(the latter only had it to pass it to nfsrv_fhtovp()).

appropriate cleanup also;

ok blambert@


# 1.34 14-Apr-2008 blambert

Rework NFS mbuf write routines:

nfsm_uiotombuf():
- no meaningful return, function becomes void
- replace frankensteined uiomove/MGET with actual call to uiomove

nfsm_strtmbuf():
- no meaningful return, becomes void
- rename and reorder parameters to be consistent with other functions
- becomes wrapper to nfsm_uiotombuf

nfsm_buftombuf():
- new function; unused but slated for future use
- wrapper to nfsm_uiotombuf

As a bonus, making these functions void removes much unneeded code and
garbage collects `magic' variable t2 which was only used (invisibly)
by the macros from nfsm_subs.h

Preps the way for removing much more NFS goo...

testing by myself, thib@ and merdely@
ok thib@


Revision tags: OPENBSD_4_3_BASE
# 1.33 06-Jan-2008 blambert

More NFS-related kernel shrinkage...

When you use a macro ~200 times, it tends to bloat your code, so make a
function out of it.

Shaves ~8.5 kB from my kernel.

ok thib@, "looks good" krw@

In snaps for 1+ week with no negative reports.


# 1.32 13-Dec-2007 blambert

convert massive (expanded to 150+ lines) nfsm_v3attr macro to a function

shaves an insane (~8K) amount from an i386 kernel

ok thib@


# 1.31 28-Oct-2007 thib

Remove the "frev" argument from nfs_rephead(); and clean up the "frev"
variables, that are declared all over, since they are passed via macros
to nfs_rephead(); which doesn't do anything with it.

OK krw@


# 1.30 14-Oct-2007 thib

Remove now unused functions dealing with kerberos
authentication.

ok beck@


# 1.29 13-Oct-2007 thib

Remove alot of dead kerberos code (add sane comments too).

Cleanup and partly redo the way we create the RPC header, by having
nfsm_rpchead() do a bit more work. Right now this is pretty RPCAUTH_UNIX
centric, but since it is the only auth method we support right now thats
fine.

Make sure we can never generate a zero xid, thats forbidden by the RFC.

Misc cleanup.

tested by a few.


Revision tags: OPENBSD_4_2_BASE
# 1.28 21-Jun-2007 thib

remove a whole bunch of duplicate function
prototypes.
(survived build/release on macppc/amd64).

ok pedro@


# 1.27 01-Jun-2007 thib

daddr_t -> daddr64_t;
Basically the usage of daddr_t was to math out arguments to
nfs_getcacheblk, wich calls getblk();

ok deraadt@


# 1.26 19-Apr-2007 thib

Replace the nfskevq_lock lockmgr lock with rwlock.
Replace nfs_kqinit() wich just calls lockinit with
RWLOCK_INITALIZER. Assorted cleanup.

ok tedu@
"reads good" art@


# 1.25 13-Apr-2007 thib

Move the declaration of VN_KNOTE() into vnode.h instead of having
multiple defines all over;

ok tedu@


# 1.24 11-Apr-2007 thib

remove duplicate prototype;

ok pedro@


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.23 03-Aug-2004 marius

NFS commit coalescion: instead of sending a commit for each block, coalesce
these into larger ranges wherever possible.

this should speed up NFS writes quite a bit.

ok art@ millert@ pedro@ tedu@


# 1.22 21-Jul-2004 marius

kqueue support for NFS, adapted from netbsd.

ok art@ pedro@, "get it in" deraadt@


Revision tags: OPENBSD_3_2_BASE OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
# 1.21 03-Jul-2002 nate

Remove unused function parameter 'cache' from nfs_rephead
ok costa@


# 1.20 02-Jul-2002 ericj

use hash.h for nfs_hash as well as namei's hash
ok art@ costa@


Revision tags: OPENBSD_3_1_BASE
# 1.19 10-Apr-2002 csapuntz

nfs_realign from FreeBSD. The old code was over-optimized, occasionally overwriting
other parts of a TCP stream, occasionally dereferencing NULL pointers


# 1.18 14-Mar-2002 millert

First round of __P removal in sys


# 1.17 19-Dec-2001 art

UBC was a disaster. It worked very good when it worked, but on some
machines or some configurations or in some phase of the moon (we actually
don't know when or why) files disappeared. Since we've not been able to
track down the problem in two weeks intense debugging and we need -current
to be stable, back out everything to a state it had before UBC.

We apologise for the inconvenience.


Revision tags: UBC_BASE
# 1.16 27-Nov-2001 art

branches: 1.16.2;
Merge in the unified buffer cache code as found in NetBSD 2001/03/10. The
code is written mostly by Chuck Silvers <chuq@chuq.com>/<chs@netbsd.org>.

Tested for the past few weeks by many developers, should be in a pretty stable
state, but will require optimizations and additional cleanups.


# 1.15 15-Nov-2001 art

Remove creds from struct buf, move the creds that nfs need into the nfs node.
While in the area, convert nfs node allocation from malloc to pool and do
some cleanups.
Based on the UBC changes in NetBSD. niklas@ ok.


Revision tags: OPENBSD_3_0_BASE
# 1.14 25-Jun-2001 csapuntz

Remove NQNFS


# 1.13 25-Jun-2001 csapuntz

Get rid of old directory caching scheme which caused persistent duplicates.

Still not correct for NFSv3 but that's hard.


Revision tags: OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.12 30-Jun-2000 art

Remove redundant declaration of nfs_init.


# 1.11 19-May-2000 mickey

from tsarna@netbsd.org (sysctl changes to come later):
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.


Revision tags: OPENBSD_2_7_BASE SMP_BASE
# 1.10 07-Feb-2000 assar

branches: 1.10.2;
removed prototype of sys_getfh - it is now a normal syscall


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE kame_19991208
# 1.9 06-Aug-1998 csapuntz

Rename vop_revoke, vn_bwrite, vop_noislocked, vop_nolock, vop_nounlock
to be vop_generic_revoke, vop_generic_bwrite, vop_generic_islocked,
vop_generic_lock and vop_generic_unlock.

Create vop_generic_abortop and propogate change to all file systems.

Fix PR/371.

Get rid of locking in NULLFS (should be mostly unnecessary now except for
forced unmounts).


Revision tags: OPENBSD_2_3_BASE
# 1.8 22-Feb-1998 niklas

Changes made for GCC 2.8 -Wall pleasures


# 1.7 06-Nov-1997 csapuntz

Updates for VFS Lite 2 + soft update.


Revision tags: OPENBSD_2_2_BASE
# 1.6 06-Oct-1997 deraadt

back out vfs lite2 till after 2.2


# 1.5 06-Oct-1997 csapuntz

VFS Lite2 Changes


Revision tags: OPENBSD_2_1_BASE
# 1.4 14-Dec-1996 deraadt

better nfsrv_access() control, from netbsd


Revision tags: OPENBSD_2_0_BASE
# 1.3 21-Sep-1996 deraadt

fix NFSSERVER w/o NFSCLIENT; netbsd pr#1780, cgd@netbsd (yes, a 10month
old PR and the fix is mostly unchanged).


# 1.2 31-Mar-1996 mickey

From NetBSD: NFSv3 import (tomorrow's Net's kernel)
Open's patches kept in. i'll possibly take a look at Lite2 soon,
is there smth usefull ?..


# 1.1 29-Feb-1996 niklas

From NetBSD: merge with 960217 (still NFSv2)


# 1.64 30-Apr-2024 miod

Convert all the NFS macros (in nfsm_subs.h) into inline functions with the
appropriate extra arguments.

This (hopefully) completes the unmessyfication work started by thib@ a long,
long time ago (in a galaxy far away).

The conversion logic has been:
- nfsm_dissect has been turned into an rvalue expression, leaving the
cast operation up to its caller.
- macros which had three different exit paths (return, goto nfsmout or
fallthrough) have been split so that no macros have more than two exit paths.
- then they have been modified to return a value, which lets the caller
figure out what exit path is needed.
- local variables abused by the macros are now local variables of the new
inline functions.

This single commit is the sum of 25 intermediate diffs, which have all been
carefully reviewed by (at least) jsg@ and semarie@.

Tested with v2 and v3 servers and clients.

ok jsg@ semarie@


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE OPENBSD_7_4_BASE OPENBSD_7_5_BASE
# 1.63 22-Feb-2017 mpi

Keep local definitions local.

"good work" deraadt@, ok visa@


# 1.62 27-Sep-2016 dlg

replace the use of RB macros with the RBT functions.


Revision tags: OPENBSD_6_0_BASE
# 1.61 29-Apr-2016 beck

Fix some gibbering horrors due to uninitialized struct nameidata's

1) turn NDINITAT into a function and make the macros point to it
with the later goal of getting rid of them.

2) Sweep the kernel for places where people make a struct nameidata manually
on the stack and fill in what they hope are the required fields and count
on prayer and clean living to always get them right. Instead use NDINIT
everywhere. NFS was especially bad for this and there have likely
been things lurking there for a while.

3) Add a couple of strategic KASSERT's to catch future offenders.

ok krw@ sthen@ deraadt@


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE
# 1.60 11-Jun-2013 deraadt

final removal of daddr64_t. daddr_t has been 64 bit for a long enough
test period; i think 3 years ago the last bugs fell out.
ok otto beck others


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.59 12-Apr-2010 beck

Don't jump the queue if we have to wait on the client side because
the nfs_bufq is full - instead tsleep waiting for one of our nfsiod's
to free up space for us in the queue so we can enqueue on the end.

ok blambert@, tedu@, oga@


Revision tags: OPENBSD_4_7_BASE
# 1.58 02-Sep-2009 thib

Backout the asyncio/aiod change, as it causes buf's to get hung.
problem noticed by deraadt@

ok beck@


# 1.57 20-Aug-2009 thib

Rework the way we do async I/O in nfs. Introduce separate buf queues for
each mount, and when work is "found", peg an aiod to that mount todo the
I/O. Make nfs_asyncio() a bit smarter when deciding when to do asyncio
and when to force it sync, this is done by keeping the aiod's one two lists,
an "idle" and an "all" list, so asyncio is only done when there are aiods
hanging around todo it for us or are already pegged to the mount.

Idea liked by at least beck@ (and I think art@).
Extensive testing done by myself and jasper and a few others on various
arch's.

Ideas/Code from Net/Free.

OK blambert@.


# 1.56 13-Aug-2009 blambert

Teach nfsm_fhtom about nfsm_info structs

ok thib@


# 1.55 13-Aug-2009 blambert

change version 3 post-operation attribute building function to not
use mbufs directly, but the shiny new nfsm_info struct

ok thib@


# 1.54 10-Aug-2009 thib

Use an RB tree instead of a hashtable for fh/node lookups.

Idea from NetBSD.

OK blambert@


# 1.53 10-Aug-2009 thib

Remove the v2 writegather code. It did help alot back in the 80s
but extensive performance benchmarking done by myself and jasper@
has shown that it doesn't help, at all - even on vaxens and in some
cases it makes things significantly slower.

"this excites me sexually" jetpack@
Tested by jasper@.
OK blambert@


# 1.52 04-Aug-2009 thib

group all of the on-stack variables that are uses by the nfsm_macros
to keep the data munging "state" into an nfsm_info structure. Each
function now has this structure on its stack, and it and its members
are now passed around so that the macros/functions can work there magic.

this will make removing the nfsm_* macros way easier.

Idea/code picked up from DragonflyBSD.

Tested by krw@, jacekm@ and myself.

OK blambert@.


Revision tags: OPENBSD_4_6_BASE
# 1.51 04-Jun-2009 blambert

simplify argument list for nfssvc_nfsd()

ok thib@


# 1.50 13-Apr-2009 blambert

Convert macros to functions to reduce kernel memory usage.

In snaps for a while (way too long, according to deraadt@)


# 1.49 30-Mar-2009 blambert

Convert a sizeable macro to a much-leaner function. Saves (IIRC) 5k on i386.

In snaps for a while.


Revision tags: OPENBSD_4_5_BASE
# 1.48 20-Jan-2009 blambert

Start reworking NFS client mbuf handling by creating an interface which
requires well-formed mbuf chains to work. Existing function name is now
a wrapper to this interface. Much, much more work to follow which will
build on this.

Truly change we can believe in.

ok thib@, who would have preferred this in two commits, but I'm impatient :)

testing on multiple arches (i386, arm, amd64, and sparc64 at least) by many,
thanks to all who did so


# 1.47 18-Jan-2009 blambert

remove function which only called nfssvc_iod(), and pass nfssvc_iod()
to kthread_create()

ok thib@


# 1.46 16-Jan-2009 thib

turn nfs_msg into void functions, also make it take an nfsreq
argument since all of the info we need is there, makes it and
the use it a tad bit nicer.

ok blambert@


# 1.45 15-Jan-2009 thib

remove prototypes for nonexistent functions


# 1.44 16-Oct-2008 blambert

Don't hide the fact that NFS uses vop_generic_* functions behind
#define's in nfs_var.h

ok thib@


# 1.43 09-Aug-2008 thib

o nfs_vinvalbuf() is always called with the intrflag as 1, and then
checks if the mount is actually interrutable, and if not sets it 0.
remove this argument from nfs_vinvalbuf and just do the checking inside
the function.
o give nfs_vinvalbuf() a makeover so it looks nice. (spacing, casts, &c);
o Actually pass PCATCH too tsleep() if the mount it interrutable.

ok art@, blambert@


Revision tags: OPENBSD_4_4_BASE
# 1.42 14-Jun-2008 thib

put the canonical ifdef dance for multiple inclusion, also put all the
contents of this file inside #ifdef _KERNEL; there's nothing here that
userland should ever need/touch.

but then again, some userland programs define _KERNEL before they include
kernel header files *shrugh*...

survived a build, OK blambert@


# 1.41 13-Jun-2008 blambert

Kill one-liner macro which obfuscated mbuf pointer assignment.

Rescue nfsm_reqhead macro name and rename nfsm_reqh.

End of one-liners from nfsm_subs.h.

ok thib@


# 1.40 13-Jun-2008 blambert

Replace one-line macro which only obfuscated the fact that
the function it was named after took 4 arguments instead of 2.

"get it in; get it in; get it in" thib@


# 1.39 12-Jun-2008 blambert

Remove now-vestigial bpos pointer from NFS. For building outgoing
NFS mbufs, mbufs now contain all their internal buffer state internally,
the way god intended.

ok thib@

testing johan@ (and possibly merdely@; this diff's been around for a bit...)


# 1.38 10-Jun-2008 thib

o Avoid putting duplicate entries into the name cache,
add a function to handle cache_enter()'s for us since
we need to update the appropriate timestamps so we don't
miss on lookup;
o Do not purge the dvp in nfs_rmdir(), since there's no need;
o cache the new entry created in nfs_mkdir();
o Do caching of the access modes, this drastically reduces the
amount of over the wire access RPCs we do in the NFSv3 case.

This diff was written by Pedro Martelletto, sometime in 2004.
A lot of people have been running with it at one time or another,
this includes at least markus and matthieu.

OK deraadt@, blambert@


# 1.37 09-Jun-2008 djm

nfsm_get_xid() => nfs_get_xid() after thib@ informed me that the
nfsm_* functions are for mbufs


# 1.36 09-Jun-2008 djm

Introduce a facility to generate unpredictable 32 bit numbers with
near maximal (2^32) cycle times. These are useful for network
IDs in cases where there are negative consequences to ID prediction
and/or reuse.

Use the idgen32() functions to generate IPv6 IDs and NFS client/server
XIDs.

Pseudorandom permutation code in crypto/idgen.c based on public
domain skip32.c from Greg Rose.

feedback & ok thib@ deraadt@


# 1.35 22-Apr-2008 thib

remove the "kerbflag" argument from nfsrv_fhtovp() and nfs_namei()
(the latter only had it to pass it to nfsrv_fhtovp()).

appropriate cleanup also;

ok blambert@


# 1.34 14-Apr-2008 blambert

Rework NFS mbuf write routines:

nfsm_uiotombuf():
- no meaningful return, function becomes void
- replace frankensteined uiomove/MGET with actual call to uiomove

nfsm_strtmbuf():
- no meaningful return, becomes void
- rename and reorder parameters to be consistent with other functions
- becomes wrapper to nfsm_uiotombuf

nfsm_buftombuf():
- new function; unused but slated for future use
- wrapper to nfsm_uiotombuf

As a bonus, making these functions void removes much unneeded code and
garbage collects `magic' variable t2 which was only used (invisibly)
by the macros from nfsm_subs.h

Preps the way for removing much more NFS goo...

testing by myself, thib@ and merdely@
ok thib@


Revision tags: OPENBSD_4_3_BASE
# 1.33 06-Jan-2008 blambert

More NFS-related kernel shrinkage...

When you use a macro ~200 times, it tends to bloat your code, so make a
function out of it.

Shaves ~8.5 kB from my kernel.

ok thib@, "looks good" krw@

In snaps for 1+ week with no negative reports.


# 1.32 13-Dec-2007 blambert

convert massive (expanded to 150+ lines) nfsm_v3attr macro to a function

shaves an insane (~8K) amount from an i386 kernel

ok thib@


# 1.31 28-Oct-2007 thib

Remove the "frev" argument from nfs_rephead(); and clean up the "frev"
variables, that are declared all over, since they are passed via macros
to nfs_rephead(); which doesn't do anything with it.

OK krw@


# 1.30 14-Oct-2007 thib

Remove now unused functions dealing with kerberos
authentication.

ok beck@


# 1.29 13-Oct-2007 thib

Remove alot of dead kerberos code (add sane comments too).

Cleanup and partly redo the way we create the RPC header, by having
nfsm_rpchead() do a bit more work. Right now this is pretty RPCAUTH_UNIX
centric, but since it is the only auth method we support right now thats
fine.

Make sure we can never generate a zero xid, thats forbidden by the RFC.

Misc cleanup.

tested by a few.


Revision tags: OPENBSD_4_2_BASE
# 1.28 21-Jun-2007 thib

remove a whole bunch of duplicate function
prototypes.
(survived build/release on macppc/amd64).

ok pedro@


# 1.27 01-Jun-2007 thib

daddr_t -> daddr64_t;
Basically the usage of daddr_t was to math out arguments to
nfs_getcacheblk, wich calls getblk();

ok deraadt@


# 1.26 19-Apr-2007 thib

Replace the nfskevq_lock lockmgr lock with rwlock.
Replace nfs_kqinit() wich just calls lockinit with
RWLOCK_INITALIZER. Assorted cleanup.

ok tedu@
"reads good" art@


# 1.25 13-Apr-2007 thib

Move the declaration of VN_KNOTE() into vnode.h instead of having
multiple defines all over;

ok tedu@


# 1.24 11-Apr-2007 thib

remove duplicate prototype;

ok pedro@


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.23 03-Aug-2004 marius

NFS commit coalescion: instead of sending a commit for each block, coalesce
these into larger ranges wherever possible.

this should speed up NFS writes quite a bit.

ok art@ millert@ pedro@ tedu@


# 1.22 21-Jul-2004 marius

kqueue support for NFS, adapted from netbsd.

ok art@ pedro@, "get it in" deraadt@


Revision tags: OPENBSD_3_2_BASE OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
# 1.21 03-Jul-2002 nate

Remove unused function parameter 'cache' from nfs_rephead
ok costa@


# 1.20 02-Jul-2002 ericj

use hash.h for nfs_hash as well as namei's hash
ok art@ costa@


Revision tags: OPENBSD_3_1_BASE
# 1.19 10-Apr-2002 csapuntz

nfs_realign from FreeBSD. The old code was over-optimized, occasionally overwriting
other parts of a TCP stream, occasionally dereferencing NULL pointers


# 1.18 14-Mar-2002 millert

First round of __P removal in sys


# 1.17 19-Dec-2001 art

UBC was a disaster. It worked very good when it worked, but on some
machines or some configurations or in some phase of the moon (we actually
don't know when or why) files disappeared. Since we've not been able to
track down the problem in two weeks intense debugging and we need -current
to be stable, back out everything to a state it had before UBC.

We apologise for the inconvenience.


Revision tags: UBC_BASE
# 1.16 27-Nov-2001 art

branches: 1.16.2;
Merge in the unified buffer cache code as found in NetBSD 2001/03/10. The
code is written mostly by Chuck Silvers <chuq@chuq.com>/<chs@netbsd.org>.

Tested for the past few weeks by many developers, should be in a pretty stable
state, but will require optimizations and additional cleanups.


# 1.15 15-Nov-2001 art

Remove creds from struct buf, move the creds that nfs need into the nfs node.
While in the area, convert nfs node allocation from malloc to pool and do
some cleanups.
Based on the UBC changes in NetBSD. niklas@ ok.


Revision tags: OPENBSD_3_0_BASE
# 1.14 25-Jun-2001 csapuntz

Remove NQNFS


# 1.13 25-Jun-2001 csapuntz

Get rid of old directory caching scheme which caused persistent duplicates.

Still not correct for NFSv3 but that's hard.


Revision tags: OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.12 30-Jun-2000 art

Remove redundant declaration of nfs_init.


# 1.11 19-May-2000 mickey

from tsarna@netbsd.org (sysctl changes to come later):
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.


Revision tags: OPENBSD_2_7_BASE SMP_BASE
# 1.10 07-Feb-2000 assar

branches: 1.10.2;
removed prototype of sys_getfh - it is now a normal syscall


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE kame_19991208
# 1.9 06-Aug-1998 csapuntz

Rename vop_revoke, vn_bwrite, vop_noislocked, vop_nolock, vop_nounlock
to be vop_generic_revoke, vop_generic_bwrite, vop_generic_islocked,
vop_generic_lock and vop_generic_unlock.

Create vop_generic_abortop and propogate change to all file systems.

Fix PR/371.

Get rid of locking in NULLFS (should be mostly unnecessary now except for
forced unmounts).


Revision tags: OPENBSD_2_3_BASE
# 1.8 22-Feb-1998 niklas

Changes made for GCC 2.8 -Wall pleasures


# 1.7 06-Nov-1997 csapuntz

Updates for VFS Lite 2 + soft update.


Revision tags: OPENBSD_2_2_BASE
# 1.6 06-Oct-1997 deraadt

back out vfs lite2 till after 2.2


# 1.5 06-Oct-1997 csapuntz

VFS Lite2 Changes


Revision tags: OPENBSD_2_1_BASE
# 1.4 14-Dec-1996 deraadt

better nfsrv_access() control, from netbsd


Revision tags: OPENBSD_2_0_BASE
# 1.3 21-Sep-1996 deraadt

fix NFSSERVER w/o NFSCLIENT; netbsd pr#1780, cgd@netbsd (yes, a 10month
old PR and the fix is mostly unchanged).


# 1.2 31-Mar-1996 mickey

From NetBSD: NFSv3 import (tomorrow's Net's kernel)
Open's patches kept in. i'll possibly take a look at Lite2 soon,
is there smth usefull ?..


# 1.1 29-Feb-1996 niklas

From NetBSD: merge with 960217 (still NFSv2)


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.63 22-Feb-2017 mpi

Keep local definitions local.

"good work" deraadt@, ok visa@


# 1.62 27-Sep-2016 dlg

replace the use of RB macros with the RBT functions.


Revision tags: OPENBSD_6_0_BASE
# 1.61 29-Apr-2016 beck

Fix some gibbering horrors due to uninitialized struct nameidata's

1) turn NDINITAT into a function and make the macros point to it
with the later goal of getting rid of them.

2) Sweep the kernel for places where people make a struct nameidata manually
on the stack and fill in what they hope are the required fields and count
on prayer and clean living to always get them right. Instead use NDINIT
everywhere. NFS was especially bad for this and there have likely
been things lurking there for a while.

3) Add a couple of strategic KASSERT's to catch future offenders.

ok krw@ sthen@ deraadt@


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE
# 1.60 11-Jun-2013 deraadt

final removal of daddr64_t. daddr_t has been 64 bit for a long enough
test period; i think 3 years ago the last bugs fell out.
ok otto beck others


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.59 12-Apr-2010 beck

Don't jump the queue if we have to wait on the client side because
the nfs_bufq is full - instead tsleep waiting for one of our nfsiod's
to free up space for us in the queue so we can enqueue on the end.

ok blambert@, tedu@, oga@


Revision tags: OPENBSD_4_7_BASE
# 1.58 02-Sep-2009 thib

Backout the asyncio/aiod change, as it causes buf's to get hung.
problem noticed by deraadt@

ok beck@


# 1.57 20-Aug-2009 thib

Rework the way we do async I/O in nfs. Introduce separate buf queues for
each mount, and when work is "found", peg an aiod to that mount todo the
I/O. Make nfs_asyncio() a bit smarter when deciding when to do asyncio
and when to force it sync, this is done by keeping the aiod's one two lists,
an "idle" and an "all" list, so asyncio is only done when there are aiods
hanging around todo it for us or are already pegged to the mount.

Idea liked by at least beck@ (and I think art@).
Extensive testing done by myself and jasper and a few others on various
arch's.

Ideas/Code from Net/Free.

OK blambert@.


# 1.56 13-Aug-2009 blambert

Teach nfsm_fhtom about nfsm_info structs

ok thib@


# 1.55 13-Aug-2009 blambert

change version 3 post-operation attribute building function to not
use mbufs directly, but the shiny new nfsm_info struct

ok thib@


# 1.54 10-Aug-2009 thib

Use an RB tree instead of a hashtable for fh/node lookups.

Idea from NetBSD.

OK blambert@


# 1.53 10-Aug-2009 thib

Remove the v2 writegather code. It did help alot back in the 80s
but extensive performance benchmarking done by myself and jasper@
has shown that it doesn't help, at all - even on vaxens and in some
cases it makes things significantly slower.

"this excites me sexually" jetpack@
Tested by jasper@.
OK blambert@


# 1.52 04-Aug-2009 thib

group all of the on-stack variables that are uses by the nfsm_macros
to keep the data munging "state" into an nfsm_info structure. Each
function now has this structure on its stack, and it and its members
are now passed around so that the macros/functions can work there magic.

this will make removing the nfsm_* macros way easier.

Idea/code picked up from DragonflyBSD.

Tested by krw@, jacekm@ and myself.

OK blambert@.


Revision tags: OPENBSD_4_6_BASE
# 1.51 04-Jun-2009 blambert

simplify argument list for nfssvc_nfsd()

ok thib@


# 1.50 13-Apr-2009 blambert

Convert macros to functions to reduce kernel memory usage.

In snaps for a while (way too long, according to deraadt@)


# 1.49 30-Mar-2009 blambert

Convert a sizeable macro to a much-leaner function. Saves (IIRC) 5k on i386.

In snaps for a while.


Revision tags: OPENBSD_4_5_BASE
# 1.48 20-Jan-2009 blambert

Start reworking NFS client mbuf handling by creating an interface which
requires well-formed mbuf chains to work. Existing function name is now
a wrapper to this interface. Much, much more work to follow which will
build on this.

Truly change we can believe in.

ok thib@, who would have preferred this in two commits, but I'm impatient :)

testing on multiple arches (i386, arm, amd64, and sparc64 at least) by many,
thanks to all who did so


# 1.47 18-Jan-2009 blambert

remove function which only called nfssvc_iod(), and pass nfssvc_iod()
to kthread_create()

ok thib@


# 1.46 16-Jan-2009 thib

turn nfs_msg into void functions, also make it take an nfsreq
argument since all of the info we need is there, makes it and
the use it a tad bit nicer.

ok blambert@


# 1.45 15-Jan-2009 thib

remove prototypes for nonexistent functions


# 1.44 16-Oct-2008 blambert

Don't hide the fact that NFS uses vop_generic_* functions behind
#define's in nfs_var.h

ok thib@


# 1.43 09-Aug-2008 thib

o nfs_vinvalbuf() is always called with the intrflag as 1, and then
checks if the mount is actually interrutable, and if not sets it 0.
remove this argument from nfs_vinvalbuf and just do the checking inside
the function.
o give nfs_vinvalbuf() a makeover so it looks nice. (spacing, casts, &c);
o Actually pass PCATCH too tsleep() if the mount it interrutable.

ok art@, blambert@


Revision tags: OPENBSD_4_4_BASE
# 1.42 14-Jun-2008 thib

put the canonical ifdef dance for multiple inclusion, also put all the
contents of this file inside #ifdef _KERNEL; there's nothing here that
userland should ever need/touch.

but then again, some userland programs define _KERNEL before they include
kernel header files *shrugh*...

survived a build, OK blambert@


# 1.41 13-Jun-2008 blambert

Kill one-liner macro which obfuscated mbuf pointer assignment.

Rescue nfsm_reqhead macro name and rename nfsm_reqh.

End of one-liners from nfsm_subs.h.

ok thib@


# 1.40 13-Jun-2008 blambert

Replace one-line macro which only obfuscated the fact that
the function it was named after took 4 arguments instead of 2.

"get it in; get it in; get it in" thib@


# 1.39 12-Jun-2008 blambert

Remove now-vestigial bpos pointer from NFS. For building outgoing
NFS mbufs, mbufs now contain all their internal buffer state internally,
the way god intended.

ok thib@

testing johan@ (and possibly merdely@; this diff's been around for a bit...)


# 1.38 10-Jun-2008 thib

o Avoid putting duplicate entries into the name cache,
add a function to handle cache_enter()'s for us since
we need to update the appropriate timestamps so we don't
miss on lookup;
o Do not purge the dvp in nfs_rmdir(), since there's no need;
o cache the new entry created in nfs_mkdir();
o Do caching of the access modes, this drastically reduces the
amount of over the wire access RPCs we do in the NFSv3 case.

This diff was written by Pedro Martelletto, sometime in 2004.
A lot of people have been running with it at one time or another,
this includes at least markus and matthieu.

OK deraadt@, blambert@


# 1.37 09-Jun-2008 djm

nfsm_get_xid() => nfs_get_xid() after thib@ informed me that the
nfsm_* functions are for mbufs


# 1.36 09-Jun-2008 djm

Introduce a facility to generate unpredictable 32 bit numbers with
near maximal (2^32) cycle times. These are useful for network
IDs in cases where there are negative consequences to ID prediction
and/or reuse.

Use the idgen32() functions to generate IPv6 IDs and NFS client/server
XIDs.

Pseudorandom permutation code in crypto/idgen.c based on public
domain skip32.c from Greg Rose.

feedback & ok thib@ deraadt@


# 1.35 22-Apr-2008 thib

remove the "kerbflag" argument from nfsrv_fhtovp() and nfs_namei()
(the latter only had it to pass it to nfsrv_fhtovp()).

appropriate cleanup also;

ok blambert@


# 1.34 14-Apr-2008 blambert

Rework NFS mbuf write routines:

nfsm_uiotombuf():
- no meaningful return, function becomes void
- replace frankensteined uiomove/MGET with actual call to uiomove

nfsm_strtmbuf():
- no meaningful return, becomes void
- rename and reorder parameters to be consistent with other functions
- becomes wrapper to nfsm_uiotombuf

nfsm_buftombuf():
- new function; unused but slated for future use
- wrapper to nfsm_uiotombuf

As a bonus, making these functions void removes much unneeded code and
garbage collects `magic' variable t2 which was only used (invisibly)
by the macros from nfsm_subs.h

Preps the way for removing much more NFS goo...

testing by myself, thib@ and merdely@
ok thib@


Revision tags: OPENBSD_4_3_BASE
# 1.33 06-Jan-2008 blambert

More NFS-related kernel shrinkage...

When you use a macro ~200 times, it tends to bloat your code, so make a
function out of it.

Shaves ~8.5 kB from my kernel.

ok thib@, "looks good" krw@

In snaps for 1+ week with no negative reports.


# 1.32 13-Dec-2007 blambert

convert massive (expanded to 150+ lines) nfsm_v3attr macro to a function

shaves an insane (~8K) amount from an i386 kernel

ok thib@


# 1.31 28-Oct-2007 thib

Remove the "frev" argument from nfs_rephead(); and clean up the "frev"
variables, that are declared all over, since they are passed via macros
to nfs_rephead(); which doesn't do anything with it.

OK krw@


# 1.30 14-Oct-2007 thib

Remove now unused functions dealing with kerberos
authentication.

ok beck@


# 1.29 13-Oct-2007 thib

Remove alot of dead kerberos code (add sane comments too).

Cleanup and partly redo the way we create the RPC header, by having
nfsm_rpchead() do a bit more work. Right now this is pretty RPCAUTH_UNIX
centric, but since it is the only auth method we support right now thats
fine.

Make sure we can never generate a zero xid, thats forbidden by the RFC.

Misc cleanup.

tested by a few.


Revision tags: OPENBSD_4_2_BASE
# 1.28 21-Jun-2007 thib

remove a whole bunch of duplicate function
prototypes.
(survived build/release on macppc/amd64).

ok pedro@


# 1.27 01-Jun-2007 thib

daddr_t -> daddr64_t;
Basically the usage of daddr_t was to math out arguments to
nfs_getcacheblk, wich calls getblk();

ok deraadt@


# 1.26 19-Apr-2007 thib

Replace the nfskevq_lock lockmgr lock with rwlock.
Replace nfs_kqinit() wich just calls lockinit with
RWLOCK_INITALIZER. Assorted cleanup.

ok tedu@
"reads good" art@


# 1.25 13-Apr-2007 thib

Move the declaration of VN_KNOTE() into vnode.h instead of having
multiple defines all over;

ok tedu@


# 1.24 11-Apr-2007 thib

remove duplicate prototype;

ok pedro@


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.23 03-Aug-2004 marius

NFS commit coalescion: instead of sending a commit for each block, coalesce
these into larger ranges wherever possible.

this should speed up NFS writes quite a bit.

ok art@ millert@ pedro@ tedu@


# 1.22 21-Jul-2004 marius

kqueue support for NFS, adapted from netbsd.

ok art@ pedro@, "get it in" deraadt@


Revision tags: OPENBSD_3_2_BASE OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE SMP_SYNC_A SMP_SYNC_B UBC_SYNC_A UBC_SYNC_B
# 1.21 03-Jul-2002 nate

Remove unused function parameter 'cache' from nfs_rephead
ok costa@


# 1.20 02-Jul-2002 ericj

use hash.h for nfs_hash as well as namei's hash
ok art@ costa@


Revision tags: OPENBSD_3_1_BASE
# 1.19 10-Apr-2002 csapuntz

nfs_realign from FreeBSD. The old code was over-optimized, occasionally overwriting
other parts of a TCP stream, occasionally dereferencing NULL pointers


# 1.18 14-Mar-2002 millert

First round of __P removal in sys


# 1.17 19-Dec-2001 art

UBC was a disaster. It worked very good when it worked, but on some
machines or some configurations or in some phase of the moon (we actually
don't know when or why) files disappeared. Since we've not been able to
track down the problem in two weeks intense debugging and we need -current
to be stable, back out everything to a state it had before UBC.

We apologise for the inconvenience.


Revision tags: UBC_BASE
# 1.16 27-Nov-2001 art

branches: 1.16.2;
Merge in the unified buffer cache code as found in NetBSD 2001/03/10. The
code is written mostly by Chuck Silvers <chuq@chuq.com>/<chs@netbsd.org>.

Tested for the past few weeks by many developers, should be in a pretty stable
state, but will require optimizations and additional cleanups.


# 1.15 15-Nov-2001 art

Remove creds from struct buf, move the creds that nfs need into the nfs node.
While in the area, convert nfs node allocation from malloc to pool and do
some cleanups.
Based on the UBC changes in NetBSD. niklas@ ok.


Revision tags: OPENBSD_3_0_BASE
# 1.14 25-Jun-2001 csapuntz

Remove NQNFS


# 1.13 25-Jun-2001 csapuntz

Get rid of old directory caching scheme which caused persistent duplicates.

Still not correct for NFSv3 but that's hard.


Revision tags: OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.12 30-Jun-2000 art

Remove redundant declaration of nfs_init.


# 1.11 19-May-2000 mickey

from tsarna@netbsd.org (sysctl changes to come later):
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.


Revision tags: OPENBSD_2_7_BASE SMP_BASE
# 1.10 07-Feb-2000 assar

branches: 1.10.2;
removed prototype of sys_getfh - it is now a normal syscall


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE kame_19991208
# 1.9 06-Aug-1998 csapuntz

Rename vop_revoke, vn_bwrite, vop_noislocked, vop_nolock, vop_nounlock
to be vop_generic_revoke, vop_generic_bwrite, vop_generic_islocked,
vop_generic_lock and vop_generic_unlock.

Create vop_generic_abortop and propogate change to all file systems.

Fix PR/371.

Get rid of locking in NULLFS (should be mostly unnecessary now except for
forced unmounts).


Revision tags: OPENBSD_2_3_BASE
# 1.8 22-Feb-1998 niklas

Changes made for GCC 2.8 -Wall pleasures


# 1.7 06-Nov-1997 csapuntz

Updates for VFS Lite 2 + soft update.


Revision tags: OPENBSD_2_2_BASE
# 1.6 06-Oct-1997 deraadt

back out vfs lite2 till after 2.2


# 1.5 06-Oct-1997 csapuntz

VFS Lite2 Changes


Revision tags: OPENBSD_2_1_BASE
# 1.4 14-Dec-1996 deraadt

better nfsrv_access() control, from netbsd


Revision tags: OPENBSD_2_0_BASE
# 1.3 21-Sep-1996 deraadt

fix NFSSERVER w/o NFSCLIENT; netbsd pr#1780, cgd@netbsd (yes, a 10month
old PR and the fix is mostly unchanged).


# 1.2 31-Mar-1996 mickey

From NetBSD: NFSv3 import (tomorrow's Net's kernel)
Open's patches kept in. i'll possibly take a look at Lite2 soon,
is there smth usefull ?..


# 1.1 29-Feb-1996 niklas

From NetBSD: merge with 960217 (still NFSv2)