Commit Graph

86 Commits

Author SHA1 Message Date
Kevin Lo
fdb6437f73 Remove duplicated header files 2011-06-24 07:05:20 +00:00
Rick Macklem
ed3f96b28e Fix the nfsv4 man page to reflect the changes related to
making the new NFS client and server the default.
This is a content change.
2011-05-15 22:46:45 +00:00
Rick Macklem
6c77e3b501 Patch the mountd and nfsd man pages to reflect the recent changes
done by r220980 to deprecate the -e option and add the -o option.
This is a content change for both man pages.
2011-04-24 01:11:28 +00:00
Rick Macklem
2a85df8ca0 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@.
2011-04-24 00:06:56 +00:00
Rick Macklem
e5e8d6ad0a Add stablerestart(5) to the See Also list for nfsd.8.
This is a content change.

Suggested by:	Jeremy Chadwick
MFC after:	2 weeks
2011-04-19 23:33:51 +00:00
Rick Macklem
31902c84f5 Revert r220809 since it put the entry in the wrong place
in the list and didn't change the date.
2011-04-19 13:19:13 +00:00
Rick Macklem
74ddb1e945 Add stablerestart(5) to the See Also list for nfsd(8).
This is a content change.

Suggested by:	Jeremy Chadwick
MFC after:	2 weeks
2011-04-19 00:47:26 +00:00
Rick Macklem
9d12ecf01e Modify the man pages to reflect the addition of a backup
stable restart file, as done by r220510.
This is a content change.

MFC after:	2 weeks
2011-04-10 13:45:46 +00:00
Rick Macklem
3d77ac51e4 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
2011-04-10 01:54:42 +00:00
John Baldwin
873ec24ac8 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
2011-02-17 17:03:56 +00:00
Joel Dahl
c2025a7660 Fix typos, spelling, formatting and mdoc mistakes found by Nobuyuki while
translating these manual pages.  Minor corrections by me.

Submitted by:	Nobuyuki Koganemaru <n-kogane@syd.odn.ne.jp>
2010-08-16 15:18:30 +00:00
Joel Dahl
f6ac23919b Fix typos and spelling mistakes. 2010-08-06 14:33:42 +00:00
Ulrich Spörlein
25c8b07fc2 mdoc: Garbage collect unused/unneeded macros 2010-05-27 13:56:27 +00:00
Ed Schouten
71ccf09269 The last big commit: let usr.sbin/ use WARNS=6 by default. 2010-01-02 11:07:44 +00:00
Ed Schouten
10bc3a7f42 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.
2009-12-29 22:53:27 +00:00
Edward Tomasz Napierala
f32534450f Yet another cosmetic fix. 2009-12-03 20:06:03 +00:00
Edward Tomasz Napierala
1f5dd95b20 Cosmetical fixes. 2009-12-03 20:02:26 +00:00
Edward Tomasz Napierala
91c72a9ad2 Cosmetical fixes. 2009-12-03 19:59:27 +00:00
Christian Brueffer
cf6c5eebe7 Use our canonical .Dd format.
Submitted by:	Ulrich Spoerlein
2009-11-02 12:35:38 +00:00
Doug Rabson
0775314b63 Don't use sys/nfs/rpcv2.h - it is part of the old kernel RPC implementation
and will be removed.
2009-06-24 18:42:21 +00:00
Rick Macklem
924823491e Update the content of the nfsv4.4 man page to reflect the final
choice of variable names for rc.conf and option name for the
experimental server.
Also replace the inaccurate description of the nfsv4 root lines
in /etc/exports, mostly with a reference to exports(5).

Approved by:	kib (mentor)
2009-06-12 14:18:13 +00:00
Rick Macklem
35f2eba009 Re-format the nfsv4.4 man page so that all sentences start on a
new line.

