+2003-08-20 Theodore Ts'o <tytso@mit.edu>
+
+ * journal.c (e2fsck_move_ext3_journal): If the superblock's backup
+ journal information is not set, copy the journal inode
+ information to the superblock.
+ (e2fsck_get_journal): If the journal inode is corrupted,
+ synthesize one from the backup information in the
+ superblock.
+
+ * problem.c, problem.h (PR_0_BACKUP_JNL): Add new problem code
+ which is used when we make a backup of the journal inode.
+
+2003-08-19 Theodore Ts'o <tytso@mit.edu>
+
+ * e2fsck.h, unix.c (PRS, e2fsck_clear_progbar,
+ e2fsck_simple_progress): Don't print the ^A and ^B
+ characters which bracket the progress bar when the e2fsck
+ program is talking directly to a tty, but only when it is
+ being piped to another program. (Addresses Debian bug
+ #204137)
+ * unix.c: Move some initialized variables to the BSS segment to
+ shrink the size of the e2fsck executable.
+
+2003-08-01 Philipp Thomas <pthomas@suse.de>
+
+ * Include inttypes.h if present. New macros INT_TO_VOIDPTR and
+ VOIDPTR_TO_INT. Use them throughout for int<->void *
+ casts to fix 64-bit warnings.
+
+ * dirinfo.c, dx_dirinfo.c, e2fsck.c, ea_refcount.c, journal.c,
+ message.c, pass1.c, pass1b.c, pass2.c, pass3.c, pass4.c,
+ pass5.c, super.c, swapfs.c: ext2fs_getmem(),
+ ext2fs_free_mem(), and ext2fs_resize_mem() all now take a
+ 'void *' instead of a 'void **' in order to avoid pointer
+ aliasing problems with GCC 3.x.
+
+2003-07-25 Theodore Ts'o <tytso@mit.edu>
+
+ * Release of E2fsprogs 1.34
+
+2003-07-06 Theodore Ts'o <tytso@mit.edu>
+
+ * pass2.c: Fix gcc -Wall nitpicks (missing #include <string.h>)
+
+ * dict.c, dict.h: Fix gcc -Wall nitpicks (indented cpp directives)
+
+2003-06-8 Theodore Ts'o <tytso@mit.edu>
+
+ * problem.c: Fix spelling error.
+
+2003-05-17 Theodore Ts'o <tytso@mit.edu>
+
+ * unix.c (show_stats), e2fsck.h: Use ngettext (abbreivated with
+ the macro P_(str1, str2, n)) to simplify the statistics
+ reporting.
+
+2003-05-05 Theodore Ts'o <tytso@mit.edu>
+
+ * unix.c (main): If --enable-testio-debug is set, then use the
+ test_io manager so we can watch what e2fsck is doing.
+
+2003-05-03 Theodore Ts'o <tytso@mit.edu>
+
+ * unix.c (show_stats): Remove uneeded use of _() around string
+ under #ifndef NLS
+
+ * problem.c: Mark two strings (PR_1_RELOC_TO and
+ PR_2_NON_UNIQUE_FILE) as not being printf format strings.
+ Fix typo (doubled 'is') in PR_2_FILE_ACL_BAD.
+
+ * Makefile.in: Add $(LIBINTL) to the link line so we can support
+ using the internal gettext library.
+
+ * e2fsck.h: Add #ifndef protection around LOCALEDIR definition.
+
+2003-04-27 Theodore Ts'o <tytso@mit.edu>
+
+ * message.c (expand_at_expression): Fixed NLS support for message
+ abbreviations.
+
+2003-04-21 Theodore Ts'o <tytso@mit.edu>
+
+ * Release of E2fsprogs 1.33
+
+2003-04-19 Theodore Ts'o <tytso@mit.edu>
+
+ * rehash.c: Fix lint warnings by including string.h and ctype.h
+
+ * pass2.c (dict_de_cmp): Fix lint warnings by using const pointers.
+
+ * unix.c (e2fsck_simple_progress), e2fsck.h: Fix lint warnings by
+ using const pointers. Remove unused variables.
+
+2003-04-17 Theodore Ts'o <tytso@mit.edu>
+
+ * rehash.c (name_cmp): Sort the deleted inodes to the end of the
+ list, for portability to systems that whose qsort does not
+ perform a stable sort.
+
+2003-04-16 Theodore Ts'o <tytso@mit.edu>
+
+ * unix.c: Bracket progress bar output with control-A and control-B
+ characters. These characters are used as in-band
+ signalling to allow a logging program to filter out the
+ progress bar.
+ (PRS): Use setvbuf instead of setbuf to force stdout and
+ stderr to be non-buffered when the stdout/stderr are a pipe.
+ This fixes a cosmetic problem when using e2fsck under
+ logsave.
+
+2003-04-12 Theodore Ts'o <tytso@mit.edu>
+
+ * unix.c: Add #ifdef around #include <sys/ioctl.h>
+
+2003-04-05 Theodore Ts'o <tytso@mit.edu>
+
+ * super.c (check_super_block): Update the global free block and
+ inode counters from the block group specific counters
+ quietly. This is needed for an experimental patch which
+ eliminates locking the entire filesystem when allocating
+ blocks or inodes; if the filesystem is not unmounted
+ cleanly, the global counts may not be accurate.
+
+2003-03-17 Theodore Ts'o <tytso@mit.edu>
+
+ * util.c: Explicitly declare e2fsck_global_ctx as extern for the
+ benefit of the Apple Darwin port.
+
+2003-03-15 Theodore Ts'o <tytso@mit.edu>
+
+ * rehash.c (e2fsck_rehash_dir): If user specified the -n option,
+ skip trying to write out directory.
+ (e2fsck_rehash_directories): Fix the percentage
+ calculation in the progress bar.
+
+2003-03-14 Theodore Ts'o <tytso@mit.edu>
+
+ * problem.c, problem.h (PR_2_REPORT_DUP_DIRENT): Add new problem
+ code.
+
+ * pass2.c (check_dir_block): Check for duplicate filenames within
+ a single directory block (because this is the easy case;
+ we don't currently check for duplicates that span
+ directory blocks, for now. Eventually for htree
+ directories we can do this by searching for all directory
+ blocks that have a hash overflow, and then searching the
+ adjacent blocks to find all other potential duplicates.)
+
+ * iscan.c, scantest.c, unix.c: And #ifdef protection around
+ #include of malloc.h
+
+ * rehash.c (duplicate_search_and_fix): Now search for duplicates
+ filenames, and either prompt to remove a complete
+ duplicate entry, or to rename a duplicate filename.
+ (e2fsck_rehash_dir): Use a progress bar to report
+ progress, and don't print all of the directory inodes as
+ they are optimized.
+
+ * problem.c, problem.h (PR_2_DUPLICATE_DIRENT,
+ PR_2_NON_UNIQUE_FILE): New problem codes.
+
+ * unix.c (e2fsck_simple_progress), e2fsck.h: New function which
+ can be called to provide specialized progress bars that
+ are not related to the top-level pass-based completion
+ percentage.
+
+ * pass3.c (e2fsck_adjust_inode_count), e2fsck.h: Export previously
+ static function.
+
+2003-03-06 <tytso@mit.edu>
+
+ * e2fsck.8.in: Fix minor nit in the -C option. (Addresses Debian
+ bug #173612)
+
+2003-03-01 Theodore Ts'o <tytso@mit.edu>
+
+ * Makefile.in, journal.c, unix.c: Use blkid functions to find the
+ journal from the UUID, and to interpret the device
+ specification.
+
+ * e2fsck.c: Free the blkid_cache when releasing the e2fsck context
+ structure.
+
+ * e2fsck.h: If strnlen is not present, define it as a macro which
+ calls e2fsck_strlen(). Add prototype for string_copy().
+ Add blkid_cache to e2fsck context, and make
+ filesystem_name, device_name, and journal_name be
+ non-const variables.
+
+ * pass1.c, pass2.c: Remove static strnlen function
+
+ * util.c (string_copy, e2fsck_strnlen): New functions
+
+2003-01-29 Theodore Ts'o <tytso@mit.edu>
+
+ * unix.c (usage): Make descripton -c be a bit more explicit
+
+2003-01-22 Theodore Ts'o <tytso@mit.edu>
+
+ * pass1.c (check_blocks): Use the EXT2_I_SIZE macro.
+
+2003-01-02 Theodore Ts'o <tytso@mit.edu>
+
+ * unix.c (main): Detect if there is an attempt to run the journal
+ twice, and abort with an error if this is the case.
+ (Address IBM Bugzilla bug #1226)
+
+2002-12-18 Theodore Ts'o <tytso@mit.edu>
+
+ * pass2.c (strnlen): Provide strnlen if libc doesn't.
+
+2003-11-19 Theodore Ts'o <tytso@mit.edu>
+
+ * unix.c (PRS): Print an error if more than one of the -p/-a, -n
+ or -y options are specified.
+
+2002-11-12 Theodore Ts'o <tytso@mit.edu>
+
+ * problem.c: Make HTREE problems PR_PREEN_OK, so that we don't
+ abort an e2fsck after the filesystem has been mounted
+ using the 2.4 ext2 codebase.
+
+2002-11-09 Theodore Ts'o <tytso@mit.edu>
+
+ * Release of E2fsprogs 1.32
+
+2002-11-08 Theodore Ts'o <tytso@mit.edu>
+
+ * Release of E2fsprogs 1.31
+
+2002-11-08 <tytso@snap.thunk.org>
+
+ * unix.c (main): Fix a bug where e2fsck could erroneously mark a
+ filesystem as being valid if it was being checked and it
+ is interrupted with a ^C. (Bug introduced in e2fsprogs
+ 1.28.)
+
+ * unix.c (PRS), journal.c: Set the default level of journal
+ debugging to be 0, and allow the user to set the level of
+ journal debugging by using the E2FSCK_JBD_DEBUG
+ environment variable.
+
+ * pass1.c (new_table_block), super.c (check_super_block), swapfs.c
+ (swap_filesys): Clear EXT2_FLAG_MASTER_SB_ONLY to make
+ sure the backup superblocks and group descriptors are
+ updated when we make an important change to the
+ superblocks and/or group descriptors. (i.e., generating a
+ UUID, allocating filesystem metadata, or byte-swapping the
+ filesystem.)
+
+2002-11-07 Theodore Ts'o <tytso@mit.edu>
+
+ * e2fsck.h, unix.c (main, check_mount): Fix e2fsck so that it
+ returns the appropriate exit code, so that the boot
+ scripts will be told that they need to automatically
+ reboot.
+
+2002-10-31 Theodore Ts'o <tytso@mit.edu>
+
+ * Release of E2fsprogs 1.30
+
+2002-10-31 Theodore Ts'o <tytso@mit.edu>
+
+ * unix.c (usage), e2fsck.8.in: Add the -D option to the usage and
+ command synopsis. (Addresses Debian bug #167108)
+
+ * pass1.c (e2fsck_pass1): Check the superblock write time to see
+ whether or not we can safely do the LOW_DTIME checks.
+ (Addresses Sourceforge bug #620980)
+
+2002-10-30 Theodore Ts'o <tytso@mit.edu>
+
+ * Makefile.in (install): Search all compression extensions when
+ deleting old man pages.
+
+ * pass1.c (mark_table_blocks): Fix bug in meta_bg support; only
+ mark blocks legacy group descriptor blocks up to
+ s_first_meta_bg.
+
+2002-10-20 Theodore Ts'o <tytso@valinux.com>
+
+ * pass1.c (mark_table_blocks): Add support for the meta_blockgroup
+ filesystem format.
+
+2002-10-13 Theodore Ts'o <tytso@mit.edu>
+
+ * pass3.c (e2fsck_get_lost_and_found): Pass in mode 700 to
+ ext2fs_new_inode().
+
+ * unix.c (show_stats): Fix format bug if NLS is in use.
+
+ * journal.c, pass1.c, revoke.c, util.c: Fix gcc -Wall nits.
+
+2002-10-08 Theodore Ts'o <tytso@mit.edu>
+
+ * pass3.c (e2fsck_get_lost_and_found): Create the lost+found
+ directory with mode 0700.
+
+2002-10-02 Theodore Y. Ts'o <tytso@mit.edu>
+
+ * pass2.c (parse_int_node, check_dir_block): Add byte-swap
+ functions around the htree code, so that it works on
+ big-endian machines.
+
+ * swapfs.c (swap_filesys): For PPC machines, byte-swap the bitmap,
+ since PPC big-endian filesystems were historically wierd.
+ This is just for the regression test, since no one
+ actually uses them anymore...
+
+2002-09-30 Theodore Ts'o <tytso@mit.edu>
+
+ * problem.c, problem.h (PR_2_HTREE_BAD_LIMIT,
+ PR_2_HTREE_BAD_COUNT, PR_2_HTREE_HASH_ORDER,
+ PR_2_HTREE_BAD_DEPTH): Add new problem codes.
+
+ * pass2.c (salvage_directory, check_dir_block): Avoid counting
+ directory entries twice during a directory salvage. Make
+ the salvaging algorithm smarter about directory entry size
+ overruns.
+ (parse_int_node): Add check to make sure the limit and
+ count fields in the node headers are sane. Also check
+ to make sure the hash table in ascending order.
+ (pass2, htree_depth): For all leaf nodes, determine their
+ depth in the tree, and make sure it matches with the depth
+ in the htree root information.
+
+2002-09-29 Theodore Ts'o <tytso@mit.edu>
+
+ * pass2.c (check_dir_block): Do a more paranoid check when trying
+ to determine whether or not a directory entry is a
+ completely empty leaf block or leaf node. Otherwise
+ e2fsck might get confused into thinking that a valid dxdir
+ was corrupted.
+
+ * rehash.c (e2fsck_rehash_dir): Apply patch from Christopher Li
+ which avoids creating an empty directory entry at the end
+ of the directory block. This screws up earlier versions
+ of the indexed directory patch.
+
+2002-09-28 Theodore Ts'o <tytso@mit.edu>
+
+ * rehash.c (write_directory): Clear the index flag if by
+ reoptimizing the directory, we bring it back into a
+ non-indexed state.
+ (e2fsck_rehash_dir): Allow directories that contain two
+ blocks to be indexed. Otherwise when they grow, they
+ never will be indexed by the kernel.
+
+ * unix.c (main): Only update the master superblock; there's no
+ point updating the backup superblocks, and it speeds up
+ fsck slightly.
+
+ * pass2.c (salvage_directory): New function called by
+ check_dir_block() which is much more sophisticated about
+ how it salvages corrupted filesystems.
+
+2001-09-24 Theodore Tso <tytso@mit.edu>
+
+ * Release of E2fsprogs 1.29
+
+2002-09-06 Theodore Ts'o <tytso@mit.edu>
+
+ * rehash.c (copy_dir_entries): Fix bug which caused corrupted
+ directories if there are 4 or 8 bytes left over in a
+ directory page when optimizing/reindexing a directory.
+
+2001-08-31 Theodore Tso <tytso@thunk.org>
+
+ * Release of E2fsprogs 1.28
+
+2002-08-31 Theodore Ts'o <tytso@mit.edu>
+
+ * ehandler.c (e2fsck_handle_read_error): If the user asks to
+ ignore the error, offer to try forcing a write of the
+ block to the disk; sometimes this will cause the drive to
+ remap the bad block.
+
+2002-08-31 Theodore Ts'o <tytso@valinux.com>
+
+ * pass2.c (e2fsck_pass2): If this is a HTREE directory, sort the
+ dblist so that the first block of all of the directories
+ is handled first so we can read the hash version
+ information.
+ (check_dir_block): Examine the root node for correctness,
+ and offer to clear it if it is not correct. Also copy the
+ hash version to the dx_dir structure, so that the proper
+ hash function can be used for other blocks in the
+ directory.
+
+ * problem.c, problem.h (PR_2_HTREE_BAD_ROOT): Add new problem code.
+
2002-08-21 Theodore Ts'o <tytso@mit.edu>
* problem.c: Fix PR_1_RELOC_BLOCK_ALLOCATE message to explain that