History log of /freebsd-current/usr.sbin/nfsd/nfsd.c
Revision Date Author Comments
# 0b8224d1 24-Nov-2023 Warner Losh <imp@FreeBSD.org>

Remove copyright strings ifdef'd out

We've ifdef'd out the copyright strings for some time now. Go ahead and
remove the ifdefs. Plus whatever other detritis was left over from other
recent removals. These copyright strings are present in the comments and
are largely from CSRG's attempt at adding their copyright to every
binary file (which modern interpretations of the license doesn't
require).

Sponsored by: Netflix


# 8a7b6120 23-Nov-2023 Warner Losh <imp@FreeBSD.org>

usr.sbin: Remove ancient SCCS tags.

Remove ancient SCCS tags from the tree, automated scripting, with two
minor fixup to keep things compiling. All the common forms in the tree
were removed with a perl script.

Sponsored by: Netflix


# eba230af 25-Sep-2023 John Baldwin <jhb@FreeBSD.org>

Purge more stray embedded $FreeBSD$ strings

These do not use __FBSDID but instead use bare char arrays.

Reviewed by: imp, emaste
Differential Revision: https://reviews.freebsd.org/D41957


# fe5c211b 22-Feb-2023 Rick Macklem <rmacklem@FreeBSD.org>

nfsd.c: Log a more meaningful failure message

For the cases where the nfsd(8) daemon is already running or
has failed to start within a prison due to an incorrect prison
configuration, the failure message logged is:
Can't read stable storage file: operation not permitted

This patch replaces the above with more meaningful messages.
It depends on commit 10dff9da9748 to differentiate between the
above two cases, however even without this commit, the messages
should be an improvement.

MFC after: 3 months


# b43fe9eb 01-Apr-2021 Rick Macklem <rmacklem@FreeBSD.org>

nfsd: silence rpcb_unset noise for NFSv4 only servers

An NFSv4 only configuration does not register with
rpcbind(). Without this patch a failure to rpcb_unset()
is reported when the daemon is terminated for this case.

This is harmless noise, but this patch avoids calling
rpcb_unset() for the NFSv4 only case, avoiding the noise.

When called with "-d", it still does the rpcb_unset(),
assuming that the configuration might have been
changed to NFSv4 only and unregistering with
rpcbind() might still be needed.

Reviewed by: freqlabs
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D29449


# c0ca37d1 21-Feb-2019 Sean Eric Fagan <sef@FreeBSD.org>

Fix the usage error I introduced in r344192.

Specifically, I put the new option line in the wrong place, and then fixed
up the rest without realizing it. This puts the usage statement back to
what it was, with an additional line for the new -V option.

Reported by: mav
Sponsored by: iXsystems Inc.


# 025816d9 15-Feb-2019 Sean Eric Fagan <sef@FreeBSD.org>

Add support for a virtual hostname to nfsd

Specifically, this allows (via "-V vhostname") telling nfsd what principal
to use, instead of the hostname. This is used at iXsystems for fail-over in
HA systems.

Reviewed by: macklem
Sponsored by: iXsystems Inc.
Differential Revision: https://reviews.freebsd.org/D19191


# 56b187fc 04-Nov-2018 Baptiste Daroussin <bapt@FreeBSD.org>

nfsd: Factorize code

Factorize code by using struct sockaddr_storage to handle both ipv6 and ipv4

Discussed with: rmacklem
Reviewed by: manu
MFC after: 1 month
Sponsored by: Gandi.net
Differential Revision: https://reviews.freebsd.org/D13223


# 35f38de3 27-Jul-2018 Rick Macklem <rmacklem@FreeBSD.org>

Add support for IPv6 addresses to the pNFS "-p" option.

This patch adds code to handle IPv6 addresses returned by getaddrinfo()
for the host entries in the "-p" command line argument.
If the IPv6 address is a link local address, only use it if it is the
only address for the host. This is done since there is no way to know
if the NFSv4.1 pNFS client is in the same scope zone as the MDS.
inet_ntop() is used for the IPv6 address translation, since the client
will have no use for the scope zone suffix and inet_ntop() does not
put this in the address string.

Discussed with: bu7cher@yandex.ru


# ed464272 02-Jul-2018 Rick Macklem <rmacklem@FreeBSD.org>

Add an optional feature to the pNFS server.

