Thu May  6 10:25:27 1999  Thomas Bushnell, BSG  <tb@mit.edu>

	* utilities.c (pextend): Free MORE before returning.
	* dir.c (linkup): Don't free tempname until after we're done using
	it in the call to warning.
	Reported by Katsuya Tanaka (tanaka@boarderz.com).
	
1999-03-25  Roland McGrath  <roland@baalperazim.frob.com>

	* setup.c (setup): Don't complain if the device is a block device.

Wed Feb 19 23:10:39 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* main.c (argp_program_version): Make const.

Thu Sep 12 16:40:10 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* Makefile (HURDLIBS): New variable.
	($(target)): Delete special depedency.

	* Makefile (vpath tables.c): Put after Makeconf inclusion to catch
	setting of $(top_srcdir).

Fri Sep  6 16:44:07 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* main.c (argp_program_version): Fix typo.

Thu Sep  5 11:42:21 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* main.c: Include <version.h>.
 	(argp_program_version): Define with STANDARD_HURD_VERSION.

Fri Aug 16 10:25:37 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* dir.c (record_directory): Maximum number of block pointers to
	record is NDADDR + NIADDR, not NDADDR * NIADDR.
	* pass2.c: Include <assert.h>.
 	(pass2): Before copying block addresses to DINO in basic
	integrity check, assert that DNP->i_numblks isn't too big.

Mon Aug 12 11:39:12 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* Makefile (dir): Now ufs-fsck.

Tue Jul 23 19:32:09 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* inode.c (allocino): `struct timespec' now uses a field prefix
	of `tv_'.
	* utilities.c (pinode): Likewise.

Thu Jul 18 14:55:14 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* pass2.c (pass2): If an entire directory block is null, allow
	preen to patch it into a normal empty directory entry.

Sat Jul  6 19:59:27 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* main.c (argp_program_version): New variable.
	<hurd.h>: New include.

Mon Jul  1 12:55:48 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* pass2.c (pass2): Don't skip empty directories in `.' and `..'
 	correctness check; we don't clear them the way BSD does, so we
 	want `.' and `..'  to get created for us.  Also handle `.' before
 	`..' so that they get created in the usual order for empty
 	directories.

	* dir.c (makeentry): After successful directory expansion, write
 	out modified directory inode.

	* pass4.c (pass4): If a reconnect fails while we are preening,
 	give up.

Mon Jun 24 10:19:39 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* utilities.c (errexit, punt): Exit with status 8 for catastrophic
 	failures.

Thu May 23 14:12:21 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* pass2.c (pass2): Don't clear all node types in directories, just
 	clear those that are wrong.

Tue May 14 16:49:46 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* pass2.c (pass2): Fix up test in preen case.

Tue May 14 15:29:36 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* pass2.c (pass2): Handle directory entry type fields better for
 	Hurd.

Sat May 11 01:07:49 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* main.c (parse_opt): Use ARGP_ERR_UNKNOWN instead of EINVAL.

Thu May  9 20:12:51 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* pass1b.c (pass1b): Bother to initialize NUMBER.

Fri May  3 00:48:39 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* main.c (nice_size, show_stats): New functions.
	(main): Use show_stats.

Wed May  1 13:59:06 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* main.c (main): Shorten summary message so that it fits on one line.
	* utilities.c (no_preen): New function.
	(problem, warning, pinode): Use it.
	(warning): Don't flush all pending problems, just our own.
	* dir.c (linkup): Consistently put quotes around filenames.

	* main.c (preen, num_files): New variables.
	(main): Implement clean-bit checking in preen mode, and print
	summary statistics.
	(main, options): Add --force & --silent options.
	* pass1.c (pass1): Increment NUM_FILES.
	When clearing inode due to bad blocks, continue.
	* inode.c (allocino, freeino): Frob NUM_FILES.
	* fsck.h (force): New declaration.
	* pass5.c (pass5): Vary clean msg depending on whether FSMODIFIED.
	* setup.c (setup): Use error to print error msgs.
	<error.h>, <errno.h>: New includes.

	* utilities.c (problem, warning, pextend, pfail): New functions.
	(pinode, pfix, reply): Use new problem recording stuff.
	(push_problem, resolve_problem, flush_problems): New functions.
	(struct problem): New type.
	(problems, free_problems): New variables.
	(retch, punt): New functions.
	* fsck.h (problem, warning, pextend, pfail): New declarations.
	(pinode): Update declaration.
	* dir.c (validdir, makeentry, linkup): Use new printing functions.
	* pass1.c (pass1): Likewise.
	* pass1b.c (pass1b): Likewise.
	* pass2.c (pass2): Likewise.
	* pass3.c (pass3): Likewise.
	* pass4.c (pass4): Likewise.
	* pass5.c (pass5): Likewise.
	* setup.c (setup): Likewise.

Tue Apr 30 19:06:42 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* pass5.c (pass5): Be sure to call pwarn before pfix.
	* main.c (main): Don't print large obnoxious banner if PREEN.

Fri Apr 26 16:20:37 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* inode.c (allocino): Parenthesize test correctly.

	* fsck.h (swab_disk): Define as constant zero.

	* pass5.c (pass5): If not marked clean, but now it is, then offer
 	to mark it clean.
	* utilities.c (reply): Set fix_denied anytime we return 0.
	* fsck.h (fix_denied): New variable.

Wed Apr 24 13:32:39 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* pass1.c (pass1): Don't print block numbers as we go anymore.

