Whamcloud - gitweb
Add support for backing up the journal inode location in the
[tools/e2fsprogs.git] / e2fsck / ChangeLog
index 6581282..2a8b9c8 100644 (file)
@@ -1,3 +1,394 @@
+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