Without this patch, the pNFS server distributes the data storage files across
all of the specified DSs.
A tester noted that it would be nice if a system administrator could control
which DSs are used to store the file data for a given exported MDS file system.
This patch adds an optional suffix for each entry in the "-p" option argument
that specifies "store file data for this MDS file system" in this DS.
The patch should only affect sites using the pNFS server (specified via the
"-p" command line option for nfsd.
The interface between the nfsd and the kernel has changed with this patch,
so anyone using the "-p" option needs to rebuild their nfsd from sources
with this patch applied to them.

Discussed with: james.rose@framestore.com


# 2f800e55 29-Jun-2018 Rick Macklem <rmacklem@FreeBSD.org>

Add a safety belt assignment to the nfsd for when "-p" isn't specified.

The kernel code assumes that nfsdargs.addr == NULL and nfsdargs.addrlen == 0
when there is no "-p" argument used for starting the nfsd.
This small patch ensures this is the case. In practice, I believe this always
happened, since "nfsdargs" was the last element on the stack for "main()",
but this little patch ensures it will be the case.
Spotted by inspection while adding a new optional field for "-p".


# 61a835e4 14-Jun-2018 Rick Macklem <rmacklem@FreeBSD.org>

Add the "-p" and "-m" options to nfsd.c for the pNFS service.

The "-p" option specifies that the nfsd should run a pNFS service instead
of a regular NFS service. The "-m" option is only meaningful when used with
"-p" to specify that mirroring on the DSs should be done and on how many of
them.
This change requires the kernel changes committed as r334930.
The man page update will be committed as a separate commit soon.


# dae3a64f 26-Dec-2017 Eitan Adler <eadler@FreeBSD.org>

userland: Fix several typos and minor errors

- duplicate words
- typos
- references to old versions of FreeBSD

Reviewed by: imp, benno


# 8a16b7a1 20-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

General further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 3-Clause license.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.


# fbbd9655 28-Feb-2017 Warner Losh <imp@FreeBSD.org>

Renumber copyright clause 4

Renumber cluase 4 to 3, per what everybody else did when BSD granted
them permission to remove clause 3. My insistance on keeping the same
numbering for legal reasons is too pedantic, so give up on that point.

Submitted by: Jan Schaumann <jschauma@stevens.edu>
Pull Request: https://github.com/freebsd/freebsd/pull/96


# df3e1050 08-Dec-2016 Rick Macklem <rmacklem@FreeBSD.org>

Patch the nfsd so that it doesn't register with rpcbind for an NFSv4 only
server.

This patch uses the sysctl vfs.nfsd.server_min_nfsvers to determine
if/what versions of NFS service should be registered with rpcbind.
For NFSv4 only, it does not register at all, since NFSv4 always uses 2049
and does not require rpcbind.
For NFSv3 minimum, it registers NFSv3 but not NFSv2.

Tested by: jmader2@gmu.edu
Submitted by: jmader2@gmu.edu (earlier version)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D8696


# 80c7cc1c 15-Apr-2016 Pedro F. Giffuni <pfg@FreeBSD.org>

Cleanup unnecessary semicolons from utilities we all love.


# ae3e3df4 29-Apr-2015 Edward Tomasz Napierala <trasz@FreeBSD.org>

Remove oldnfs remnants from nfsd(8).

Reviewed by: rmacklem@
Sponsored by: The FreeBSD Foundation


# 80867e61 07-Apr-2015 Alexander Motin <mav@FreeBSD.org>

Remove hard limits on number of accepting NFS connections.

Limits of 5 connections set long ago creates problems for SPEC benchmark.
Make the NFS follow system-wide maximum.

MFC after: 1 week


# 535875c7 13-Feb-2013 Xin LI <delphij@FreeBSD.org>

Simplify r243637 and make sure that nfsdargs.{min,max}threads are always set
to meaningful value:

- When nfsdcnt is set, it dictates all values;
- Otherwise, nfsdargs.minthreads is set to user specified value, or the
automatically detected value if there is no one specified;
nfsdargs.maxthreads is set to the user specified value, or the value
of nfsdargs.minthreads if there is no one specified; when it is smaller
than nfsdargs.minthreads, the latter's value is always used.

MFC after: 2 weeks


# 2a0b6dc5 13-Feb-2013 Xin LI <delphij@FreeBSD.org>

Abstract out setting of nfsdcnt and consistently use MAXNFSDCNT when the
proposed value is too high and DEFNFSDCNT when proposed value is too low.

MFC after: 2 weeks


# f33fce48 13-Feb-2013 Xin LI <delphij@FreeBSD.org>

Use static for all functions that do not need to be exported.

MFC after: 2 weeks


# bf29178c 19-Dec-2012 Rick Macklem <rmacklem@FreeBSD.org>

Post r243965 the nfsd daemon will not start up for kernels
built without "options INET6". This patch fixes the problem.

Reported by: avg
Tested by: avg
MFC after: 2 weeks


# 57b1c840 27-Nov-2012 Alfred Perlstein <alfred@FreeBSD.org>

Don't allow minthreads > maxthreads.

Suggested by: rmacklem


# 08bddad5 27-Nov-2012 Alfred Perlstein <alfred@FreeBSD.org>

Fix typo.

Pointed out by: marck


# 92829804 27-Nov-2012 Alfred Perlstein <alfred@FreeBSD.org>

Autoconfigure nfsd threads based on ncpu.

Rick Macklem and I discussed the default number of nfsd threads and
concluded that it is too low to perform adiquitely on today's hardware.

We decided to auto tune the number of nfsds based on the number of cpus
in the system.

While I'm here I've also added:

1) ability to set the minthreads/maxthreads from userland.
2) ability to run nfsd in debug mode via the cli.

