E2fsprogs 1.21 (June 15, 2001)
==============================

Added new configure flags which allow a subset e2fsprogs to be built;
this is most useful for boot floppies, since the resulting shared
libraries and programs are slimmed down by removing features that
aren't necessary for a boot floppy.  The new flags that were added
are: --disable-swapfs, which removes support for byte swapping old
legacy PPC/68k filesystems, --disable-debugfs, which removes support
for debugfs from the libext2fs library, --disable-imager, which
removes support for the e2image program, and --disable-resizer, which
removes support for resize2fs.

E2fsck now prints the number of mounts or days elapsed since the last
check when e2fsck is forced to check an otherwise clean filesystem.

Tune2fs now prints an informative message about how often a filesystem
will be checked when adding a journal to the filesystem, to remind the
user that he/she may want to adjust those parameters using tune2fs
-c/-i.

Worked around hurd brain-damage which causes e2fsck to sometimes
believe a filesystem is the root filesystem based on device numbers
(since Hurd doesn't have dev_t's, which is arguably a POSIX.1
violation).

Fixed a bug introduced in 1.20 which caused e2fsck to abort with an
erroneous error with the -F option was specified.

Fixed a ext3 recovery bug in the revoke handling; synchronized with
ext3 0.7a.

Fixed two bugs in e2fsck's handling of dup block handling, dealing
with relatively uncommon edge cases: a directory with an indirect
block which is claimed by another file, and when the last inode in the
filesystem has blocks claimed by another file.

E2fsck now checks to see if the i_size field of a fast symlink is too
big, and offers to clear the symlink if so.

E2fsck now checks to see if i_size_high of special files is non-zero,
and offers to clear i_size_high.

Fix e2fsck's handling of incompatible journal flags so that the user
has chance to abort, and then has the option to clear out the journal
entirely.  (Addresses Debian bug #98527.)

Fixed a bug in fsck which could cause it to core dump if a mix of
standard and non-standard device names are used in /etc/fstab.
(Debian bug #100559)

Fixed a bug in debugfs which caused read errors when copying a file to
not be noticed.

The debugfs set_super_value command can now modify the s_lastcheck field.

Fixed a bug in lsattr and chattr which was accidentally introduced in
1.20 to support > 2GB files; both lsattr and chattr wasn't reading
directories correctly because the change modified the layout of struct
dirent to be incompatible with the libe2p shared library.

Cleaned up the mke2fs manual page and included a discussion about why
it's good to periodically check the filesystem even when journalling is
enabled.

Programmer's notes:
-------------------

Fix general gcc -Wall complaints.

The types needed by the ext2 header files are now provided by
lib/ext2fs/ext2_types.h, instead of include/asm/types.h.

Integers are now preferred to longs when trying to find a 32-bit type
in ext2_types.h.  Also, if linux/types.h has already been defined,
don't try to redefine the types.

Fixed make depend script so that it automatically corrects the
pathname cleanups performed by make -M, so I don't have to fix them up
by hand.

Fixed the d_loaddump test case to be more robust, and not depend on
bash'isms.

Removed debugfs's dependence on pread(), which was accidentally
introduced in e2fsprogs 1.20

Fixed a performance bug in the libext2fs's icount routine; the size
estimate of the icount array was incorrectly being calculated.

Removed use of the badblocks compatibility functions in the e2fsprogs
programs.

Added paranoia code which protects against strange cases where /etc
isn't on the root filesystem, or if /etc/mtab doesn't exist.

The header file ext2_types.h is now installed.

Autoconf is used to determine when we are on big-endian machines,
instead of doing run-time tests, to save a few bytes of code.

The ext2fs_mark_generic_bitmap and ext2fs_unmark_generic_bitmap
functions are no longer inline functions, which saves space and
doesn't really cost any real performance.

The ext2fs library no longer depends on the e2p library.  (What need
there was of it --- namely, fsetflags, was coded in-line).

Fixed the makefile so that lib/ext2fs/ext2_types.h is generated even
when the user is stupid and tries compiling the package using "make
install" as root.

Miscellaneous code cleanups:
	* Added missing files from Makefile.in's SRCS file, so that 
		their dependencies would be properly calculated.
	* Removed redundant code
	* Fixed comments in code
	* Removed no-longer needed argsused #pragma.

