Go to file
Ian Dowse 0864ef1e8a Change the second argument of vflush() to an integer that specifies
the number of references on the filesystem root vnode to be both
expected and released. Many filesystems hold an extra reference on
the filesystem root vnode, which must be accounted for when
determining if the filesystem is busy and then released if it isn't
busy. The old `skipvp' approach required individual filesystem
xxx_unmount functions to re-implement much of vflush()'s logic to
deal with the root vnode.

All 9 filesystems that hold an extra reference on the root vnode
got the logic wrong in the case of forced unmounts, so `umount -f'
would always fail if there were any extra root vnode references.
Fix this issue centrally in vflush(), now that we can.

This commit also fixes a vnode reference leak in devfs, which could
result in idle devfs filesystems that refuse to unmount.

Reviewed by:	phk, bp
2001-05-16 18:04:37 +00:00
bin Fix operation of df on unmounted filesystems, and add the ability to run df 2001-05-09 08:44:15 +00:00
contrib Fix problem with static linking: 2001-05-16 11:05:03 +00:00
crypto Hack to work around braindeath in libtelnet:sra.c. The sra.o file 2001-05-15 09:52:03 +00:00
etc Allow users to add local Makefile targets. 2001-05-15 16:03:54 +00:00
games %DCL-I-FORMATRIGHT, Format VMS error messages pedantically correct. 2001-04-23 06:08:30 +00:00
gnu Add support for FreeBSD 4.4. 2001-05-15 17:04:26 +00:00
include Install wchar.h and wctype.h. 2001-05-16 11:38:18 +00:00
kerberos5 use print_version from lib/vers instead of lib/roken 2001-05-14 09:24:50 +00:00
kerberosIV Fix PAMized telnet in exactly the same way as BDE did it for the other 2001-05-11 09:39:11 +00:00
lib Unbreak world; _DIAGASSERT macro is not available in FreeBSD. 2001-05-16 14:34:47 +00:00
libexec Performance improvements for the ELF dynamic linker. These 2001-05-05 23:21:05 +00:00
release In some cases, there are some <sect1></sect1> elements that will have 2001-05-14 22:31:51 +00:00
sbin mdoc(7) police: fix markup in revision 1.27. 2001-05-15 16:03:59 +00:00
secure Fixed world breakage in previous commit. -lpam must never be used 2001-05-09 14:30:49 +00:00
share Add BUGS section describing the requirement to manually load the KLD. 2001-05-16 17:30:15 +00:00
sys Change the second argument of vflush() to an integer that specifies 2001-05-16 18:04:37 +00:00
tools Update this to reflect changes in config(8) usage. 2001-04-23 17:31:16 +00:00
usr.bin mdoc(7) police: fix markup. 2001-05-16 13:53:19 +00:00
usr.sbin Fix man page markup. 2001-05-16 17:09:00 +00:00
COPYRIGHT
Makefile Make it possible to build manpages for the entire source tree. 2001-03-27 08:43:28 +00:00
Makefile.inc1 Add kbdcontrol(1) to bootstrap-tools. 2001-05-14 17:21:02 +00:00
Makefile.upgrade
README Slightly improve the description of "crypto". "DES" is a subset of 2000-08-31 17:59:01 +00:00
UPDATING Note recent windows of breakage. 2001-05-16 04:34:40 +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
``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/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 have to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/i386/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.

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.

kerberosIV	Kerberos package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

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/handbook/synching.html