Find a file
Kirk McKusick 4ed62fbd7f The only known cause of this panic is running out of disk space.
The problem occurs when an indirect block and a data block are
being allocated at the same time. For example when the 13th block
of the file is written, the filesystem needs to allocate the first
indirect block and a data block. If the indirect block allocation
succeeds, but the data block allocation fails, the error code
dellocates the indirect block as it has nothing at which to point.
Unfortunately, it does not deallocate the indirect block's associated
dependencies which then fail when they find the block unexpectedly
gone (ptr == 0 instead of its expected value). The fix is to fsync
the file before doing the block rollback, as the fsync will flush
out all of the dependencies. Once the rollback is done the file
must be fsync'ed again so that the soft updates code does not find
unexpected changes. This approach is much slower than writing the
code to back out the extraneous dependencies, but running out of
disk space is not expected to be a common occurence, so just getting
it right is the main criterion.

PR:		kern/15063
Submitted by:	Assar Westerlund <assar@stacken.kth.se>
2000-01-11 08:27:00 +00:00
bin Add `.Nm red' to NAME section. 2000-01-10 12:20:30 +00:00
contrib 10 X's in mkstemp(). 2000-01-10 09:17:46 +00:00
crypto Zap NO_IDEA 2000-01-10 06:28:04 +00:00
etc Add missing -p /tmp/MTREE to mtree command in README so that it 2000-01-11 07:57:09 +00:00
games Backout rev1.7, as it broke adventure(6) (const'ing a non-r/o variable). 1999-12-25 03:50:42 +00:00
gnu This change was mis-identified as the problem, sorry. It appears to be 2000-01-11 03:27:33 +00:00
include Make sched_param parameter a const to comply with POSIX and SUSv2 specs. 2000-01-10 04:14:08 +00:00
kerberos5 Bring in SRA for telnet. 1999-10-07 18:59:55 +00:00
kerberosIV Update for KTH Kerberos (eBones) v1.0 2000-01-09 08:59:39 +00:00
lib Install html files to /usr/share/doc/ncurses/ 2000-01-10 12:12:51 +00:00
libexec Revamp the mechanism for enumerating and calling shared objects' 2000-01-09 21:13:48 +00:00
release Upgrade to XFree86 3.3.6 2000-01-11 03:59:14 +00:00
sbin Backed out removal of vendor id and gratuitous change of tmpfile prefix 2000-01-11 07:28:46 +00:00
secure Really really remove SHA-1 support. 2000-01-09 21:22:48 +00:00
share Removed NOEXTRADEPEND hack. This was only for an old version of makeworld. 2000-01-09 15:40:32 +00:00
sys The only known cause of this panic is running out of disk space. 2000-01-11 08:27:00 +00:00
tools Don't use -C internally. Use -c. For some reason files are not copied 1999-12-15 18:08:56 +00:00
usr.bin malloc more space for temp file name 2000-01-10 20:26:24 +00:00
usr.sbin Document the (in)security features of CTM, especially ctm_rmail. 2000-01-11 07:46:33 +00:00
COPYRIGHT Update to add the July 22, 1999 addendum. 1999-09-05 21:33:47 +00:00
Makefile Add the buildkernel and installkernel targets. 2000-01-09 18:17:48 +00:00
Makefile.inc1 Add a buildkernel and an installkernel target. With these targets 2000-01-09 17:56:40 +00:00
Makefile.upgrade $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
README $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
UPDATING Spell chown right. 2000-01-09 05:12:25 +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 and the contents of /etc.  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 with config(8) 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.

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 LINT contains entries for all possible devices, not
just those commonly used, and is meant more as a general reference
than an actual kernel configuration file (a kernel built from it
wouldn't even run).


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

contrib		Packages contributed by 3rd parties.

crypto		Export controlled 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		DES and DES-related utilities - NOT FOR EXPORT!

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