Reviewed by: rmacklem
MFC after: 2 weeks


# 521aea7c 21-Oct-2012 Eitan Adler <eadler@FreeBSD.org>

Fix typo in error when unable to create TCP socket

PR: bin/172490
Submitted by: bdrewery
Approved by: cperciva
MFC after: 3 days


# bf70bece 19-Oct-2012 Ed Schouten <ed@FreeBSD.org>

More -Wmissing-variable-declarations fixes.

In addition to adding `static' where possible:

- bin/date: Move `retval' into extern.h to make it visible to date.c.
- bin/ed: Move globally used variables into ed.h.
- sbin/camcontrol: Move `verbose' into camcontrol.h and fix shadow warnings.
- usr.bin/calendar: Remove unneeded variables.
- usr.bin/chat: Make `line' local instead of global.
- usr.bin/elfdump: Comment out unneeded function.
- usr.bin/rlogin: Use _Noreturn instead of __dead2.
- usr.bin/tset: Pull `Ospeed' into extern.h.
- usr.sbin/mfiutil: Put global variables in mfiutil.h.
- usr.sbin/pkg: Remove unused `os_corres'.
- usr.sbin/quotaon, usr.sbin/repquota: Remove unused `qfname'.


# fdb6437f 24-Jun-2011 Kevin Lo <kevlo@FreeBSD.org>

Remove duplicated header files


# 2a85df8c 23-Apr-2011 Rick Macklem <rmacklem@FreeBSD.org>

This patch changes the default NFS server to the new one, which was
referred to as the experimental server. It also adds a new command
line option "-o" to both mountd and nfsd that forces them to use the
old/regular NFS server. The "-e" option for these commands is now
a no-op, since the new server is the default. I will be committing rc
script and man changes soon. Discussed on freebsd-fs@.


# 3d77ac51 09-Apr-2011 Rick Macklem <rmacklem@FreeBSD.org>

Add support for a backup stable restart file to the nfsd,
used for NFSv4 restart. This permits the nfsd to create
the stable restart file as required and minimizes the risk
of trouble if the file is lost.

Suggested by: Tim Kientzle
Reviewed by: jhb
MFC after: 2 weeks


# 873ec24a 17-Feb-2011 John Baldwin <jhb@FreeBSD.org>

Save a copy of errno before invoking syslog() if accept() or select() fail.
syslog() can trash the errno value causing nfsd to exit for non-fatal
errors like ECONNABORTED from accept().

MFC after: 1 week


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# 10bc3a7f 29-Dec-2009 Ed Schouten <ed@FreeBSD.org>

ANSIfy almost all applications that use WARNS=6.

I was considering committing all these patches one by one, but as
discussed with brooks@, there is no need to do this. If we ever
need/want to merge these changes back, it is still possible to do this
per application.


# 0775314b 24-Jun-2009 Doug Rabson <dfr@FreeBSD.org>

Don't use sys/nfs/rpcv2.h - it is part of the old kernel RPC implementation
and will be removed.


# 2179ae1e 28-May-2009 Rick Macklem <rmacklem@FreeBSD.org>

Change the "-4" argument for nfsd and mountd to "-e" to avoid
confusion, since it does not refer to IPv4 nor NFSv4, but to
running the experimental server instead of the regular one.

Approved by: kib (mentor)


# 20d0a5e5 23-May-2009 Rick Macklem <rmacklem@FreeBSD.org>

Modify nfsd.c to add support for the experimental nfs server.
This includes the addition of a new flag "-4" that will force
use of the experimental server with nfsv4 support in it. This
commit also adds two new man pages to the repository that are
NFSv4 specific. One describes the file used by the server to
restart nfsv4 services safely. The other is a brief overview
of nfsv4 and its setup.

Reviewed by: dfr
Approved by: kib (mentor)


# a9148abd 03-Nov-2008 Doug Rabson <dfr@FreeBSD.org>

Implement support for RPCSEC_GSS authentication to both the NFS client
and server. This replaces the RPC implementation of the NFS client and
server with the newer RPC implementation originally developed
(actually ported from the userland sunrpc code) to support the NFS
Lock Manager. I have tested this code extensively and I believe it is
stable and that performance is at least equal to the legacy RPC
implementation.

The NFS code currently contains support for both the new RPC
implementation and the older legacy implementation inherited from the
original NFS codebase. The default is to use the new implementation -
add the NFS_LEGACYRPC option to fall back to the old code. When I
merge this support back to RELENG_7, I will probably change this so
that users have to 'opt in' to get the new code.

To use RPCSEC_GSS on either client or server, you must build a kernel
which includes the KGSSAPI option and the crypto device. On the
userland side, you must build at least a new libc, mountd, mount_nfs
and gssd. You must install new versions of /etc/rc.d/gssd and
/etc/rc.d/nfsd and add 'gssd_enable=YES' to /etc/rc.conf.

As long as gssd is running, you should be able to mount an NFS
filesystem from a server that requires RPCSEC_GSS authentication. The
mount itself can happen without any kerberos credentials but all
access to the filesystem will be denied unless the accessing user has
a valid ticket file in the standard place (/tmp/krb5cc_<uid>). There
is currently no support for situations where the ticket file is in a
different place, such as when the user logged in via SSH and has
delegated credentials from that login. This restriction is also
present in Solaris and Linux. In theory, we could improve this in
future, possibly using Brooks Davis' implementation of variant
symlinks.

Supporting RPCSEC_GSS on a server is nearly as simple. You must create
service creds for the server in the form 'nfs/<fqdn>@<REALM>' and
install them in /etc/krb5.keytab. The standard heimdal utility ktutil
makes this fairly easy. After the service creds have been created, you
can add a '-sec=krb5' option to /etc/exports and restart both mountd
and nfsd.

The only other difference an administrator should notice is that nfsd
doesn't fork to create service threads any more. In normal operation,
there will be two nfsd processes, one in userland waiting for TCP
connections and one in the kernel handling requests. The latter
process will create as many kthreads as required - these should be
visible via 'top -H'. The code has some support for varying the number
of service threads according to load but initially at least, nfsd uses
a fixed number of threads according to the value supplied to its '-n'
option.

Sponsored by: Isilon Systems
MFC after: 1 month


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 487e8667 21-Dec-2005 Xin LI <delphij@FreeBSD.org>

Previous revision was broken on SPARC, fix it by using more appropriate type.

Reported by: tindebox
Pointy hat to: delphij


# 6f229bd3 20-Dec-2005 Xin LI <delphij@FreeBSD.org>

Use size_t for length.


# 3f7c86a8 23-Jan-2005 Robert Watson <rwatson@FreeBSD.org>

Bump the default maximum on nfsd processes from 20 to 256. Real-world
measurements suggest that higher degrees of parallelism for large
numbers of clients help performance substantially.

Submitted by: Eric Anderson <anderson at centtech dot com>


# 6f52836b 06-Nov-2004 Xin LI <delphij@FreeBSD.org>

ANSI'fy nfsd(8) and some minor changes to make it WARNS=6 clean.

This commit does not affect the code generated, as proven by md5'ing
resulting binaries.

Bump WARNS accordingly.

Compiled on: sparc64, ia64, i386
Reviewed by: alfred (but blame me if anything goes wrong :-)


# 486c8cc4 06-Aug-2004 Warner Losh <imp@FreeBSD.org>

Per letter dated July 22, 1999 remove 3rd clause of Berkeley derived software
(with permission of addtional copyright holders where appropriate)


# 0be1e825 10-Jan-2004 Robert Watson <rwatson@FreeBSD.org>

Problem:

When an NFS server is port-scanned nfsd sometimes exits. This has
happened 3 times the last few weeks.

Nfsd has been written to exit when accept(2) fails. Unfortunately
accept can sometimes make a "normal" return with errno ECONNABORTED
and in this case nfsd exits prematurely.

Solution:

Check for ECONNABORTED (and also EINTR, since nfsd uses signals)
and continue.

Submitted by: Bjoern Groenvall <bg@sics.se>
PR: 61084


# b8815b31 25-Jul-2002 Peter Wemm <peter@FreeBSD.org>

Bah, I forgot to commit this part of the nfssvc() cleanup. Sorry folks.


# fc99a00c 22-Jul-2002 Hajimu UMEMOTO <ume@FreeBSD.org>

use IPV6_V6ONLY instead of non standard IPV6_BINDV6ONLY.

MFC after: 1 week


# 4cc03f63 22-Jul-2002 Alexander Kabaev <kan@FreeBSD.org>

Initialize sockbits variable with FD_ZERO, to avoid passing a fd_set
with random garbage in lower bits corresponding to stdin, stdout and
stderr to select(2).

This fixes the problem with nfsd sometimes getting stuck in a tight
select(2) loop eating 100% CPU time.

Reviewed by: iedowse
Approved by: obrien


# 3600cbb7 04-Jun-2002 Gordon Tetlow <gordon@FreeBSD.org>

Fix spelling nit in error message.


# 37436e40 01-May-2002 Peter Wemm <peter@FreeBSD.org>

Make this compile and not segfault on ia64. ptr = strdup("foo"); is
fatal if the declaration of strdup() isn't in scope. The upper 32 bits
of the pointer are lost since it defaults to returning "int". Fix some
warnings while here, including trying to make gcc-3.1 happy.


# 85554bf8 26-Mar-2002 Pierre Beyssac <pb@FreeBSD.org>

Fix problem in macro definition breaking compiles with -DDEBUG.

PR: bin/35773
Submitted by: Thomas Quinot <thomas@cuivre.fr.eu.org>


# fef7dd5a 16-Oct-2001 Ian Dowse <iedowse@FreeBSD.org>

When nfsd was started with only UDP servers, the master nfsd would
spin in a loop eating CPU time. This bug has existed since the
TI-RPC import. The problem is that we should only enter the select
loop if at least one TCP server was started. Fix this by having
the master nfsd become a UDP server itself if there are no TCP
servers.

Also improve/correct the code for cleaning up slave nfsd processes
and unregistering with rpcbind when the master nfsd exits.

One issue that remains open is that if a slave nfsd dies, then all
nfsds will shut down. This is because nfssvc() in the master nfsd
returns 0 when the master nfsd receives a SIGCHLD.

Submitted by: tmm


# 12f8604f 19-Sep-2001 Peter Wemm <peter@FreeBSD.org>

Deal with nfs server module changes for autoloading.


# 91196234 18-Sep-2001 Peter Wemm <peter@FreeBSD.org>

Userland part of nfs client/server split and cleanup.


# e0a509bb 25-Mar-2001 Alfred Perlstein <alfred@FreeBSD.org>

Don't call daemon() and setup our signal handlers until after we check
and do the unregister/reregister work.

Don't call syslog in the unregister/reregister code as we haven't called
openlog() yet.

Be a more conservative about accepting errno values from socket(2),
only EPROTONOSUPPORT means that the kernel isn't supporting it
something like INET6. The other possible errnos would be returned
if there was a mistake in the socket(2) call so remove them from the
list of "acceptable" return values.


# 69444aa3 25-Mar-2001 Alfred Perlstein <alfred@FreeBSD.org>

Disable ipv6 when getnetconfigent("udp6"/"tcp6") fails.

Submitted by: Martin Blapp <mb@imp.ch>


# 8360efbd 18-Mar-2001 Alfred Perlstein <alfred@FreeBSD.org>

Bring in a hybrid of SunSoft's transport-independent RPC (TI-RPC) and
associated changes that had to happen to make this possible as well as
bugs fixed along the way.

Bring in required TLI library routines to support this.

Since we don't support TLI we've essentially copied what NetBSD
has done, adding a thin layer to emulate direct the TLI calls
into BSD socket calls.

This is mostly from Sun's tirpc release that was made in 1994,
however some fixes were backported from the 1999 release (supposedly
only made available after this porting effort was underway).

The submitter has agreed to continue on and bring us up to the
1999 release.

Several key features are introduced with this update:
Client calls are thread safe. (1999 code has server side thread
safe)
Updated, a more modern interface.

Many userland updates were done to bring the code up to par with
the recent RPC API.

There is an update to the pthreads library, a function
pthread_main_np() was added to emulate a function of Sun's threads
library.

While we're at it, bring in NetBSD's lockd, it's been far too
long of a wait.

New rpcbind(8) replaces portmap(8) (supporting communication over
an authenticated Unix-domain socket, and by default only allowing
set and unset requests over that channel). It's much more secure
than the old portmapper.

Umount(8), mountd(8), mount_nfs(8), nfsd(8) have also been upgraded
to support TI-RPC and to support IPV6.

Umount(8) is also fixed to unmount pathnames longer than 80 chars,
which are currently truncated by the Kernel statfs structure.

Submitted by: Martin Blapp <mb@imp.ch>
Manpage review: ru
Secure RPC implemented by: wpaul


# 433add6f 02-Sep-2000 Brian Somers <brian@FreeBSD.org>

Don't use libutil now that setproctitle() is in libc


# 92fc2acf 11-Nov-1999 Matthew Dillon <dillon@FreeBSD.org>

Give nfsd the ability to bind to specific IP addresses through the -h
option and add explicit option to bind to the wildcard address. The
default is to bind to the wildcard address when no -h option has been
specified and thus backwards compatibility is maintained.

PR: kern/13049
Reviewed by: David Malone <dwmalone@maths.tcd.ie>
Submitted by: Matt Dillon <dillon@freebsd.org>, David Malone <dwmalone@maths.tcd.ie>


# 7f3dea24 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# 9b4d716b 15-Jul-1998 Philippe Charnier <charnier@FreeBSD.org>

Do not dot terminate syslog() string. Remove unused #includes. Add rcsid. -Wall.


# 3e83b874 17-Nov-1997 John Polstra <jdp@FreeBSD.org>

Fix two missing arguments detected by "-Wformat".


# 8d64695c 28-Mar-1997 Warner Losh <imp@FreeBSD.org>

compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.


# 08966bd5 10-Mar-1997 Peter Wemm <peter@FreeBSD.org>

Merge from Lite2 (use new getvfsbyname() interface)


# 52efa6c1 30-Apr-1996 Bruce Evans <bde@FreeBSD.org>

Default to udp if neither udp nor tcp is specified. The previous revision
was broken. It forced udp in all cases except the extremely unusual case
argc == 0.


# 1e3a3c5e 13-Apr-1996 Marc G. Fournier <scrappy@FreeBSD.org>

default to udp if no flags specified...closes PR#bin/759
- should this be documented in the man page?


# bbff7ca5 11-Feb-1996 Mark Murray <markm@FreeBSD.org>

#include <kerberosIV/des.h> -> #include <des.h>


# c129841a 01-Jan-1996 Peter Wemm <peter@FreeBSD.org>

Make nfsd use setproctitle from libutil...

Old code is still #ifdef OLD_SETPROCTITLE for comparison with the old
code.


# 09802b4a 15-Dec-1995 Peter Wemm <peter@FreeBSD.org>

The version of setproctitle() inside nfsd was busted. It was not terminating
the argv array, causing parts of the argv[0] to be picked up several times
by libkvm, causing strange ps results for the nfs-server and nfs-master
processes.. :-]

(How many copies of setproctitle() do we need anyway? NetBSD has it in
libc and BSDI have it in libutil.)


# a62dc406 27-Jun-1995 Doug Rabson <dfr@FreeBSD.org>

Changes to support version 3 of the NFS protocol.
The version 2 support has been tested (client+server) against FreeBSD-2.0,
IRIX 5.3 and FreeBSD-current (using a loopback mount). The version 2 support
is stable AFAIK.
The version 3 support has been tested with a loopback mount and minimally
against an IRIX 5.3 server. It needs more testing and may have problems.
I have patched amd to support the new variable length filehandles although
it will still only use version 2 of the protocol.

Before booting a kernel with these changes, nfs clients will need to at least
build and install /usr/sbin/mount_nfs. Servers will need to build and
install /usr/sbin/mountd.

NFS diskless support is untested.

Obtained from: Rick Macklem <rick@snowhite.cis.uoguelph.ca>


# d599144d 22-Sep-1994 Garrett Wollman <wollman@FreeBSD.org>

Automatically load NFS and a bevy of other filesystems.


# 6aab3b5a 11-Aug-1994 David Greenman <dg@FreeBSD.org>

Use nulls to pad proctitle rather than spaces...makes ps(1) output more
readable.


# 8fae3551 26-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

BSD 4.4 Lite sbin Sources

Note: XNSrouted and routed NOT imported here, they shall be imported with
usr.sbin.