FreeBSD src
Go to file
Rick Macklem 713f46ac47 jwd@ reported a problem via email where the old NFS client would
get a reply of EEXIST from an NFS server when a Mkdir RPC was retried,
for an NFS over UDP mount.
Upon investigation, it was found that the client was retransmitting
the Mkdir RPC request over UDP, but with a different xid. As such,
the retransmitted message would miss the Duplicate Request Cache
in the server, causing it to reply EEXIST. The kernel client side
UDP rpc code has two timers. The first one causes a retransmit using
the same xid and socket and was set to a fixed value of 3seconds.
(The default can be overridden via CLSET_RETRY_TIMEOUT.)
The second one creates a new socket and xid and should be larger
than the first. However, both NFS clients were setting the second
timer to nm_timeo ("timeout=<value>" mount argument), which defaulted to
1second, so the first timer would never time out.
This patch fixes both NFS clients so that they set the first timer
using nm_timeo and makes the second timer larger than the first one.

Reported by:	jwd
Tested by:	jwd
Reviewed by:	jhb
MFC after:	2 weeks
2011-12-21 02:45:51 +00:00
bin Fix some obtuse fprintf tricks in bin/ed. 2011-12-16 21:12:23 +00:00
cddl In cddl/contrib/opensolaris/cmd/dtrace/dtrace.c, fix some obtuse 2011-12-16 21:48:09 +00:00
contrib Clean an inconsistency with -ffinite-math-only. 2011-12-21 01:58:35 +00:00
crypto Add a -x option that causes ssh-agent(1) to exit when all clients have 2011-10-07 13:10:16 +00:00
etc - Put one file into one line. This makes keeping local changes and merging 2011-12-15 21:06:37 +00:00
games In games/factor/factor.c, fix a warning about a format string not being 2011-12-16 21:24:11 +00:00
gnu Define YY_NO_INPUT when building libbinutils, to prevent warnings about 2011-12-16 22:19:13 +00:00
include - Add restrict keyword to glob(3) 2011-12-20 22:56:13 +00:00
kerberos5 Don't support OpenLDAP during lib32 build. 2011-12-06 12:03:01 +00:00
lib - Fix style(9) bugs in glob.c 2011-12-20 22:56:44 +00:00
libexec Additional icache paranoia: non-PLT relocations can modify the text segment. 2011-12-17 16:20:27 +00:00
release - Based on a report on sparc64@ move V245 to the list of known working 2011-11-27 16:50:13 +00:00
rescue -lreadline is not required anymore. 2011-11-29 03:27:09 +00:00
sbin Change the type of real_dev_bsize variable from long to u_int. 2011-12-20 20:39:00 +00:00
secure Force linker error when created shared library contains a relocation 2011-12-06 11:28:17 +00:00
share Add myself with mentor relationships 2011-12-20 21:16:49 +00:00
sys jwd@ reported a problem via email where the old NFS client would 2011-12-21 02:45:51 +00:00
tools Catch up with new driver ioctls in cxgbe. 2011-12-16 20:38:22 +00:00
usr.bin Sync bsdcpio with vendor branch release/2.8: 2011-12-20 20:37:17 +00:00
usr.sbin Allow boot0cfg to force a PXE boot via boot0 on the next boot. 2011-12-20 15:19:29 +00:00
COPYRIGHT Happy New Year 2011. 2010-12-31 18:07:16 +00:00
LOCKS
MAINTAINERS Farewall, sysinstall! You served us well for many years, but 10.0 is one 2011-10-03 15:13:09 +00:00
Makefile Replace 'chflags' with 'file flags' in a comment, since 'chflags' 2011-11-20 20:05:47 +00:00
Makefile.inc1 - CTF knob is now implemented using common scheme: MK_CTF=yes/no is 2011-11-30 18:11:49 +00:00
Makefile.mips Retire TARGET_ABI. 2011-01-07 20:26:33 +00:00
ObsoleteFiles.inc Remove if_carp.ko. /boot/kernel should be upgraded atomically. 2011-12-19 12:50:12 +00:00
README Add the cddl/ directory. 2010-11-14 11:32:56 +00:00
UPDATING A major overhaul of the CARP implementation. The ip_carp.c was started 2011-12-16 12:16:56 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel, the kernel-modules and the contents of /etc.  The ``world''
target should only be used in cases where the source tree has not
changed from the currently running version.  See:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
for more information, including setting make(1) variables.

The ``buildkernel'' and ``installkernel'' targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process, documentation
for which can be found at:
   http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
And in the config(8) man page.
Note: If you want to build and install the kernel with the
``buildkernel'' and ``installkernel'' targets, you might need to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/<arch>/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file NOTES contains entries and documentation for all possible
devices, not just those commonly used.  It is the successor of the ancient
LINT file, but in contrast to LINT, it is not buildable as a kernel but a
pure reference and documentation file.


Source Roadmap:
---------------
bin		System/user commands.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html