-E2fsprogs 1.42-WIP (October 1, 2011) -- 636019ecdb2a
-=======================================
+E2fsprogs 1.42.3 (May 14, 2012)
+===============================
+
+Fix a bug in the Unix I/O manager which could cause corruption of file
+systems with more than 16TB when e2fsprogs is compiled in 32-bit mode
+(i.e., when unsigned long is 32-bits). Also fix a bug which caused
+dumpe2fs to incorrectly display block numbers > 32-bits.
+
+Improve the support for integrated quota files (where quota is a first
+class supported feature using hidden files in the ext4 file system).
+Previously the quota file was getting rewritten even when it was not
+necessary, and e2fsck would erroneously try to hide quota files which
+were already hidden.
+
+Quiet complaints in e2fsck when the total free blocks or inodes are
+incorrect in the superblock after an system crash, since we don't
+update nor depend on the superblock summaries at each commit boundary.
+
+Fixed a regression introduced in 1.42.2 which would cause applications
+outside of e2fsprogs which did not pass the EXT2_FLAG_64BIT (and so
+would were still using the legacy 32-bit bitmaps) to crash. This was
+due to missing 32-bit compat code in side the function
+ext2fs_find_first_zero_generic_bmap(). (Addresses Red Hat Bugzilla:
+#808421)
+
+Fix a bug which would cause mke2fs to fail creating the journal if
+/etc/mtab and /proc/mounts are missing. (Addresses Sourceforge Bug:
+#3509398)
+
+Updated/fixed various man pages.
+
+Update Czech, Dutch, French, German, Polish, Sweedish, and Vietnamese
+translations
+
+Fixed various Debian Packaging issues.
+
+
+Programmer's Notes
+------------------
+
+Change the nonsensically wrong types in the function signature of the
+inline function ext2fs_find_first_zero_block_bitmap2(). This was
+caused by a cut and paste error; fortunately no code in e2fsprogs used
+this inline function, and there are any users of this functions
+outside of e2fsprogs.
+
+Add support for systems which have valloc(), but which do have
+posix_memalign() nor memalign() (such as MacOS 10.5).
+
+Refactor and clean up the allocation of aligned buffers for Direct I/O
+support. Previously some allocations were requesting a greater
+alignment factor that what was strictly necessary. Also optimize
+reading and writing bitmaps using Direct I/O when the size of the
+bitmap did not fully cover the file system blocksize.
+
+Reserve the codepoints for the INCOMPAT features LARGEDATA and
+INLINEDATA.
+
+Improved the regression test suite by adding some new integration
+tests (f_jnl_32bit, f_jnl_64bit) which detect breakage of the on-disk
+jbd2 format, as well as f_eofblocks which tests the new handling of
+uninitialized and initialized blocks beyond i_size. Also add a new
+unit test which verifies 32-bit bitmaps support and the new
+find_first_zero primitives.
+
+Add a few dependencies to fix parallel (make -j) builds.
+
+Removed bash'isms which were breaking the regression test suite on
+systems where /bin/sh is not bash.
+
+The config.guess and config.sub have been updated to the 2012-02-10
+version.
+
+Fix a portability problem caused by assuming the present of mntent.h
+means that setmntent() exists. Instead, explicitly test for this in
+the configure script.
+
+If the sys/signal.h header file does not exist, don't try to include
+it, since it's not available on all systems.
+
+Add support for systems that do not support getpwuid_r()
+
+The configure script now supports a new option,
+--enable-relative-symlinks, which will install relative symlinks for
+the ELF shared library files. (Addresses Sourceforge Bug: #3520767).
+
+When building BSD shared libraries make sure the LDFLAGS variable is
+passed to the linker. Fixing this allows, for example, e2fsprogs to
+be built in 32-bit mode on Mac OS X Lion (Addresses Sourceforge Bug:
+#3517272)
+
+Fix gcc -Wall nitpicks
+
+
+E2fsprogs 1.42.2 (March 27, 2012)
+=================================
+
+The resize2fs program uses much less CPU and is much faster for very
+large file systems. (Addresses Debian Bug: #663237)
+
+The seti and freei commands in debugfs can now take an optional length
+argument to set and clear a contiguous range of inodes.
+
+E2fsck will now make explicit checks for the EOFBLOCKS_FL, since we
+plan to remove support for it from the kernel file system driver. It
+really wasn't very useful and was causing more problems than it
+solves. Since e2fsck will complain if inodes that should have
+EOFBLOCKS_FL do not have the flag set, we are going to remove this
+check from e2fsprogs first, and then only remove the flag from the
+kernel much later.
+
+The mke2fs program can now use direct I/O via "mke2fs -D". This will
+slow down the mke2fs, but it makes it more polite on a loaded server
+by limiting the amount of memory that gets dirtied by mke2fs when it
+is using buffered I/O.
+
+E2fsck was needlessly closing and re-opening the file system as a side
+effect of adding Multiple Mount Protection (MMP). This isn't
+necessary for non-MMP file systems, so drop it.
+
+Print errors returned by ext2fs_open2() and ext2fs_check_desc() so we
+can more easily diagnose memory allocation failures caused by
+insufficient memory. E2fsck will now abort if there are memory
+allocation failures when the file system is initially opened and
+during the block group descriptor checks. (Addresses Google Bug:
+#6208183)
+
+If there are incorrect block group checks, e2fsck will now report the
+incorrect and corrected checksum values.
+
+The e2fsck progam can now write log files containing the details of
+the problems that were found and fixed directly, via configuration
+parameters in /etc/e2fsck.conf.
+
+Added the ability to limit the number of messages reported by e2fsck
+for a given problem type. This avoids a potential bottleneck if there
+is a serial console which can cause a boot sequence to take a long
+time if e2fsck needs to report many, many file system errors.
+
+The dumpe2fs, debugfs, and tune2fs now use rbtree bitmaps, which cause
+them to use much less memory for large file systems.
+
+The dumpe2fs program will now print the expected block group checksum
+if it is incorrect. This helps to diagnose problems caused by
+incorrect block group checksums.
+
+E2fsck now checks for extents with a zero length, since the kernel
+will oops if it comes accross such a corrupted data structure. (See
+https://bugzilla.kernel.org/show_bug.cgi?id=42859)
+
+E2fsck has a number of bugs relating to discard that have been fixed.
+(1) Fixed a bug which could cause e2fsck to discard portions of the
+inode table which were actually in use. (2) E2fsck will now avoid
+using discard if the block device doesn't zero data on discard, since
+otherwise this could cause problems if the file system gets corrupted
+in the future. (3) E2fsck will now avoid using discard when it is run
+in read-only mode. (4) Fixed a bug which caused e2fsck to not issue
+discards in the last block group.
+
+E2fsck's CPU utilization in pass 5 has been optimized, which will
+speed up e2fsck slightly.
+
+E2image will now skip copying uninitialized bitmap and inode table
+blocks.
+
+Fixed mke2fs -S so it does not corrupt the first block group's
+information.
+
+E2fsck will now check the new sysfs interface to determine if we are
+using the battery or AC mains. (Addresses SourceForge Bug: #3439277)
+
+Updated/fixed various man pages. (Addresses Debian Bug: #665427)
+
+Fixed various Debian Packaging issues. (Addresses Debian Bug: #665885)
+
+Programmer's Notes
+------------------
+
+Fixed various portability issues for non-Linux systems, particularly
+MacOS X, as well as Linux systems running with the just-released glibc
+2.15.
+
+Fix file descriptor leak in ext2fs_close() if the file system with
+uninit_bg is opened read/only with a backup superblock. (Addresses
+SourceForge Bug: #3444351)
+
+Fixed an invalid return in a non-void function in the quota code.
+(Addresses SourceForge Bug: #3468423)
+
+Fixed the debian rules file so that the calls to dpkg-buildflags works
+when the shell is dash.
+
+The debian package build now uses V=1 so that there is more
+information about potential build failures in debian buildd logs.
+
+If the uninit flags get cleared by functions such as
+ext2fs_new_inode() or ext2fs_new_block2(), we now make sure the
+superblock is marked dirty and the block group descriptor checksum is
+updated if necessary.
+
+The debian rules file will now try to load debian/rules.custom of it
+exists. This flie can skip various builds for speed reasons if there
+is no need for the e2fsck-static or udeb packages. Available
+customizations in the rules file includes SKIP_STATIC=yes,
+SKIP_BF=yes, and SKIP_DIETLIBC=yes.
+
+In addition, if the file misc/mke2fs.conf.custom.in exists in the
+source tree, it will be used instead of the standard misc.conf file in
+the upstream sources. This makes it easier for Debian-derived systems
+to distribute a custom mke2fs.conf file without having to worry about
+merge issues if future versions of e2fsprogs makes changes in the
+upstream default version of mke2fs.conf.
+
+
+E2fsprogs 1.42.1 (February 17, 2012)
+===================================
+
+The mke2fs and e2fsck now use significantly less memory when creating
+or checking very large file systems. This was enabled by adding
+extent-based bitmaps which are stored using a red-block tree, since
+block and inode allocations tend to be contiguous.
+
+The command mke2fs -S is used as a last ditch recovery command to
+write new superblock and block group descriptors, but _not_ to destroy
+the inode table in hopes of recovering from a badly corrupted file
+system. So if the uninit_bg feature is enabled, mke2fs -S will now
+set the unused inodes count field to zero. Otherwise, e2fsck -fy
+after using mke2fs -S would leave the file system completely empty.
+
+Since mke2fs recognizes mke3fs in argv[0] to mean "mkfs.ext3", also
+honor "mke4fs" to work the same as "mke2fs.ext4", since RHEL5 has
+installed an mke2fs binary using that name.
+
+The usage and help messages for the -G, -t and -T options in mke2fs
+have been fixed.
+
+If e2fsck needs to use the backup group descriptors, the
+ext2fs_open2() function clears the UNINIT bits to ensure all of the
+inodes in the file systems get scanned. However, the code which reset
+the UNINIT flags did not also recalculate the checksum, which produced
+many spurious (and scary) e2fsck messages. This has been fixed by
+resetting cheksums when the UNINIT bits are cleared.
+
+Relax a check in e2fsck which required that the block bitmap to be
+initialized when the inode bitmap is in use. This will allow us to
+eventually eliminate code from the kernel which forcibly initialized
+the block bitmap when the inode bitmap is first used, requiring an
+extra journal credit and disk write. (Addresses Google Bug: #5944440)
+
+Make sure rdebugfs (which may be installed setuid or setgid disk) does
+not honor environment variables if euid != uid or egid != gid.
+
+Debugfs's ncheck command has been optimized and now is much more
+robust with faced with corrupted file systems. The ncheck command
+also now has a -c option which will verify the file type information
+in the directory entry to see if matches the inode's mode bits. This
+is extremely useful when trying to use debugsfs to determine which
+parts of the file system metadata can be trusted.
+
+E2image will try to use ftruncate64() to set the i_size for raw
+images, instead of writing a single null byte. This avoid allocating
+an extra block to the raw image, for those file systems and/or
+operating systems that support this. (Linux does.) In addition, fix
+a logic bug that caused the file to not be properly extended if the
+size of the last hole was exactly an multiple of a megabyte.
+
+Fixed a bug in resize2fs where for 1k and 2k file systems, where
+s_first_data_block is non-zero, this wasn't taken into account when
+calculate the minimum file system size for use with the -M option.
+
+Fixed the badblocks program to honor the -s flag when in read-only -t
+mode. (Addresses Debian Bug #646629)
+
+Update Czech, Dutch, French, Polish, and Sweedish translation from the
+Translation Project.
+
+Fixed various Debian Packaging issues so that dpkg-buildflags is used
+if present, which allows e2fsprogs to be built with security hardening
+flags. (Addresses Debian Bugs: #654457)
+
+Programmer's Notes
+------------------
+
+Fix a bug in ext2fs_clear_generic_bmap() when used for 32-bit bitmaps.
+This was only an issue for programs compiled against e2fsprogs 1.41
+that manipulate bitmaps directly. (Addresses Sourceforge Bugs:
+#3451486)
+
+The libext2fs library now uses sysconf() to fetch the page size, instead
+of the deprecated getpagesize().
+
+The ext2fs_get_pathname() function will return a partial path if an a
+directory in the path is not a directory, displaying it as an inode
+number in angle brackets instead of giving up and displaying an error.
+This is much more helpful when a user is trying to debug a corrupted
+file system.
+
+Codepoints for the RO_COMPAT_REPLICA feature has been reserved.
+
+Added a new library function, ext2fs_file_get_inode_num(), for use by
+fuse2fs.
+
+Fixed a bug in ext2fs_file_set_size2() so that when it is truncating a
+file, it actually works.
+
+The block iterator now properly honors the BLOCK_ABORT flag for
+extent-based flags. Previously, it didn't, which generally made code
+be less efficient, but it could cause bugs in ext2fs_link(), for
+example, by causing it to insert multiple directory entries.
+
+Fixed an (harmless other than causing a compiler warning) use of an
+uninitialized variable in e2fsck's MMP code.
+
+
+E2fsprogs 1.42 (November 29, 2011)
+==================================
This release of e2fsprogs has support for file systems > 16TB. Online
resize requires kernel support which will hopefully be in Linux
initially formatted. It is not backwards compatible with older
kernels.
-This release of e2fsprogs has support for integrated feature, where
-the quota files are hidden system files that are automatically
-maintained by e2fsck.
-
Added support for the Multi-Mount Protection (MMP) feature.
+E2fsck more efficiently uses scratch files for really big file
+systems. (This is a feature that has to be turned on explicitly; see
+[scratch_files] in the e2fsck.conf man page.)
+
Fix a bug in e2fsck where if the free blocks and inodes counts are
incorrect, e2fsck would fix them without printing an error message.
This would cause a "*** FILE SYSTEM WAS MODIFIED ***" message without
before trusting it, to avoid causing more harm than good to the file
system.
+E2fsck now returns additional status bits in its exit code if it
+aborts early in the e2fsck run.
+
+E2fsck now correctly calculates the maximum file size in the case of
+the huge_file file system feature enabled without extents.
+
The mke2fs and e2fsck programs now tries to use the punch hole command
as a "discard" when operating on normal files.
spurious message on each mount then they see a s_max_mnt_count set to
0, which will annoy users. (Addresses Debian Bug: #632637)
+The default mke2fs.conf now has entries for "big" and "huge", which
+are needed for very big file systems.
+
The resize2fs program now has support for a new online resize ioctl
that can support file systems > 16TB, once it arrives in v3.x kernels.
+Fixed bug which caused resize2fs to fail when shrinking an empty file
+system down to its minimal size. (Addresses Sourceforge Bug #3404051)
+
Fixed tune2fs's mount options parsing. (Addresses Debian Bug: #641667)
Allow tune2fs to remove external journals if the device can not be
Debugfs now has a new "punch" command which remove blocks from the
middle of an inode.
+Debugfs now has a new "e2freefrag" command which analyzes the free
+space fragmentation of the file system, using the same code as the
+e2freefrag program.
+
+Debugfs now has a "filefrag" command which displays information about
+a file's fragmentation.
+
+Add support to build a metadata-only, read-only, stripped-down version
+of debugfs called rdebugfs.
+
+Fixed a potential stack overrun bug in debugfs.
+
The badblocks program now correctly recovers from I/O errors when
direct I/O is being used. The badblocks command now also supports a
-B option which forces the use of buffered I/O, and the -v option will
Filefrag will report 0 extents correctly in verbose mode. (Addresses
RedHat Bugzilla: #653234)
-Filefrag has been fixed so its -v erport prints the correct expected
+Filefrag has been fixed so its -v report prints the correct expected
block number (previously there had been an off-by-one error). In
addition, it will now display the number of contiguous extents when -v
is not specified. This makes it consistent with the number of extents
printed when the -v option was specified. In addition, the number of
contiguous extents is far more interesting/useful than the number of
physical extents for very large files. (Addresses Debian Bug:
-#631498)
+#631498, #644792)
Logsave's usage message has been fixed. (Addresses Debian Bug:
#619788)
+Avoid an infinite loop in ext2fs_find_block_device() if there are
+symlink loops in /dev caused by a buggy udev.
+
Added a useful "fallocate" program to the contrib directory.
Fixed an ABI compatibility problem in libext2fs which broke the dump
Fixed parsing of MNTOPT_ options for tune2fs and debugfs (Addresses
Debian Bug: #641667)
+Added internationalization support for libcom_err error table strings.
+
+Fixed various spelling mistakes found in various output strings found
+by I18N translators.
+
Update translations: French, Chinese, Germany, Indonesian, Swedish,
-Vietnamese, Polish, Dutch, Czech,
+Vietnamese, Polish, Dutch, Czech. (Addresses Debian Bugs: #520985,
+#620659)
Fixed various Debian Packaging issues. (Addresses Debian Bugs:
#614662, #632169, #641838, #627535, #629355)
Updated/clarified man pages. (Addresses Debian Bugs: #639411,
#642193, #634883)
-Programming notes
------------------
+Programmer's Notes
+------------------
+
+Initial support for quota as an integrated feature, where the quota
+files are hidden system files that are automatically maintained by
+e2fsck is present, although disabled by default. It must be enabled
+by using the configure option --enable-quota.
Reserved the on-disk fields for the metadata checksum and snapshot
features, which are currently in development.
Fixed miscellaneous gcc -Wall and coverity warnings.
-Fixed portability issues for Mac OS X.
-
-Fixed FreeBSD portability where gettext is not in libc.
+Fixed portability issues for Mac OS X, Hurd, and FreeBSD.
Fixed a build failure when OMIT_COM_ERR is defined.
A link to com_err.h is installed in $(includedir) during a "make install".
+The po/*.gmo files are automatically rebuilt if they are missing or
+out of date. This helps out Debian packaging.
+
+Allow ext2fs_get_memalign() to compile on systems that don't have
+posix_memalign().
+
+Fixed a namespace leak in libext2fs (tdb_null).
+
E2fsprogs 1.41.14 (December 22, 2010)
=====================================
Fix memory leak in ext2fs_write_new_inode()
Add support for using a scratch files directory to reduce e2fsck's
-emory utilization on really big filesystems. This uses the TDB
+memory utilization on really big filesystems. This uses the TDB
library. See the [scratch_files] section of the e2fsck.conf man page
for more details.