Thu May 6 10:25:27 1999 Thomas Bushnell, BSG * 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 * setup.c (setup): Don't complain if the device is a block device. Wed Feb 19 23:10:39 1997 Miles Bader * main.c (argp_program_version): Make const. Thu Sep 12 16:40:10 1996 Thomas Bushnell, n/BSG * 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 * main.c (argp_program_version): Fix typo. Thu Sep 5 11:42:21 1996 Thomas Bushnell, n/BSG * main.c: Include . (argp_program_version): Define with STANDARD_HURD_VERSION. Fri Aug 16 10:25:37 1996 Thomas Bushnell, n/BSG * dir.c (record_directory): Maximum number of block pointers to record is NDADDR + NIADDR, not NDADDR * NIADDR. * pass2.c: Include . (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 * Makefile (dir): Now ufs-fsck. Tue Jul 23 19:32:09 1996 Miles Bader * 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 * 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 * main.c (argp_program_version): New variable. : New include. Mon Jul 1 12:55:48 1996 Michael I. Bushnell, p/BSG * 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 * utilities.c (errexit, punt): Exit with status 8 for catastrophic failures. Thu May 23 14:12:21 1996 Michael I. Bushnell, p/BSG * 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 * pass2.c (pass2): Fix up test in preen case. Tue May 14 15:29:36 1996 Michael I. Bushnell, p/BSG * pass2.c (pass2): Handle directory entry type fields better for Hurd. Sat May 11 01:07:49 1996 Miles Bader * main.c (parse_opt): Use ARGP_ERR_UNKNOWN instead of EINVAL. Thu May 9 20:12:51 1996 Michael I. Bushnell, p/BSG * pass1b.c (pass1b): Bother to initialize NUMBER. Fri May 3 00:48:39 1996 Miles Bader * main.c (nice_size, show_stats): New functions. (main): Use show_stats. Wed May 1 13:59:06 1996 Miles Bader * 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. , : 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 * 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 * 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 * pass1.c (pass1): Don't print block numbers as we go anymore. Tue Apr 23 10:11:49 1996 Michael I. Bushnell, p/BSG * 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 * Makefile (vpath tables.c): Find ufs directory in $(top_srcdir). Tue Apr 2 09:00:53 1996 Michael I. Bushnell, p/BSG * 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 * main.c (main): Pass new arg to argp_parse. Use argp_usage correctly. Thu Oct 19 17:45:12 1995 Miles Bader * 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 instead of . * Makefile ($(target)): Depend on libshouldbeinlibc.a. Fri Sep 22 16:55:03 1995 Miles Bader * 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 * 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 * 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 * Makefile (target): Changed to `fsck.ufs'. (installationdir): New variable, install into $(sbindir). Thu Jul 6 15:33:46 1995 Michael I Bushnell * 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 * Makefile (dir): Changed to fsck. (target): Changed to fsck. Wed Nov 2 14:39:13 1994 Michael I Bushnell * 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 * 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 * 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 * setup.c (setup): Test ISCHR, not ISDIR. Fix NCYL against NCG * CPG test. Bother to set MAXFSBLOCK, MAXINO, and DIRECT_SYMLINK_EXTENSION.