Whamcloud - gitweb
Make the e2fsck man page clear that the -c, -l, and -L options are
[tools/e2fsprogs.git] / e2fsck / ChangeLog
index 79a9bcd..ff24b42 100644 (file)
@@ -1,3 +1,366 @@
+2005-06-19  Theodore Ts'o  <tytso@mit.edu>
+
+       * e2fsck.8.in: Make it clear that the -c, -l, and -L options are
+               never safe to use on a mounted filesystem, and in general,
+               running e2fsck on mounted filesystems is a bad idea.
+
+2005-06-16  Theodore Ts'o  <tytso@mit.edu>
+
+       * message.c: Add @m (multiply-claimed) and @n (invalid)
+               expansions.
+
+       * problem.c: Clean up the problem messages displayed by e2fsck.
+
+2005-06-05  Theodore Ts'o  <tytso@mit.edu>
+
+       * e2fsck.8.in: Add a request to the REPORTING BUGS section of the
+               man page to make sure that e2fsck's messages are printed
+               in English, and to send a raw e2image filesystem dump if
+               possible.
+
+2005-05-05  Theodore Ts'o  <tytso@mit.edu>
+
+       * badblocks.c (check_bb_inode_blocks): Clean up warning printf.
+               Thanks to Benno Schulenberg for the patch.  (Addresses
+               Sourceforge Bug: #1189803)
+
+2005-04-16  Theodore Ts'o  <tytso@mit.edu>
+
+       * e2fsck.8.in: Fix spelling mistakes in man pages.  (Addresses
+               Debian Bugs: #304593)
+
+2005-04-14  Theodore Ts'o  <tytso@mit.edu>
+
+       * pass1b.c (pass1d): Don't offer to clone or delete the resize
+               inode; it's not allowed!
+
+       * e2fsck.c, e2fsck.h, journal.c, pass1.c, pass1b.c, pass2.c,
+               pass3.c, pass4.c, super.c, unix.c: Use a centrally stored
+               current time for "now" which can be overridden using the
+               E2FSCK_TIME environment variable, for better
+               reproducibility for regression tests.
+
+2005-04-06  Theodore Ts'o  <tytso@mit.edu>
+
+       * pass1.c (e2fsck_pass1): If the superblock last mount time (not
+               just the last write time) looks insane, then assume that
+               we can't do the LOW_DTIME checks.
+
+2005-03-21  Theodore Ts'o  <tytso@mit.edu>
+
+       * Release of E2fsprogs 1.37
+
+2005-03-21  Theodore Ts'o  <tytso@mit.edu>
+
+       * message.c, pass1.c, problem.c, problem.h, util.c: Integrate code
+               from Alex Thomas at Clusterfs to check extended attributes
+               stored in inodes.
+
+       * message.c (expand_inode_expression): Add support for %IS in
+               problem descriptions.  Note that this only works if the
+               problem context has a pointer to a large inode!
+
+       * problem.h, problem.c (PR_1_EXTRA_ISIZE, PR_1_ATTR_NAME_LEN,
+               PR_1_ATTR_VALUE_OFFSET, PR_1_ATTR_VALUE_BLOCK,
+               PR_1_ATTR_VALUE_SIZE, PR_1_ATTR_HASH): Add new problem
+               codes.
+
+       * util.c (e2fsck_write_inode_full): New function.
+
+       * pass1.c (check_ea_in_inode, check_inode_extra_space): New
+               function which tests the validity of extended attributes
+               stored in a large inode.
+               (e2fsck_pass1): Call ext2fs_get_next_inode_full() instead
+               of get_next_inode(), and use an allocated inode which is
+               big enough to store extra portion of large inodes.
+
+2005-03-20  Theodore Ts'o  <tytso@mit.edu>
+
+       * super.c (check_super_block): Add sanity checks for the
+               superblock's inode_size field.
+
+       * pass3.c (check_root, e2fsck_get_lost_and_found): Call
+               ext2fs_write_new_inode() instead of ext2fs_write_inode().
+
+       * pass1.c (check_blocks): Move counting the extended attribute
+               block earlier so that we don't have to worry about
+               num_blocks wrapping for files which are too big.
+
+2006-02-05  Theodore Ts'o  <tytso@mit.edu>
+
+       * Release of E2fsprogs 1.36
+
+2005-02-04  Theodore Ts'o  <tytso@mit.edu>
+
+       * pass2.c (e2fsck_pass2), problem.c (PR_2_HTREE_FCLR), problem.h
+               (PR_2_HTREE_FCLR): Remove support for
+               --enable-clear-htree; this was only needed during the
+               early development of the htree patch.
+
+2005-01-28  Theodore Ts'o  <tytso@mit.edu>
+
+       * pass2.c (e2fsck_process_bad_inode): Fix a corner case involving
+               big-endian systems, long symlinks and i_file_acl set when
+               it shouldn't be.  Without this bugfix, f_clear_xattr will
+               fail on big-endian machines.
+
+       * super.c (check_resize_inode): Deal with the case where the
+               resize inode can't be read; don't try to recreate the
+               resize inode unless the resize feature is actually
+               enabled.
+
+2005-01-27  Theodore Ts'o  <tytso@mit.edu>
+
+       * super.c (check_resize_inode): If the resize inode has a zero
+               i_links_count or isn't a regular file, consider the resize
+               inode as invalid, and offer to recreate it.
+
+       * pass2.c (e2fsck_process_bad_inode): Offer to clear i_file_acl
+               before checking to see if an invalid inode should be
+               removed, since otherwise the fast symlink detection code
+               can get confused.  Also clear the inode's entry in
+               inode_bad_map if the inode has been completely fixed.
+               (Addresses Red Hat Bugzilla #146284)
+
+2005-01-25  Theodore Ts'o  <tytso@mit.edu>
+
+       * unix.c (main, check_if_skip): Set the valid flag earlier, and if
+               it is cleared by the superblock tests, then assume that
+               the filesystem contains errors and must be checked.
+
+       * super.c (check_super_block): Check the individual block group
+               inode and block free counts, as well as the filesystem
+               inode and block free counts.  If any of the block/inode
+               free counts is too large, force a full filesystem check.
+               (Addresses Debian Bug: #291571)
+
+2005-01-19  Theodore Ts'o  <tytso@mit.edu>
+
+       * unix.c (e2fsck_simple_progress): Use fixed integer math
+               to check to see if we're at 0 or 100%
+               (is_on_batt): Clean up gcc -Wall warning
+               (main): Remove dead code
+
+2005-01-13  Matthias Andree  <matthias.andree@gmx.de>
+
+       * unix.c: Do not call closedir if the handle is zero, to avoid
+               crashes when the /proc/acpi/ac_adapter directory is
+               missing, for instance on non-ACPI or non-Linux systems.
+
+2005-01-09  Theodore Ts'o  <tytso@mit.edu>
+
+       * pass1b.c: As part of converting configure.in from using the
+               "broken by design" 2.13 version of AC_CHECK_TYPE to
+               AC_CHECK_TYPES, if intptr_t isn't defined, manually
+               typedef it to long.  (Addresses Debian Bug #289133)
+
+2005-01-06  Theodore Ts'o  <tytso@mit.edu>
+
+       * super.c (check_resize_inode): Use ext2fs_{read,write}_ind_block
+               so that byte swapping is handled on big-endian systems.
+               (check_super_block): Allow the number of reserved blocks
+               to be 50% of the number of blocks available, in order to
+               be consistent to what is allowed by tune2fs.
+
+2004-12-24  Theodore Ts'o  <tytso@mit.edu>
+
+       * pass1.c (e2fsck_pass1): At the end of the pass 1 processing, if
+               we have been signalled to do so, recreate the resize inode.
+
+       * super.c (check_resize_inode): New function which checks to make
+               sure the resize inode is valid.  It is called by
+               check_super_block().  If it is invalid, it will signal to
+               pass1.c that the resize inode needs to recreate.
+
+       * e2fsck.h (E2F_FLAG_RESIZE_INODE): New flag
+
+       * problem.c, problem.h (PR_0_RESIZE_INODE_INVALID,
+               PR_1_RESIZE_INODE_CREATE): Add new problem codes.
+
+2004-12-23  Theodore Ts'o  <tytso@mit.edu>
+
+       * swapfs.c (swap_inodes): Since swap_inodes bypasses the inode
+               cache for speed reasons, we must flush it to avoid cache
+               coherency problems.
+
+2004-12-16  Theodore Ts'o  <tytso@mit.edu>
+
+       * super.c (check_super_block): If the resize_inode feature is not
+               set, check to make sure that s_reserved_gdt_blocks is
+               zero, and that the resize inode is clear.
+
+       * problem.h (PR_0_NONZERO_RESERVED_GDT_BLOCKS,
+               PR_0_CLEAR_RESIZE_INODE): Add new problem codes.
+
+2004-12-15  Theodore Ts'o  <tytso@mit.edu>
+
+       * pass1.c (process_block): Applied resize inode patch.  Mark the
+               DIND block of the resize inode as being in use.
+       
+2004-12-14  Theodore Ts'o  <tytso@mit.edu>
+
+       * Makefile.in: Move strip command to install-strip target.
+               Use Linux-kernel-style makefile output for "make install"
+
+       * Makefile.in (installdirs): Use $(MKINSTALLDIRS) macro.
+               Remove sync in the "all" target.
+
+2004-11-30  Theodore Ts'o  <tytso@mit.edu>
+
+       * message.c (expand_inode_expression): If the TZ environment
+               variable is set to GMT, use gmtime() instead of
+               localtime() or ctime() to force the use of GMT.  This is
+               because the dietlibc doesn't honor the TZ environment
+               variable.
+       
+       * e2fsck.h: Add io_options to e2fsck_struct
+
+       * unix.c: If there is a question mark in the device name, separate
+               out the options to the IO layer, and pass it on to
+               ext2fs_open2().
+
+       * Makefile.in: Use Linux-kernel-style makefile output to make it
+               easier to see errors/warnings.
+
+2004-10-04  Richard Mortimer  <richm@oldelvet.org.uk>
+
+        * journal.c (e2fsck_check_ext3_journal): Attempt recovery of the
+               filesystem if the journal contains illegal block numbers.
+
+2004-07-26  Theodore Ts'o  <tytso@mit.edu>
+
+       * pass1.c (process_block): Change the limit of directory size from
+               32 MB to 2GB.
+
+2004-05-11  Theodore Ts'o  <tytso@mit.edu>
+
+       * journal.c (sync_blockdev): Flush I/O caches to preserve ordering
+               constraints required by the journal recovery code.  Thanks
+               to Junfeng Yang from the Stanford Metacompilation group
+               for pointing this out.
+
+       * jfs_user.h: Define sync_blockdev() as an emulated function,
+               instead just being a no-op.
+
+2004-05-04  Theodore Ts'o  <tytso@mit.edu>
+
+       * unix.c (check_if_skip): If the checkinterval is zero, then
+               disregard it when calculating when the next check will
+               take place.
+
+2004-04-12  Theodore Ts'o  <tytso@mit.edu>
+
+       * unix.c (is_on_batt): Be more flexible about the name of the ACPI
+               device that corresponds to the AC adapter.  (Addresses
+               Debian bug #242136)
+
+2004-04-03  Theodore Ts'o  <tytso@mit.edu>
+
+       * Makefile.in: Update the modtime even if subst doesn't need to
+               update the e2fsck man page, to avoid always re-running
+               subst, especially since there are no dependencies on the
+               man page.
+
+2004-02-28  Theodore Ts'o  <tytso@mit.edu>
+
+       * Release of E2fsprogs 1.35
+
+2004-02-24  Theodore Ts'o  <tytso@mit.edu>
+
+       * unix.c (main, PRS), e2fsck.8.in: Add a new -k option which keeps
+               the existing badblocks list when using the -c option.
+               (Addresses Debian bug #229103)
+
+2004-02-23  Theodore Ts'o  <tytso@mit.edu>
+
+       * Makefile.in (PROFILED_LIBS, PROFILED_DEPLIBS): Fix reference to
+               libblkid so that the build will work with --enable-profile
+               (Addresses Sourceforge bug #811408)
+
+2004-02-14  Theodore Ts'o  <tytso@mit.edu>
+
+       * e2fsck.c (e2fsck_run): Clear the SETJMP_OK flag when returning
+               so we don't double longjump into an invalid stack frame.
+               (Thanks to Matthias Andree for providing this fix.)
+
+2004-01-31  Theodore Ts'o  <tytso@mit.edu>
+
+       * problem.c (fix_problem): Don't call print_e2fsck_message if the
+               message is empty; otherwise, the NLS substitution will
+               print the .po header, which is Just Wrong.
+
+2004-01-30  Theodore Ts'o  <tytso@mit.edu>
+
+       * pass2.c (deallocate_inode_block): Check to make sure the block
+               number is invalid before deallocating it, to avoid core
+               dumping e2fsck.
+
+2003-12-12  Theodore Ts'o  <tytso@mit.edu>
+
+       * pass3.c (check_directory): When reconnecting a directory, we may
+               need to create a lost+found directory.  This may
+               invalidate our pointer to the directory information, so we
+               must look it up again after calling
+               e2fsck_reconnect_file().  (Addresses Debian bug #219640).
+
+2003-12-10  Theodore Ts'o  <tytso@mit.edu>
+
+       * e2fsck.h (E2F_FLAG_RESTARTED): Assign a unique flag bitfield to
+               E2F_FLAG_RESTARTED.  This fixes a bug where if the user
+               specifies an alternate superblock, and the journal needs
+               to be replayed, e2fsck would erroneously assume that
+               journal had been run already without clearing the
+               NEEDS_RECOVERY flag, and bomb out with an error.
+
+2003-12-07  Theodore Ts'o  <tytso@mit.edu>
+
+       * badblocks.c, dict.c, ea_refcount.c, ehandler.c, journal.c,
+               pass1.c, pass1b.c, pass2.c, pass3.c, pass5.c, problem.c,
+               rehash.c, super.c, swapfs.c, unix.c, util.c, e2fsck.h: Fix
+               gcc -Wall nitpicks.
+
+       * recovery.c, jfs_user.h: Sync recovery.c with latest 2.5 kernel
+               version.
+
+2003-12-02  Theodore Ts'o  <tytso@mit.edu>
+
+       * unix.c (main): When testing a disk using e2fsck -c, use the list
+               of new bad blocks to replace the current list of bad
+               blocks.  This way "e2fsck -c" can be used to recover from
+               a corrupted bad block inode.
+
+       * badblocks.c (test_disk): Remove the test_disk() file; e2fsck
+               will just call read_bad_blocks_file() directly with the
+               file parameter set to NULL.
+
+2003-09-14  Theodore Ts'o  <tytso@mit.edu>
+
+       * unix.c (is_on_batt, check_if_skip): If running on battery, then
+               give an extra grace period before actually forcing a
+               check.  That way the laptop will be biased to waiting
+               until we are on AC power before doing the filesystem
+               check.  (Addresses Debian bug #205177)
+
+2003-09-13  Theodore Ts'o  <tytso@mit.edu>
+
+       * unix.c (check_if_skip): If the number of mounts until the next
+               forced filesystem check is 5 or less, mention this to the
+               user.  (Addresses Debian bug #157194)
+
+       * pass1.c (e2fsck_pass1), problem.h (PR_1_BB_FS_BLOCK), 
+         problem.c (PR_1_BB_FS_BLOCK, PR_1_BBINODE_BAD_METABLOCK_PROMPT): 
+               Fix up the handling of corrupted indirect blocks in the 
+               bad block.  We now correctly handle the case where there
+               is an overlap between a block group descriptor or
+               a superblock and a bad block indirect block.  In the case
+               where the indirect block is corrupted, we now suggest
+               "e2fsck -c".
+       
+2003-09-12  Theodore Ts'o  <tytso@mit.edu>
+
+       * unix.c (PRS): Check the returned name from blkid_get_devname and
+               print an error if the requested LABEL/UUID does not exist.
+       
 2003-09-03  Theodore Ts'o  <tytso@mit.edu>
 
        * pass1.c (mark_table_blocks): Use the new function