Tue Apr 23 10:11:49 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* pass5.c (pass5): Correctly track contig summaries even though
 	they aren't used by the filesystem; we still need to preserve the
 	format.

Mon Apr 15 12:51:41 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* Makefile (vpath tables.c): Find ufs directory in $(top_srcdir).

Tue Apr  2 09:00:53 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* pass1.c (pass1): Print mode correctly in unknown file type case.
	Recognize inode type IFSOCK too.

Mon Mar 18 19:48:39 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* main.c (main): Pass new arg to argp_parse.  Use argp_usage correctly.

Thu Oct 19 17:45:12 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* main.c (main): Exit with a non-zero status if we fixed anything.
	Use argp to parse options.
	(options): Converted to argp format.
	(args_doc): New variable.
	(USAGE, usage, SHORT_OPTIONS): Removed.
	Include <argp.h> instead of <getopt.h>.
	* Makefile ($(target)): Depend on libshouldbeinlibc.a.

Fri Sep 22 16:55:03 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* utilities.c (pfix): New function.
	(pfatal, pwarn, errexit): Print DEVICE_NAME too if in preen mode.
	* fsck.h: Declare DEVICE_NAME.
	* setup.c (setup): Set DEVICE_NAME.
	* pass1.c, pass2.c, pass3.c, pass4.c, pass5.c (pass1, pass2,
	pass3, pass4, pass5): Call pfix instead of printf.
	* pass1.c (pass1): Only print progress report if not in preen mode.
	* main.c (main): Only print section headers if not in preen mode.

Wed Sep 20 09:11:59 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* utilities.c (pinode): Take a message & args to print as well.
	* fsck.h: Change declaration of pinode.
	* pass2.c (pass2): Use changed pinode.
	* pass3.c (pass3): Use changed pinode.
	* pass4.c (pass4): Use changed pinode.

Tue Sep 19 15:37:02 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* pass1.c (pass1): Change the extent of DBWARN & IBWARN so that
	they actually work.
	* pass2.c (pass2): Adjust our record of link counts when we
	add/change dir entries; also print error messages when we can't.
	* pass4.c (pass4): If an unlinked file can't be reconnected, offer
	to clear it.  Once a reconnect attempt fails, don't try again.
	* dir.c (linkup): Print the value of LFNAME rather than `lost+found'.
	(searchdir, changeino): Fix backward compare.
	(linkup): Don't fail when makeentry succeeds.
	(searchdir): Make searchdir return zero if there's an error
 	during the search.
	(linkup): Print appropiate error messages if searchdir fails.
	(validdir): Get rid of extra newlines in error messages --
 	everyone who calls this routine prints extra information if it
 	fails, which should immediately follow.
	* main.c (main): Use getopt to parse command line options.
	(usage): New function.
	(options): New variable.
	(lfname, lfmode): Variables moved here from setup.c.
	(lfname): Made into a char* so that we can change it.
	(lfmode): Get rid of IFDIR; it's added when necessary.
	* fsck.h: Change LFNAME to char*.
	* setup.c (lfname, lfmode): Variables moved to main.c.

Sat Sep  9 12:12:59 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* Makefile (target): Changed to `fsck.ufs'.
	(installationdir): New variable, install into $(sbindir).

Thu Jul  6 15:33:46 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* fsck.h (lookup_directory): New decl.

	* pass1.c (pass1): Remove assignment from if test.
	* utilities.c (pinode): Likewise.

	* Makefile (tables.o): Delete rule.
	(vpath tables.c): Tell where to find tables.c.

	* Makefile: Removed dependencies that are now automatically
 	generated.

Thu Nov  3 17:19:03 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* Makefile (dir): Changed to fsck.
	(target): Changed to fsck.

Wed Nov  2 14:39:13 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* pass2.c (pass2): Use DIRECT_NAMLEN instead of d_namlen
	throughout.
	* dir.c (searchdir): Likewise.
	(changeino): Likewise.
	(makeentry): Likewise.

Mon Oct 17 16:07:56 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* inode.c (inode_iterate): FN takes new third arg.
	Keep track of new var `offset' and pass it to FN.
	* pass2.c (pass2/checkdirblock): New third arg.
	Only scan DIRBLKSIZ chunks to the total size of the file.
	* dir.c (searchdir/checkdirblock): Likewise.
	(changeino/checkdirblock): Likewise.
	(makeentry/checkdirblock): Likewise.
	* pass1.c (pass1/checkblock): New third arg (ignored).
	* pass1b.c (pass1b/checkblock): Likewise.

	* inode.c (inode_iterate): Compute MAXB correctly.

	* utilities.c (getinode): Multiple ino_to_fsbo by
	sizeof (struct dinode).
	(write_inode): Likewise.
	(getinode): Inode buffer needs to be a full block, not a
	fragment.

Fri Oct 14 21:07:09 1994  Michael I Bushnell  <mib@churchy.gnu.ai.mit.edu>

	* utilities.c (lastifrag): New variable.
	(getinode): Use lastifrag instead of buf; Only I/O new block
	if lastifrag isn't what we want.
	(write_inode): Likewise.

Fri Oct 14 17:44:59 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* setup.c (setup): Test ISCHR, not ISDIR.
	Fix NCYL against NCG * CPG test.
	Bother to set MAXFSBLOCK, MAXINO, and DIRECT_SYMLINK_EXTENSION.