Approved by:	kib (mentor)
2009-06-03 21:50:26 +00:00
Rick Macklem
2179ae1ebf 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)
2009-05-28 20:28:13 +00:00
Rick Macklem
20d0a5e544 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)
2009-05-24 01:18:56 +00:00
Doug Rabson
a9148abd9d 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
2008-11-03 10:38:00 +00:00
Xin LI
487e86678e Previous revision was broken on SPARC, fix it by using more appropriate type.
Reported by:	tindebox
Pointy hat to:	delphij
2005-12-21 10:12:05 +00:00
Xin LI
6f229bd3ae Use size_t for length. 2005-12-21 02:25:59 +00:00
Robert Watson
3f7c86a8c3 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>
2005-01-23 21:34:00 +00:00
Ruslan Ermilov
a866e17077 Added the EXIT STATUS section where appropriate. 2005-01-17 07:44:44 +00:00
Xin LI
6f52836b84 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 :-)
2004-11-06 18:15:44 +00:00
Warner Losh
486c8cc4c6 Per letter dated July 22, 1999 remove 3rd clause of Berkeley derived software
(with permission of addtional copyright holders where appropriate)
2004-08-07 04:28:56 +00:00
Ruslan Ermilov
07bfccd71e Mechanically kill hard sentence breaks. 2004-07-02 23:13:00 +00:00
Simon L. B. Nielsen
e734927e56 Add a cross reference to exports(5). While exports is not directly
tied to nfsd(8), exports is the configuration file users will most
likely need to configure when dealing with a NFS server.

Submitted by:	Florian Hars <hars@bik-gmbh.de>
PR:		docs/64714
MFC after:	3 days
2004-03-30 20:43:07 +00:00
Robert Watson
0be1e825d6 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
2004-01-11 01:29:03 +00:00
David E. O'Brien
052238b16c style.Makefile(5) 2003-04-04 17:49:21 +00:00
Maxime Henrion
34053f6ffb Update manpage to match the code, vfsload() is not used
here since some time, kldload() is used instead.
2002-08-11 15:19:49 +00:00
Peter Wemm
b8815b31fb Bah, I forgot to commit this part of the nfssvc() cleanup. Sorry folks. 2002-07-25 06:18:22 +00:00
Hajimu UMEMOTO
fc99a00c7f use IPV6_V6ONLY instead of non standard IPV6_BINDV6ONLY.
MFC after:	1 week
2002-07-22 15:22:53 +00:00
Alexander Kabaev
4cc03f63d1 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
2002-07-22 14:01:44 +00:00
Philippe Charnier
e1205e80e5 The .Nm utility 2002-07-06 19:34:18 +00:00
Gordon Tetlow
3600cbb7c4 Fix spelling nit in error message. 2002-06-05 01:06:33 +00:00
Peter Wemm
37436e4075 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.
2002-05-01 06:49:43 +00:00
Pierre Beyssac
85554bf8ff Fix problem in macro definition breaking compiles with -DDEBUG.
PR:		bin/35773
Submitted by:	Thomas Quinot <thomas@cuivre.fr.eu.org>
2002-03-26 17:37:59 +00:00
David E. O'Brien
2d68bf45bf Default to WARNS=2.
Binary builds that cannot handle this must explicitly set WARNS=0.

Reviewed by:	mike
2001-12-04 02:19:58 +00:00
Ian Dowse
fef7dd5a5f 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
2001-10-16 21:55:53 +00:00
Peter Wemm
12f8604fde Deal with nfs server module changes for autoloading. 2001-09-20 02:18:06 +00:00
Peter Wemm
9119623471 Userland part of nfs client/server split and cleanup. 2001-09-18 23:34:44 +00:00
Ruslan Ermilov
d628d776c4 mdoc(7) police: utilize the new .Ex macro. 2001-08-15 09:09:47 +00:00
Dima Dorfman
7ebcc426ef Remove whitespace at EOL. 2001-07-15 07:53:42 +00:00
Ruslan Ermilov
5521ff5a4d mdoc(7) police: sort SEE ALSO xrefs (sort -b -f +2 -3 +1 -2). 2001-07-06 16:46:48 +00:00