X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=RELEASE-NOTES;h=5806638de14c5699c2f2bf1e69cebd30a862ff27;hb=d1154eb460efe588eaed3d439c1caaca149fa362;hp=bca9fe5ad659d98ff42bbf9967aa84d6781fd085;hpb=e5dced7fd9d2180f44a9b0de39fbcb8cb9b3b905;p=tools%2Fe2fsprogs.git diff --git a/RELEASE-NOTES b/RELEASE-NOTES index bca9fe5..5806638 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -1,6 +1,3949 @@ -E2fsprogs 1.33-WIP (March 6, 2003) +E2fsprogs 1.42-WIP (September 16, 2011) -- cd0b97ed9313 +======================================= + +This release of e2fsprogs has support for file systems > 16TB. + +This release of e2fsprogs has support for clustered allocation. This +reduces the number of block (now cluster) bitmaps by allocating and +deallocating space in contiguous power-of-2 collections of blocks, +which are called clustered. This is a file system level feature, +called 'bigalloc', which must be enabled when the file system is +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. + +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 +any explanation of what was fixed. + +E2fsck will no longer attempt to clone an extended attribute block in +pass1b handling if the file system does not support extended +attributes. + +E2fsck will be more careful accidentally asking the user to continue +if the file system is mounted, so that an escape sequence won't cause +a false positive. (Addresses Debian Bug: #619859) + +E2fsck now uses less cpu time in pass 5 when large portions of the +bitmaps are uninitialized. + +E2fsck will no longer segault when a corrupted file system has a bad +extent, and removing it leads to a block needing to be deallocated. +(Addresses SourceForge Bug: #2971800) + +E2fsck will catch termination signals (segfaults, bus errors, sigfpe) +and print debugging information to make it easier to find potential +problems. + +Fixed a bug in the libext2fs library (in the binary search routine of +the icount abstraction) that could (very, very rarely) cause e2fsck to +die in the middle of pass 1 or pass 2 processing. + +E2fsck will not try to do a discard operation if the -n option was +specified on the command line. + +E2fsck now supports an extended "discard" option which will cause +e2fsck to attempt discard all unused blocks after a full, successful +file system check. + +The mke2fs and e2fsck programs now tries to use the punch hole command +as a "discard" when operating on normal files. + +The e2image program now supports the qcow2 format, which is a more +efficient way of capturing file system dumps. + +Mke2fs now supports the [devices] stanza in mke2fs.conf which allows +per-device defaults to be specified in the configuration file. + +Mke2fs now supports the reserved_ratio relation in the [defaults] and +[fs_types] section in mke2fs.conf. + +Mke2fs now creates extent-mapped directories for the root and +lost+found directories. + +Mke2fs will skip zero'ing the journal if the extended option +"lazy_journal_init" is specified. This can save a lot of time, but it +does add a small amount of risk if the system crashes before the +journal is overwritten entirely once. It is epsecially useful for +testing. + +Mke2fs will now create file systems that enable user namespace +extended attributes and with time- and mount count-based file +system checks disabled. + +Mke2fs will not set a stride or strip size of one block based on block +device attributes obtained from sysfs. + +Mke2fs now displays a progress report during the discard process. + +Mke2fs now handles extreme file system parameters correctly which +previously caused the inodes per group to drop below 8, leading to a +segfault. (The inodes per group must be a multiple of 8, but the code +didn't correctly deal with an inodes per group count less than 8.) + +Mke2fs and tune2fs previously would give an error if the user tried +setting the stride and stripe-width parameters to zero; but this is +necessary to disable the stride and stripe-width settings. So allow +setting these superblock fields to zero. (Addresses Google Bug: +#4988557) + +Mke2fs now gives a warning if the auto-detected block size exceeds the +system's page size. + +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 tune2fs's mount options parsing. (Addresses Debian Bug: #641667) + +Debugfs's icheck will now correctly find inodes which use the +searched-for block as an extended attribute block. + +Debugfs now has a new "punch" command which remove blocks from the +middle of an inode. + +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 +provide a more detailed breakdown of read, write, and failed +comparison errors. + +Added e4defrag tool which uses the EXT4_IOC_MOVE_EXT ioctl. + +Added support for journals larger than 2GB. + +Support using both hard links and symlinks when installing e2fsprogs. + +Add overflow checking to tune2fs -i's fsck interval, which must fit in +a 32-bit field. + +The debugfs command now has a new 'blocks' command which prints out +data blocks of a particular inode in a format which is useful for +scripting. + +Filefrag will report 0 extents correctly in verbose mode. (Addresses +RedHat Bugzilla: #653234) + +Logsave's usage message has been fixed. (Addresses Debian Bug: +#619788) + +Added a useful "fallocate" program to the contrib directory. + +Fixed an ABI compatibility problem in libext2fs which broke the dump +program. Also added back some macros which dump needed so it could +compile against the latest version of ext2_fs.h (Addresses Debian Bug: +#636418) + +Fixed parsing of MNTOPT_ options for tune2fs and debugfs (Addresses +Debian Bug: #641667) + +Update translations: French, Chinese, Germany, Indonesian, Swedish, +Vietnamese, Polish, Dutch, Czech, + +Updated/clarified man pages. (Addresses Debian Big: #639411) + +Programming notes +----------------- + +Reserved the on-disk fields for the metadata checksum and snapshot +features, which are currently in development. + +The ext2fs library now has the new functions ext2fs_punch(), +ext2fs_get_memzero() and ext2fs_file_get_inode(). + +The ext2fs library now has support for calculating the crc32c checksum +(via the new functions ext2fs_crc32c_be and ext2fs_crc32c_le). + +The I/O manager now supports the discard operation. + +Reserved file system code points for new 1st class quota feature. + +Fixed a potential free of an unitialized pointer in +ext2fs_update_bb_inode(). + +Fixed miscellaneous compile warnings. + +Fixed portability issues for Mac OS X. + +Fixed FreeBSD portability where gettext is not in libc. + +Fixed a build failure when OMIT_COM_ERR is defined. + +Improved error checking and fixed memory leaks caused by error return +paths. + +Added a test for extent-mapped journals by mke2fs and tune2fs. + +Added a test for creating a large (over 4GB) journal using mke2fs. + +Added a test to make sure the inode size remains constant. + +The regression test script now prints the list of which tests failed. + +The regression test system now uses /tmp for its scratch files, which +is often a tmpfs mounted file system and hence much faster. + +The i_e2image test was fixed so it works with valgrind. + +Tests that rely on debugfs are now skipped if debugfs wasn't built. + +Fixed the dependencies for "make check" so all required dependencies +are built before running the gression tests. + +A link to com_err.h is installed in $(includedir) during a "make install". + + +E2fsprogs 1.41.14 (December 22, 2010) +===================================== + +Fix spurious complaint in mke2fs where it would complain if the file +system type "default" is not defined in mke2fs.conf. + +The resize2fs program will no longer clear the resize_inode feature +when the number reserved group descriptor blocks reaches zero. This +allows for subsequent shrinks of the file system to work cleanly for +flex_bg file systems. + +The resize2fs program now handles devices which are exactly 16T; +previously it would give an error saying that the file system was too +big. + +E2fsck (and the libext2fs library) will not use the extended rec_len +encoding for file systems whose block size is less than 64k, for +consistency with the kernel. + +Programming notes +----------------- + +E2fsprogs 1.41.13 would not compile on big-endian systems. This has +been fixed. (Addresses Sourceforge Bug: #3138115) + +The ext2fs_block_iterator2() function passed an incorrect ref_offset +to its callback function in the case of sparse files. (Addresses +Sourceforge Bug: #3081087) + +Fix some type-punning warnings generated by newer versions of gcc. + + +E2fsprogs 1.41.13 (December 13, 2010) +===================================== + +E2fsck now supports the extended option "-E journal_only", which +causes it to only do a journal replay. This is useful for scripts +that want to first replay the journal and then check to see if it +contains errors. + +E2fsck will now support UUID= and LABEL= specifiers for the -j option +(which specifies where to find the external journal). (Addresses +Debian Bug #559315) + +E2fsck now has support for the problems//force_no +configuration option in e2fsck.conf, which forces a problem to not be +fixed. + +Dumpe2fs will now avoid printing large negative offsets for the bitmap +blocks and instead print a message which is a bit more helpful for +flex_bg file systems. + +Mke2fs will now check the file system type (specified with the -t +option) to make sure it is defined in the mke2fs.conf file; if it is +not, it will print an error and abort. If the usage type (specified +with the -T option) is not defined in mke2fs.conf, mke2fs will print a +warning but will continue. (Addresses Debian Bug #594609) + +Clarified error message from resize2fs clarifying that on-line +shrinking is not supported at all. (Addresses Debian Bug #599786) + +Fix an e2fsck bug that could cause a PROGRAMMING BUG error to be +displayed. (Addresses Debian Bug #555456) + +E2fsck will open the external journal in exclusive mode, to prevent +the journal from getting truncated while it is in use due to a user +accidentally trying to run e2fsck on a snapshotted file system volume. +(Addresses Debian Bug #587531) + +Fix a bug in e2fsck so it has the correct test for the EOFBLOCKS_FL +flag. + +The tune2fs program can now set the uninit_bg feature without +requiring an fsck. + +The tune2fs, dumpe2fs, and debugfs programs now support the new ext4 +default mount options settings which were added in 2.6.35. + +The e2fsck and dumpe2fs programs now support the new ext4 superblock +fields which track where and when the first and most recent file +system errors occurred. These fields are displayed by dumpe2fs and +cleared by e2fsck. These new superblock fields were added in 2.6.36. + +Debugfs now uses a more concicse format for listing extents in its +stat command. This format also includes the interior extent tree +blocks, which previously was missing from stat's output for +extent-based files. + +Debugfs has a new option, -D, which will request Direct I/O access of +the file system. + +Mke2fs will skip initializing the inode table if a device supports +discard and the discard operation will result in zero'ed blocks. + +Badblocks will now correctly backspace over UTF-8 characters when +displaying its progress bar. (Addresses Gentoo Bug #309909; Addresses +Debian Bugs #583782 and #587834) + +E2freefrag will now display the total number of free extents. + +Resize2fs -P no longer requires a freshly checked filesystem before +printing the minimum resize size. + +Fixed a floating point precision error in a binary tree search routine +that can lead to seg fault in e2fsck and resize2fs. + +Fixed a bug in e2fsck where if both the original and backup superblock +are invalid in some way, e2fsck will fail going back to the original +superblock because it didn't close the backup superblock first, and +the exclusive open prevented the file system from being reopened. + +Fixed a big in e2freefrag which caused getopt parsing to fail on +architectures with unsigned chars. (Addresses Gentoo Bug: #299386) + +Clarified an mke2fs error message so a missed common in an -E option +(i.e., mke2fs -t ext4 -E stride=128 stripe-width=512 /dev/sda1") +results in a more understandable explanation to the user. + +Mke2fs now displays the correct valid inode ratio range when +complaining about an invalid inode ratio specified by the user. + +Mke2fs now understands the extended option "discard" and "nodiscard", +and the older option -K is deprecated. The default of whether +discards are enabled by default can be controled by the mke2fs.conf +file. + +Mke2fs's handling of logical and physical sector sizes has been +improved to reflect the fact that there will be some SSD's with 8k and +16k physical sectors arriving soon. Mke2fs will no longer force block +size to be the physical sector size, since there will be devices where +the physical sector size is larger than the system's page size, and +hence larger than the maximal supported block size. In addition, if +the minimal and optimal io size are not exported by the device, and +the physical sector size is larger than the block size, the physical +sector size will be used to set the Raid I/O optimization hints in the +superblock. + +E2fsck will now display a better, more specific error message when the +user enters a typo'ed device name, instead of blathering on about +alternate superblocks. + +Fixed various Debian Packaging Issues + +Updated/clarified man pages (Addresses Debian Bugs: #580236, #594004, +#589345, #591083; Addresses Launchpad Bug: #505719) + +Update the Chinese, Chzech, Dutch, French, Germany, Indonesian, +Polish, Swedish, and Vietnamese translations. + + +Programmer's Notes +------------------ + +Fix a dependency definition for the static and profiled blkid +libraries which could cause compile failures in some configurations. +(Addresses Debian Bug: #604629) + +Add support for Direct I/O in the Unix I/O access layer. + +Fixed a memory leak in the Unix I/O layer when changing block sizes. + +Fixed minor memory leaks in mke2fs. + +Added a new function to the ext2fs library, ext2fs_get_memalign(). + +The tst_super_size test program will check to make sure the superblock +fields are correctly aligned and will print them out so they can be +manually checked for correctness. + +Fixed some makefile dependencies for test programs in lib/ext2fs. + +Reserved the feature flags and superblock fields needed for the Next3 +snapshot feature. + +Reserved the feature flags for EXT4_FEATURE_INCOMPAT_DIRDATA and +EXT4_INCOMPAT_EA_INODE. + + +E2fsprogs 1.41.12 (May 17, 2010) +================================ + +Mke2fs now gives a correct error message if the external journal +device is not found. (Addresses Red Hat Bug #572935) + +Resize2fs -P will now refuse to print a minimum size if the file +system is not clean. Previously it would go ahead and print a minimum +size anyway, which might not be correct, leading to user confusion. + +E2fsck now tests for extents that begin at physical block 0 and +rejects them as invalid. (Addresses Google Bug: #2573806) + +Fixed a bug in e2fsck which could cause it to crash when trying to +remove an invalid extent and the block bitmaps hadn't yet been loaded. +(Addresses SourceForge Bug: #2971800) + +E2fsck now will completely skip time-based checks if the system clock +looks insane or the option broken_system_clock is set in +/etc/e2fsck.conf. + +E2fsck would previously report an i_blocks corruption for a 4T file +created using posix_fallocate; this bug has been fixed. + +E2fsck will now correctly mark a sparse journal as invalid and will +delete and recreate the journal to address the problem. + +E2fsck would previously incorrectly ask the user whether she would +like to abort the file system check after finding a problem --- and +then abort regardless of the user's answer. This is annoying, and +has been fixed. + +E2fsck can now continue even if it fails to recreate the resize +inode; previously it would just abort the file system check +altogether. + +E2fsck could potentially remove directory entries for inodes found in +the unused region of the inode table; this would generally happen on +ext4 file systems that do not use journaling. This bug has been fixed +by not clearing these directory entries once it has been established +that bg_unused_inodes may not be trustworthy; once pass #2 has been +completed, e2fsck will restart the file system check from the +beginning, and then it will be safe to delete any directory entries +pointing to inodes that appear to be deleted. (Addresses Google Bug: +#2642165) + +E2fsck will not try to set the block group checksums if the user +cancels the fsck with a control-C. It's a bad idea to set the +checksums if e2fsck hasn't been completed, and it often results an the +error message, "Inode bitmap not loaded while setting block group +checksum info". (Addresses Launchpad Bug: #582035) + +The mke2fs program now queries the kernel for the physical as well as +the logical sector size, and will not allow a blocksize below the +logical, and will strongly encourage a blocksize at least as big as +the physical blocksize. This is needed for 4k sector drives that +emulate 512 byte sector sizes. + +Mke2fs will now allow a flex_bg size of 1. This is unusual, and +rarely needed, but it is a legal value. + +E2fsck will check for cases where the EOFBLOCKS_FL is set when it is +not needed, and offer to clear it; this is a sign of a kernel bug, but +more importantly, some released kernels may crash when this situation +is encountered on ext4 file systems. (Addresses Google Bug: #2604224) + +E2fsck will use the EOFBLOCKS_FL flag exclusively to check whether +i_size is correct. (Kernels starting with 2.6.34 will set +EOFBLOCKS_FL.) + +The com_err library will now only output ^M (a CR character) when the +tty is in raw mode. + +Update the Czech, Chinese, Dutch, French, Germany, Indonesian, Polish, +and Vietnamese translations. + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bugs: #571247, #563487) + + +Programmer's Notes +------------------ + +The regression test suite now uses its own mke2fs.conf file, so that +downstream distributions want change the mke2fs.conf file which is +distributed in the RPM or dpkg file, without worrying about screwing +up the regression test results. + +Always build namei.o so that building with configure --disable-debugfs +works correctly. Long-term, if we care about reduced e2fsprogs +builds, we need a more general solution for deciding what .o files are +needed for a particular build. Given that install floppies are going +(gone?) the way the dodo bird, we probably don't care, though. +(Addresses Sourceforge Bug: #2911433) + +Add configure options --enable-symlink-build and +--enable-symlink-install, which allow e2fsprogs be built using +symlinks instad of hard links, and to be installed using symlinks +instead of hard links, respectively. It is useful when the file +system where the build is taking place, or the file system where +e2fsprogs is installed, can't handle hard links for some reason. +(Addresses Sourceforge Bug: #1436294) + +Fixed compile warning in mke2fs.c. + + +E2fsprogs 1.41.11 (March 14, 2010) +================================== + +E2fsck will no longer give a fatal error and abort if the physical +device has been resized beyond 2**32 blocks. (Addresses Launchpad +Bug: #521648) + +Debugfs has a bug fixed so that "logdump -b " now properly shows +the allocation status of the block . (Addresses Debian Bug: +#564084) + +E2fsck now prints a much more emphatic and hopefully scary message +when a file system is detected as mounted while doing a read/write +check of the filesystem. Hopefully this will dissuade users from +thinking, "surely that message doesn't apply to *me*" :-( + +E2fsck -n will now always open the file system read-only. We now +disallow certain combination of options which previously were manual +exceptions; this is bad because it causes users to think they are +smarter than they really are. So "-n -c", "-n -l", "-n -L", and "-n +-D" are no longer supported. (Addresses Launchpad Bug: #537483) + +In e2fsprogs 1.41.10, mke2fs would ask for confirmation to proceed if +it detected a badly aligned partition. Unfortunately, this broke some +distribution installation scripts, so it now just prints the warning +message and proceeds. (Addresses Red Hat Bug: #569021. Addresses +Launchpad Bug: #530071) + +Mke2fs would take a long time to create very large journal files for +ext4. This was caused by a bug in ext2fs_block_iterate2(), which is +now fixed. + +E2fsck now understands the EOFBLOCKS_FL flag which will be used in +2.6.34 kernels to make e2fsck not complain about blocks deliberately +fallocated() beyond an inode's i_size. + +E2fsprogs 1.41.10 introduced a regression (in commit b71e018) where +e2fsck -fD can corrupt non-indexed directories when are exists one or +more file names which alphabetically sort before ".". This can happen +with ext2 filesystems or for small directories (take less than a lock) +which contain filenames that begin with a space or some other +punctuation mark. (Addresses Debian Bug: #573923, Addresses Launchpad +Bug: #525114) + + +Programmer's Notes +------------------ + +Add new test, f_rehash_dir, which checks to make sure e2fsck -D works +correctly. + +The libcom_err function now has support for Heimdal's com_right_r +function(). (Addresses Sourceforge Bug: #2963865, Addresses Debian +Bug: #558910) + + +E2fsprogs 1.41.10 (February 7, 2010) +==================================== + +Fix resize2fs bug which causes it to access invalid memory. + +Add libss support for libreadline.so.6. + +Fix e2fsck's check for extent-mapped directory with an incorrect file +type. + +Add new e2fsck.conf configuration option, default/broken_system_clock +to support systems with broken CMOS hardware clocks. Also, since too +many distributions seem to have broken virtualization scripts now, +e2fsck will by default accept dates which are off by up to 24 hours by +default. (Addresses Debian Bugs: #559776, #557636) + +Fix a bug where mke2fs may not use the best placement of the inode +table when there is only room for a single block group in the last +flex_bg. + +E2fsck is now smarter when it needs to allocate blocks in the course +of fixing file system problems. This reduces the number of spurious +differences found in pass #5. + +E2fsck will no longer rehash directories which fit in a single +directory block. + +E2fsck now correctly handles holes in extent-mapped directories (i.e., +sparse directories which use extents). + +Fix big-endian problems with ext2fs_bmap() and ext2fs_bmap2(). + +Fix a bug in filefrag where on platforms which can allow file systems +with 8k blocks, that it doesn't core dump when it sees a file system +with 8k block sizes. (Thanks to Mikulas Patocka for pointing this +out.) + +E2fsck will correctly fix directories that are have an inaccurate +i_size as well as other problems in a single pass, instead of +requiring two e2fsck runs before the file system is fully fixed. + +Fix e2fsck so it will correctly find and detect duplicate directory +entries for non-indexed directories. ( Addresses Sourceforge Bug: +#2862551) + +Mke2fs will use BLKDISCARD to pre-discard all blocks on an SSD or +thinly-provisioned storage device. This can be disabled using the -K +option. + +Enhance libext2fs so it works around bug in Linux version 2.6.19 +and earlier where the /proc/swaps file was missing the header on +the first line. + +Fix bug in Linux version 2.6.19 and earlier where the /proc/swaps file +was missing the header on the first line. + +Fix some big-endian bugs in e2fsck and libext2fs. + +Fix resize2fs so it works correctly on file systems with external +journals instead of failing early with the error "Illegal inode +number". + +Fix libss so that it does not seg fault when using a readline library +which does not supply a readline_shutdown() function. + +Updated dumpe2fs's usage message so it correctly gives the right +arguments summary for "-o superblock=" and "-o blocksize=". +(Addresses Launchpad Bug: #448099) + +Teach libext2fs to ignore the high 32 bits of the i_blocks field +when huge_file file system feature is set, but the inode does not +have the HUGE_FILE_FL flag set. + +Fix e2fsck's handling of 64-bit i_blocks fields. + +E2fsck will now print "Illegal indirect block", "Illegal +double-indirect block", etc., instead of "Illegal block #-1" or +"Illegal block #-2", etc. This makes it easier for users to +understand what has gone wrong. (Addresses SourceForge Bug: #2871782) + +Mke2fs now will obtain get device topology information from blkid and +use it to populate the superblock stride and stripe sizes. It will +also warn if the block device is misaligned + +Fix file descriptor leaks in fsck and debugfs. (Addresses Novell Bug: +##524526) + +Fix the libext2fs library code to round up the bitmap size to a 4-byte +boundary, to prevent spurious seg faults caused by the x86 +architecture. This doesn't affect Linux systems, but was a major +problem on a number of *BSD systems. (Addresses Sourceforge Bug: +#2328708) + +Fix resize2fs's minimum size required for a file system so it doesn't +fail when "resize2fs -M" is run. (Addresses RedHat Bugzilla: #519131) + +Dumpe2fs now prints summary information about the contents of the +journal. + +Avoid printing scary error messages when e2fsck starts running +problems on low-memory systems, as it tends to panic and mislead the +user. (Addresses Debian Bug: #509529) + +Fix blkid's modules.dep parser so it handles compressed (.ko.gz) +modules files. (Address Red Hat Bug: #518572) + +Fix tune2fs so it can add a journal when an extent-enabled file system +is mounted. (Addresses Launchpad bug: #416648) + +Update Czech, Indonesian, Polish and Vietnamese translations (from the +Translation Project). + +Update/clarify man pages. (Addresses Sourceforge Bug: #2822186) + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bugs: #540111) + +Programmer's Notes +------------------ + +The configure script supports the --with-cc, --with-ccopts, and +--with-ldopts options. Instead, the more standard use of CC=, +CCFLAGS=, and LDFLAGS= in the configure command line is used instead. +Also, --with-ld, which never worked, was also removed. +(Addresses Sourceforge Bug: #2843248) + +The in-tree header files are only used if the in-tree uuid or blkid +libraries are used. Otherwise, use the system-provided uuid or blkid +header files if using the system-provided libraries. + +Fix some build failures caused by --disable-* configure options. + +Work around a bug in autoconf 2.64. + + +E2fsprogs 1.41.9 (August 22, 2009) +================================== + +Fix a bug in e2fsck routines for reallocating an inode table which +could cause it to loop forever on an ext4 filesystem with the FLEX_BG +filesystem feature with a relatively rare (and specific) filesystem +corruption. This fix causes e2fsck to try to find space for a new +portion of the inode table in the containing flex_bg, and if that +fails, the new portion of the inode table will be allocated in any +free space available in the filesystem. + +Make e2fsck less annoying by only asking for permission to relocate a +block group's inode table once, instead of for every overlapping +block. Similarly, only ask once to recompute the block group +checksums, instead of once for each corrupted block group's checksum. + +Fix filefrag to avoid print the extent header if the FIEMAP ioctl is +not present, and it needs to fall back to using the FIBMAP ioctl. + +Fix filefrag to correctly print the number of extents for zero-length +files. (Addresses Debian Bug: #540376) + +Filefrag now has a -B option which forces the use of the FIBMAP ioctl +to more easily debug the FIBMAP code. + +Fixed filefrag for non-extent based files. + +Add a new program, e2freefrag, which displays information about the +free space fragmentation in an ext2/3/4 filesystem. + +Fix inode resizing via tune2fs -I so that it works correctly in the +face of non-empty bad blocks inodes, and if the filesystem was +formatted using the "mke2fs -E stride=N" option for RAID arrays. + +Fix regression in ext2fs_extent_set_bmap() caused e2fsck -fD to fail +and corrupt large directories if the directory needs to shrink by more +than one block. (Addresses Debian Bug: #537510) + +Fix e2fsck's buggy_init_scritps=1 so that the if the last write and/or +last mount times are in the future, they are corrected even if +buggy_init_scripts is set. This is needed because otherwise resize2fs +will refuse to resize the filesystem, even after running "e2fsck -f". +(Addresses Launchpad bug: #373409) + +E2fsck will now print much fuller information when the last mount time +or last written time is in the future, since most people can't seem to +believe their distribution has buggy init scripts, or they have a +failed CMOS/RTS clock battery. + +Enhance dumpe2fs to dump the extent information via the 'stat' +command, and more detailed extent information via the new command +'dump_extents'. + +Update French, Polish, Czech, and Sweedish translation from the +Translation Project. + +Fixed various Debian packaging issues --- see debian/changelog for +details. + +Programmer's Notes +------------------ + +Fixed miscellaneous gcc -Wall warnings. + +Fixed memory leak in error path in ext2fs_block_iterate2() + +Fixed non-Linux build of the intl directory by adding support for the +E/Q/V macros. + +The bitmap read/write functions now treat uninitialized bitmaps as +unallocated; this fixes a number of problems in all e2fsprogs for ext4 +filesystems when there is a need to allocate new blocks or inodes, and +there aren't any free blocks or inodes in the already-used block +groups. + +Improve ext2fs_extent_set_bmap() to avoid creating new extents which +get inserted into the extent tree when they are not needed. + + +E2fsprogs 1.41.8 (July 11, 2009) +================================ + +Fix resize2fs's online resizing, fixing a regression which in +e2fpsrogs 1.41.7. (Addresses Debian Bug: #535452) + +Fix potential filesystem corruptions caused by using resize2fs to +shrinking ext4 filesystems with extents enabled. (Addresses Red Hat +Bug: #510379) + +Optimize uuid_generate() to avoid running uuidd if it is not setuid or +setgid and the currently running program doesn't have write access to +the uuidd work directory. + +Add safety checks (for non-Linux systems) so that uuidd isn't run with +file descriptors 0, 1, and 2 closed; and if they are closed, uuidd +will be careful not to close the file descriptor for its unix domain +socket when it detaches itself from the controlling tty. Also add +safety checks so that if the unix domain socket between the uuid +library and uuidd program is closed for any reason, both the library +and the uuidd will return an appropriate error code instead of looping +in an infinite loop. + +The e2croncheck script, which creates an LVM snapshot and then checks +the ext3/4 filesystem via the LVM snapshot, has been added to the +contrib directory. + +Fix filefrag program for files that have more than 144 extents. + +Update French, Polish, Czech, Indonsian, and Sweedish translation from +the Translation Project. + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bug #535530) + +Update/clarify man pages. + +Programmer's Notes +------------------ + +Fix compilation problem when configured with --disable-uuid. + +Don't build uuidgen if configured with --disable-uuid. + +Add the new library function ext2fs_test_inode_bitmap_range(), and +optimized ext2fs_test_block_bitmap_range(), which will be needed for +future optimizations for e2fsck. + +Fix makefile dependencies for libcom_err so that the Makefiles work +well on non-GNU make program. (Addresses Sourceforge Patches: #2813809) + +Enhance the build system so that the full set of commands executed by +the Makefiles are displayed, instead of the Linux kernel summary +output, if the build was configured with --enable-verbose-makecmds, or +if GNU make is in use and the V variable is non-null, i.e., via "make +V=1". + + +E2fsprogs 1.41.7 (June 29, 2009) +================================ + +Fix a bug in libext2fs which can cause e2fsck and resize2fs to write +uninitalized data into the portion of the inode beyond the first 128 +bytes when operating on inodes mapped via extents; potentially +corrupting filesystems. + +Fix memory leaks in e2fsprogs, including a very large memory leak +which can cause e2fsck to run out of memory when checking very large +filesystems using extents. + +The logsave program will now filter out the ^A and ^B characters when +writing to the console. + +Harden ext2fs_validate_entry() so that lsdel will not read beyond the +end of the block even if the directory block is corrupted. + +Fix debugfs from core dumping if the logdump command fails to open the +output file. + +Enhance badblocks to print the currently tested block number when +interrupted with ^C. + +Fix lsattr to exit with a non-zero status when it encounters errors. +(Addresses RedHat Bugzilla #489841) + +Fix e2fsprogs to use the same encoding for rec_len in 64k (and larger) +filesystems as the kernel when encoding rec_len >= 64k. For 64k +filesystems (currently all that is supported by e2fsprogs, this is +only a minor corner case). + +Resize2fs will now update the journal backup fileds in the sup0erblock +if the journal is moved; this avoids an unnecessary full fsck after +resizing the filesystem. (Addresses RedHat Bugzilla: #505339) + +Fix libext2fs to properly initialize i_extra_size when creating the +journal and resize inodes. + +Change badblocks to allow block sizes larger than 4k. + +Fix filefrag progam so it correctly checks for errors from the fiemap ioctl. + +Update Chinese and Czech translation from the Translation Project. + +Clean up various man pages. (Addresses Debian Bug #531385 and #523063) + + +Programmer's Notes +------------------ + +Add --disable-libuuid option to configure which uses an in-system +installed version of libuuid; the private version is enabled by +default. + +Add --valgrind-leakcheck option to the test_script program which runs +valgrind with the appropriate options to find memory leaks. + + +E2fsprogs 1.41.6 (May 30, 2009) +=============================== + +Fix a critical regression in e2fsck introduced version 1.41.5 which +can undo updates to the block group descriptors after a journal replay. + +If e2fsck receives an I/O error while replaying the journal, prompt +the user whether they want to ignore the error or not; if e2fsck is +run in preen mode, force fsck to abort the preen pass. + +Fix a bug which would cause e2fsck to core dump if the filesystem +contains a corrupt extent header, and the user declines to clear the +inode. (Addresses Sourceforge Bug: #2791794) + +Fix e2fsck to restart only once in the case of multiple block groups +which inodes in use that are in the uninitialized part of the block +group's inode table. + +To reduce user confusion, if the /etc/mtab file is missing +ext2fs_check_mount_point and ext2fs_check_if_mounted will return a +new, explicit error code to indicate this case. This will cause +e2fsck to give a clearer error message when the user is using buggy +rescue CD's that don't properly set up /etc/mtab. (Addresses Debian +Bug: #527859) + +Fix e2fsck so that if the primary group descriptors are corrupted, but +the backup superblock is entirely invalid, to go back to using (and +fixing) the priary group descriptors instead of completely giving up +on the filesystem. (Addresses Debian Bug: #516820) + +Change e2fsck to not abort a preen pass if an inode is found to have +i_file_acl_hi non-zero. Ext3 filesystems don't care, and newer +kernels (post 2.6.29) will ignore this field. So let's fix it +automatically during the preen pass instead of forcing the user to fix +this up manually. (Addresses Debian Bug: #526524) + +Add resource tracking for e2fsck passes 1b through 1d. + +Speed up e2fsck by eliminating unnecessary journal checks if the +filesystem is already mounted and doesn't need recovery (since the +kernel would have run the journal when the filesystem was mounted.) +Also speed up e2fsck by avoiding unnecessary block group descriptor +updates in ext2fs_close(). + +Add support to chattr to migrate inodes from using direct/indirect +blocks to extents. + +Avoid corrupting the filesystem if there is an attempt to shrink a +filesystem using resize2fs smaller than posible by making +ext2fs_set_bmap() more careful not to delete the old block until the +new block can be inserted. In addition, fix a bug in how the minimum +size of the filesystem (plus a safety margin) is calculated, and +modify resize2fs to refuse to shrink the filesystem below that minimum +size without the force flag. + +Teach blkid to try to figure out DM device names using take advantage +of information in sysfs when running on kernels (2.6.29 and later) +which provide this information in /sys/block/dm-/dm/name; this is +much faster than scanning for the devncie number in /dev/mapper. + +Fix blkid to prefer /dev/mapper/ device names instad of the +private /dev/dm-X names. + +Add an -a option to debugfs's close_filesys command which writes any +changes to the superblock or block group descriptors to all of the +backup superblock locations. + +Add support to the filefrag program to use the FIEMAP ioctl. + +Update Chinese translation from the Translation Project. + +Clean up various man pages. (Addresses Red Hat Bugzilla: #502971 and +Launchpad Bug: #381854) + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bug #506064) + + +Programmer's Notes +------------------ + +Add test code to make sure e2fsck's problem.c doesn't have two problem +codes assigned to duplicate values. + +Avoid using a hard-coded path for /bin/rm in block's test_probe.in. +(Addresses Sourceforge Bug: #2780205) + +Clean up e2fsck by removing #ifdef RESOURCE_TRACK by adding an empty +function declaration for init_resource_track() and +print_resource_track() when RESOURCE_TRACK is not defined. + +The test code which is used to build the tst_csum progam has been +moved from from tst_csum.c into csum.c under an #ifdef DEBUG to to +avoid compile problems caused by not having a prototype for +ext2fs_group_desc_csum(). (Addresses Sourceforge Bug #2484331) + +Update the config.guess and config.sub file to the latest from the +FSF, to allow e2fsprogs to build on the avr32 platform. (Addresses +Debian Bug: #528330) + +Add a new function, ext2fs_extent_open2(), which behaves like +pext2fs_extent_open(), but uses the user-supplied inode structure +when opening an extent instead of reading the inode from disk. + + +E2fsprogs 1.41.5 (April 23, 2009) +================================= + +Fix a number of filesystem corruption bugs in resize2fs when growing +or shrinking ext4 filesystems off-line (i.e., when the ext4 filesystem +is not mounted). + +Debugfs can now set i_file_acl_high via the set_inodes_field command, +and print a 64-bit file acl. This is useful for debugging filesystem +corruptions where the high bits of i_file_acl_high are set. E2fsck +will detect and fix non-zero i_file_acl_high on 32-bit filesystems +since some Linux kernel versions pay attention to this field even when +they shouldn't. + +Speed up e2fsck when checking clean filesystems by avoiding +unnecessary block reads, and coalescing the block group descriptor +blocks so they are read using a single read operation. + +The libuuid library will now close all file descriptors before running +uuidd. This avoids problems when the calling program has open sockets +which then never get closed because uuidd is a long-running helper +daeomn. (Addresses Launchpad bug: #305057) + +In order to avoid unnecessary full filesystem checks by e2fsck after +an on-line resize, e2fsck will ignore the NEEDS_RECOVERY flag set on +the backup superblocks. (Addresses Red Hat Bugzilla: #471925) + +Mke2fs will avoid trying to create the journal when run in +superblock-only mode (mke2fs -S), since the left-over journal in the +inode table will cause mke2fs to fail. + +Fix a bug in libext2fs functions that check to see if a particular +device or filesystem image is mounted, which would cause these +functions to report that a file identical to the (relative) pathname +used by a pseudo-filesystem was mounted when in fact it was not. + +Update Czech translation from the Translation Project. + +Add Chinese (simplified) translation from the Translation Project. + +Fix support for external journals (which was broken in e2fsprogs +1.41.4). + +Fix a regression in debugfs where the "stat" command when no +filesystem was open would cause debugfs to crash with a segmentation +violation. + +Starting in the 2.6.29 linux kernel, the ext4 filesystem driver can be +used to support filesystems without a journal. Update the blkid +library so it understands this. + +The blkid library will remove an entry from the blkid cache +representing the entire disk if partitions are found, since presuambly +the device previously had no partition table, but has now transitioned +to using a partition table. + +Add a check to mke2fs and tune2fs that the argument to the -m option +(which specifies the reserved ratio) must be greater than zero. +(Addresses Debian Bug: #517015) + +Add support for tracking the number kilobytes written to the +filesystem via the superblock field s_kbytes_written. It will be +updated by the kernel as well as by e2fsprogs programs which write to +the filesystem. This is useful for tracking the wear to filesystems +on Solid Sstate Drives. + +Fix compatibility issue in the libext2fs info file and makeinfo +version 4.12. (Addresses Red Hat Bugzilla: #481620) + +Update/clarify man pages. (Addresses Debian Bug: #515693, #365619) + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bug: #506279) + +Programmer's Notes +------------------ + +Fix Hurd compilation problem in e2fsck and tune2fs (Addresses Debian +Bug: #521602) + +Fix various gcc compilation warnings and other programming cleanups. +(Addresses Red Hat Bugzilla: #486997) + +Add support for building the blkid command statically. + +Add support for disabling the built-in blkid library in favor of a +system-installed blkid implementation via the configure option +--disable-libblkid. + + +E2fsprogs 1.41.4 (January 27, 2009) +=================================== + +Fixed a bug which could sometimes cause blkid to return an exit value +of zero for a non-existent device (Addresses Debian Bug: #502541) + +Blkid will now recognize ext3 filesystems that have the test_fs flag +set as ext3 filesystems. + +The blkid library will now recognize btrfs filesystems and swap +devices currently used by user-level software suspend. + +Tune2fs now updates the block group checksums when changing the UUID +to avoid causing e2fsck to complain vociferously at the next reboot. + +Tune2fs's inode size resizing algorithms have been fixed so it is not +vastly inefficient for moderate-to-large filesystems, due to some +O(n**2) and O(n*m) algorithms that didn't scale well at all. + +Fix tune2fs's inode resizing algorithm so it will not corrupt +filesystems laid out for RAID filesystems; in addition, tune2fs will +refuse to change the inode size for filesystems that have the flex_bg +feature enabled. (This is a limitation in the current implementation +of tune2fs -I.) + +E2fsprogs 1.41 broke debugfs's logdump command for normal ext3/4 +filesystems with 32-bit block numbers, when the headers for 64-bit +block numbers was added. This regression has been fixed. + +Debugfs's ncheck command has been fixed to avoid printing garbage +characters at the end of file names. + +Fix resize2fs for ext4 filesystems. Some blocks that that need moving +when shrinking filesystems with uninit_bg feature would not be moved. +In addition, blocks and inode table blocks were not being correctly +freed when shrinking filesystems with the flex_bg feable, which caused +resize2fs -M to fail. Finally, when blocks are moved, make sure the +uninitialized flag in extents is preserved. + +Fix bug which caused dumpe2fs to abort with an error if run on a +filesystem that contained an external journal. + +Some distributions used "mke3fs" as an alias for "mkfs.ext3"; check +for this in argv[0] to provide better legacy support for these +distributions. This is a practice that should NOT be continued, +however. + +Mke2fs now has a new option -U, which allows the user to specify the +UUID that should be used for the new filesystem. + +Mke2fs will treat devices that are exactly 16TB as if they were 16TB +minus one block. This allows users who have read that ext3 supports +up to 16TB filesystems and who create a 16TB LVM to not get confused, +since the true limit is really 16TB minus one block. + +E2fsck will no longer abort an fsck run if block group has an errant +INODE_UNINIT flag. + +E2fsck now distinguishes between fragmented directories and fragmented +files in verbose mode statistics and in the fragcheck report. + +Fix a bug in e2fsck which casued it double count non-contiguous +extent-based inodes. + +E2fsck will leave some slack space when repacking directories to allow +room for a few directory entries to be added without causing leaf +nodes to be split right away. + +Fix a bug which caused e2fsck to crash when it comes across a +corrupted interior node in an extent tree with the error message: +"Error1: Corrupt extent header on inode XXXXXX" + +E2fsck problem descriptions involving the journal are no longer +referred to as "ext3" problems, since ext4 filesystems also have +journals. + +Fix a long-standing bug in e2fsck which would cause it to crash when +replying journals for filesystems with block sizes greater than 8k. + +Update Catalan translation from the Translation Project. + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bugs: #503057, #502323, #511207) + +Programmer's Notes +------------------ + +Fix build of e2fsck.profiled, and add support for building profiled +binaries in the misc directory if configured with --enable-profile. + +The ext2fs_open() function now performs more sanity checks on the +superblock to avoid potential divide by zero errors by other parts of +library. + +The ext2fs_read_inode_full() function now has a safety check to avoid +a segmentation fault on corrupted filesystems. + +The ext2fs_new_inode() function now has a sanity check so that if the +s_first_inode field in the superblock is insane, it will return +EXT2_ET_INODE_ALLOC_FAIL instead of returning an invalid inode number. + +To avoid segmentation faults, ext2fs_block_alloc_stats() and +ext2fs_inode_alloc_stats() now validates the passed inode or block +number to avoid overrunning an array boundary. + +Various signed/unsigned errors for variables containing block numbers +have been fixed. + +Accomodations for gcc's stupidity in not realizing that constant +strings that do not contain a '%' character are safe to use in format +strings have been made so that distributions that want to compile +e2fsprogs with -Werror=format-security have an easier time doing so. + +Added a new 64-bit getsize interface, ext2fs_get_device_size2(). + +Added the utility make-sparse.c to the contrib directory. + +The ext2fs_block_iterate2() function now reflects errors from +ext2fs_extent_set_bmap() to the caller, if the callback tries to +change a block on an extent-based file, and ext2fs_extent_set_bmap() +fails for some reason (for example, there isn't enough disk space to +split a node and expand the extent tree. + +The ext2fs_block_iterate2() function will preserve the uninit flag in +extents when the callback function modifies a block in an extent-based +file. + +E2fsck will now flag filesystems that have an insane s_first_ino field +in their superblock, and attempt to use a backup superblock to repair +the filesystem. + + +E2fsprogs 1.41.3 (October 12, 2008) +=================================== + +E2fsck has been fixed so it prints the correct inode number for +uinit_bg related problems. + +E2fsck will now offer to clear the test_fs flag if the ext4 filesystem +is available on linux. This can be disabled via a configuration +option in /etc/e2fsck.conf. + +Fix a file descriptor leak in libblkid when checking to see if an ext4 +or ext4dev module exists. + +Fix a bug in e2fsck where in preen mode, if there are disk I/O errors +while trying to close a filesystem can lead to infinite loops. +(Addresses Red Hat Bugzilla #465679) + +Fix a bug in resize2fs where passing in a bogus new size of 0 blocks +will cause resize2fs to drop into an infinite loop. (Addresses Red +Hat Bugzilla: #465984) + +Add a check in the Unix I/O functions in libext2fs so that when a +device is opened read/write, return an error if the device is +read-only using the BLKROGET ioctl. + +Fix debugfs's ncheck command so that it prints all of the names of +hardlinks in the same directory. + +Fix a bug in libblkid so it correctly detects whether the ext4 and +ext4dev filesystems are available, so that the ext4dev->ext4 +fallback code works correctly. + +Programmer's Notes +------------------ + +Fix a parallel build problem by making sure util/subst is built before +trying to build the lib/et directory. (Addresses Sourceforge Bug: +#2143281) + +Updated "make depend" information for crc16.o + + +E2fsprogs 1.41.2 (October 2, 2008) +================================== + +Fix e2fsck's automatic blocksize detection. This fixes a regression +from e2fsprogs 1.40.7 which caused e2fsck to fail if the user +specifies a block number using the -b option if the blocksize option +isn't also specified using -B. Unfortunately, users very commonly +invoke e2fsck using "e2fsck -b 32768 /dev/hdXXX" to use the backup +superblock; in fack e2fsck will often suggest this kind of command +line. Oops. + +Enhance the debugfs's "ncheck" command so it will print all of the +pathnames for the specified inodes. (Previously, in some cases ncheck +might not print a pathname for an inode at all if some of the other +inodes had multiple hard links.) + +Enhance debugfs's "hash" command so the hash seed can be specified via +a command-line option. In addition, allow the hash algorithm to be +specified by name instead of just by number. + +Fix e2fsck so that we don't accidentally print the translation file's +header when asking the user a custom question so there is no prompt +defined for a particular problem record. For example, the question +"Run journal anyway" will get the PO header tacked on because e2fsck +erroneously passed the null string to _(). (Addresses Launchpad Bug: +#246892) + +Enhance badblocks so that it can test a normal file which is greater +than 2GB. + +Enhance the badblocks command so that it displays the time and +percentage complete when in verbose mode. (Addresses Debian Bug: +#429739) + +Fix a potential memory leak in a error handling path in debugfs's +ncheck function. + +Fix a potential memory corruption problem if a memory allocation fails +in resize2fs. + +Fix the usage message for debugfs's logdump command to be consistent +with its man manpage. + +Update Polish, French, Vietnamese, Dutch, Indonesian, German, Czech, +and Sweedish translation from the Translation Project. + +Add documentation for the file I/O functions to the libext2fs.texinfo +file. (Addresses Debian Bug: #484877) + +Update and clarified various man pages. (Addresses Launchpad Bug +#275272; Addresses Debian Bugs: #498100, #498101, #498102, #498103) + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bug: #497619) + +Programmer's Notes +------------------ + +Fix a potential file descriptor leack in libcom_err by setting the +close-on-exec flag for a fd used for debugging. (Addresses Red Hat +Bugzilla #464689) + +Fix a potential race in libcom_err by using sem_post/sem_init. SuSE +has been carrying a patch for a long time to prevent a largely +theoretical race condition if a multi-threaded application adds and +removes error tables in multiple threads. Unfortunately SuSE's +approach breaks compatibility by forcing applications to link and +compile with the -pthread option; using pthread mutexes has +historically been problematic. We fix this by using sem_post/sem_init +instead. + +Fix e2fsprogs-libs build failure due to 'subs' target. (Addresses +Sourceforge Bug: #2087502) + +Avoid linking e2initrd_helper, debugfs, blkid, and fsck with unneeded +libraries when using ELF shared libraries. + +Fix ELF shared library when building on systems that don't already +have the e2fsprogs shared libraries already installed. (Addresses +Sourceforge Bug: #2088537) + +Fix the pkg-config files so they work correctly when linking with +static libraries and fix the include directory so programs don't have +to use #include , but can use #include +instead. (Addresses Sourceforge Bug: #2089537) + +Make sure ext2fs_swab64() is compiled for all platforms, and not just +for x86. (Addresses Debian Bug: #497515) + +Remove the unused ext2fs_find_{first,ext}_bit_set() functions for all +non-x86 platforms. (They had been removed for x86 earlier.) + +Fix diet libc compilation support, which had bitrotted due to lack of +TLC. Fixing this improves general portability. + +When installing the link library when using ELF shared libraries, +avoid using absolute pathnames if the link library and the shared +library are installed in the same directory. (Addresses Sourceforge +Bug: #1782913) + +Fix gen-tarball so it will work even if the top-level directory has +been renamed to something other than "e2fsprogs". Also make +gen-tarball print the size of the resulting tar.gz file. + + +E2fsprogs 1.41.1 (September 1, 2008) +==================================== + +Many people are forgetting to update their mke2fs.conf file, and this +causes ext3, ext4, and ext4dev filesystems won't get created with the +proper features enabled. We address this in two ways. First, mke2fs +will issue a warning if there is not definition for an ext3, ext4, or +ext4dev filesystem and the user is trying to create such a filesystem +type. Secondly, when installing from a source build, "make install" +will provide basic configuration file handling for /etc/mke2fs.conf. +If it exists, and does not mention ext4dev, it will be moved aside to +/etc/mke2fs.conf.e2fpsrogs-old and the new /etc/mke2fs.conf file will +be installed. If the existing /etc/mke2fs.conf file does mention +ext4dev, then "make install" will install official mke2fs.conf file as +/etc/mke2fs.conf.e2fsprogs-new and issue a message to the user that +they should look to see if any changes need to be merged. + +The mke2fs program will now create the journal in the middle of the +filesystem, since this minimizes seek times on average for fsync-heavy +workloads. In addition, mke2fs will now create journals using extents +for filesystems that support them. This results in a more efficient +encoding for the journal since it eliminates the need for using +indirect blocks. + +The mke2fs program will avoid allocating an extra block to the +journal. (Addresses Sourceforge Bug: #1483791) + +Mke2fs will correctly enforce the prohibition against features +(specifically read-only features) in revision 0 filesystems. (Thanks +to Benno Schulenberg for noticing this problem.) + +Mke2fs previously would occasionaly create some slightly non-optimally +placed inode tables; this bug has been fixed. + +The mke2fs and tune2fs programs now print the correct usage message +describing the maximum journal size. (Addresses Debian Bug: #491620) + +Add support for setting the default hash algorithm used in b-tree +directories in tune2fs (from a command-line option) or mke2fs (via +mke2fs.conf). In addition, change the default hash algorithm to +half_md4, since it is faster and better. + +The blkid library will now recognize MacOS hfsx filesystems, and +correctly extract the label and uuid for hfs, hfsx, and hfsplus +filesystems. (Addresses Sourceforge Feature Requests: #2060292) + +The blkid library has improved detection of JFS and HPFS filesystems. +(Addresses Launchpad Bug: #255255) + +The blkid library is now much more efficiently handling devicemapper +devices, mainly by no longer using the devicemapper library. This can +speed up access for systems with a large number of device mapper +devices. + +Blkid had a number of cache validation bugs in libblkid that have been +fixed. (Addresses Debian Bug: #493216) + +Resize2fs will now properly close out the "updating inode references" +progress bar so there is a newline printed before printing the final +"resize is successful" message. + +Resize2fs will now correctly handle filesystems with extents and/o +uninitialized block groups correctly when file/directory blocks need +to relocated (i.e., when shrinking a filesystem or if the resize_inode +is not present). To support this, the ext2fs library now supports +initializing inode and block bitmaps that are not yet initialized when +allocating them using ext2fs_new_block() and ext2fs_new_inode(). In +addition, e2fs_block_iterate2() can now support changing the location +of interior nodes of an extent tree, and ext2fs_extent_set_bmap() has +been optimized to avoid creating unnecessary new extents when updating +the location of blocks in the extent tree. This will also help out +e2fsck's recovery of obscurely corrupted filesystems with extents, +when blocks are claimed by multiple inodes. + +Add support for on-line resizing ext4 filesystem with the flex_bg +filesystem feature. The method for doing so is not optimal, but to do +a better job will require kernel support. + +E2fsprogs 1.41.0 intrduced a bug in libext2fs which casued e2image and +debugfs programs to not be able to read e2image files; the signed +vs. unsigned bug in the code which read bitmaps from the e2image has +been fixed. (Addresses Debian Bug: #495830) + +Resize2fs is now correctly managing the directory in-use counts when +shrinking filesystems and directory inodes needed to be moved from one +block group to another. This bug has been around since e2fsprogs +1.26, and is largely harmless, but does cause a filesystem corruption +which will be flagged by e2fsck after the filesystem has been shrunk. + +E2fsck will no longer issue spurious complaints about the inode size +caused by very large extent-based files, and by blocks reallocated +using fallocate() with the FALLOC_FL_KEEP_SIZE option. (Addresses +Kernel Bugzilla: #11341) + +Mke2fs will now set the creation timestamp on the lost+found directory +and the root directory. (More generally, all new inodes created using +the ext2fs library will correctly set the creation timestamp.) + +E2fsck now correctly calculates ind/dind/tind statistics in the +presence of extent-based files. In addition, "e2fsck -v" will report +statistics of the depth of extent trees in the filesystem. E2fsck can +also give an inode fragmentation report using "e2fsck -E fragcheck" +which can be useful when debugging the kernel block allocation +routines. + +Fix support for empty directory blocks in ext4 filesystems with 64k +blocksize filesystems. + +E2fsck will now print the depth of corrupt htree directories. + +Debugfs's htree command now correctly understands extent-based +directories. It will also print out the minor hash as well as the +major hash. + +Debugfs has a new command which will print the supported features of +e2fsprogs, to enable scripts to know whether the installed version of +e2fsprogs can support a specific feature. + +Debugfs will now write files using extents for filesystems that +support them. + +The error message printed by "tune2fs -I" if the inode size was too +small was rather confusing, so it has been improved. Also, we won't +try to create an undo log until we know that command-line-specified +parameters such as "tune2fs -I " are valid. + +Given some filesystems found "in the wild" that had non-zero block +group checksums even though the uninit_bg/gdt_sum feature was not +enabled, e2fsck would issue spurious error messages. Teach +ext2fs_group_desc_csum_verify() to ignore the block group checksum +entirely if the feature flag is not set. (Addresses Debian Bug: +#490637) + +The blkid program will now print out a user-friendly listing of all of +the block devices in the system and what they contain when given the +-L option. (Addresses Debian Bug: #490527) + +The filefrag program now has a more accurate calculation for the +number of ideal extents. (Addresses Debian Bug: #458306) + +The test I/O manager is now enabled by default, but its overhead is +only incurred when it would be enabled via the TEST_IO_FLAGS or +TEST_IO_BLOCK environment variables. + +Typographical errors in various program strings and usage messages +have been fixed; most of these were pointed out by the e2fsprogs +message catalog translators. (Thanks, translators!) + +Update and clarified various man pages, as well as some typographical +errors in the libext2fs texinfo file. + +Fixed various Debian packaging issues --- see debian/changelog for +details. + +Add Indonesian and update French, Polish, Dutch, German, Sweedish, +Czech, and Vietnamese Translations. (Addresses Debian Bugs: #313697, +#401092) + +Programmer's Notes +------------------ + +Fix portability problem with the badblocks group; for systems that +don't have nanosleep(), try using usleep() instead. + +The "make check" target in the e2fsck directory now sets +LD_LIBRARY_PATH before running the various e2fsck internal library +regression tests. + +The crc32 regression test in the e2fsck library is now portable to +greater varienty of environments, including big-endian systems and +when cross-building e2fsprogs for embedded systems. (Addresses +Sourceforge Bug: #2019287) + +The ext2fs_extent_set_bmap() had some bugs when setting the first +block in a file, or when replacing a single block extent. Those cases +fortunately were came up relatively rarely when e2fsck was checking +files, but caused some problems when resize2fs was shrinking +extent-based files. + +Fix a potential core-dumping bug in libe2p's iterate_on_dir() +function. + +Various ext2fs library functions --- ext2fs_block_iterate2(), +ext2fs_initialize() and ext2fs_extent_open() --- now correctly free +allocated memory to avoid memory leaks in all of their error return +paths. + +Ext2ed was failing to build because masix support had been removed in +the rest of e2fsprogs, so ext2ed no longer has masix support, either. + +The configure script now respects the LDFLAGS environment variable if +it is set when configure is called. (Addresses Sourceforge Feature +Request: #1937287) + +Libuuid is now more portable to the Windows platform. (Addresses +Sourceforge Feature Request: #1937287) + +The configure script now uses AC_MSG_{RESULT,WARN,ERROR} instead of +bare echo commands so that configure flags such as --quiet work +correctly. (Addresses Sourceforge Patches: #2058794) + +A few uses of sprintf have been removed from the ext2fs library to +make life easier for bootloaders with a limited libc environment. +(Addresses Sourceforge Bug: #2049120) + +The ext2fs_read_inode() checks the validity of the inode number passed +to it earlier, to avoid doing some needless work when it would fail +anyway. + +The ext2fs_open() checks the validity of the blocksize parameter +passed to it earlier, to avoid doing some needless work when it would +fail anyway. + +Disable a very annoying automatic "%.sh -> %" GNU make rule in the +top-level Makefile. That automatic rule is used to better support +SCCS, but it caused problems for a particular niche distribution which +likes to use configure.sh files to store the configure options used to +build a package. Unfortuntaely GNU make will use the configure.sh to +replace the configure script, resulting in a self-inflicted fork bomb +leading to an out-of-memory crash. + +To support old GNU C compilers don't use C99/C++ comments, but only +K&R style comments, and don't try to use __builtin_expect if __GNUC__ +is less than 3. (__builtin_expect is only supported for gcc versions +2.96 and up, and it's tricky to check for gcc 2.95 vs gcc 2.96; since +this is an optimization, we only try to use __builtin_expect for gcc 3 +and up.) + +In e2fsck's crc routines, make sure we use WORDS_BIGENDIAN instead of +__LITTLE_ENDIAN, which are only defined by glibc's header files and +hence isn't portable. + +For the convenience for some distributions that need a static tune2fs, +the Makefile for misc/ now has a tune2fs.static target. + +The ext2fs_block_iterate2() function now supports BLOCK_FLAG_APPEND +for extent-based files + +The ext2fs_bmap() function now supports BMAP_ALLOC for extent-based +files. + +All source files no longer have any trailing white space. + +The io_channel_read_blk64() and io_channel_write_blk64() functions are +now functions instead of C preprocessor macros to provide better +forward compatibility. + +The e2fpsrogs translation template now expands the @x abbrevation. + +Various namespace leackages in libblkid, libe2p, and libext2fs have +been fixed. + +Fix a parallel build problem in e2fsprogs. + +E2fsprogs is now more portable to Solaris. + * blkid no longer assumes that the TIOCGSIZE and TIOCGWINSZ ioctl's + are always present. + * Scripts do not assume that /bin/true is always in /bin + * Don't use __FUNCTION__ since Solaris's C99 doesn't support it. + * Flush stdio handles before calling setbuf(), since Solaris will + discard any pending output to the stream. + * Define _XOPEN_SOURCE to 600 since Solaris's header files are very + picky about which C compiler can beused for SUSv3 conformance. + Use of C99 is not compatible with SUSv2 (_XOPEN_SOURCE=500), + and C89 is not compatible with SUSv3 (_XOPEN_SOURCE=600). + Since we need some SUSv3 functions, consistently use SUSv3 so + that e2fsprogs will build on Solaris using c99. + * Solaris C99 does not support varargs C preprocessor macros + * Solaris header files pollute the C namespace if in/netinet.h + is included, which conflicts with e2fsprogs' use of the kmem_cache_t + typedef. + * Solaris ships with a pathetically ancient shell in /bin/sh so we + avoid the use of various more avanced shell constructs such as $(). + +The "make rpm" command will now take some extra configure optiosn from +the build environment without needing to patch the source tree. + +The ext2fs_add_dir_block() function will now grow the dblist more +aggressively as an optimization to avoid copying the array too often. + +The e2fsck_write_bitmaps() will write the block and inode bitmaps +together instead of in two passes. + + +E2fsprogs 1.41 (July 10, 2008) +============================== + +Add support for ext4 filesystem features, in particular extents, +uninit_bg, flex_bg, huge_file, and dir_nlink features. Also add +support for checking journal checksums. Debugfs will print new +superblock and inode fields that were defined for ext4. For example, +the nanosecond and i_version fields of an inode, and the +s_min_extra_isize and s_wanted_extra_isize fields from the superblock. +Note: Resize2fs doesn't currently support the combination of flex_bg +and !resize_inode. (Addresses Debian Bug: #388452, #425477) + +Tune2fs can support migrating a filesystem from using 128 byte inodes +to 256 byte inodes, so it can take advantage of the full features of +ext4. + +Add support for "undo" support. E2fsck and mke2fs can optionally +record an undo log which can replayed by the program e2undo. + +E2fsck could damage a filesystem by trying to relocate inode tables +due to corrupted block group descriptors, where the attempted inode +table relocation would do far more harm than good. E2fsck has been +fixed to detect this these sorts of corrupted block group descriptors +much earlier in e2fsck processing, so it can try to use the backup +superblock and block group descriptors first. This should be a much +better strategy for recovering these types of corrupted filesystems. +(Addresses Sourceforge Bug: #1840291) + +E2fsck will display a more understandable message when the last check +field in the superblock is in the future. (Addresses Debian Bug: +#446005). + +E2fsck now performs more extensive and careful checks of extended +attributes stored in the inode. + +Enhance mke2fs to print a more explanatory error message when +ext2fs_get_device_size() returns EFBIG. (Addresses Debian Bug: +#488663) + +Fix mke2fs to use a default block size of 4k when formatting an +external journal device. This is done by using a fixed filesystem +type list that consists only of the single filesystem type "journal" +when looking up configuration keys in /etc/mke2fs.conf. (Addresses +Debian Bug: #488663) + +Speed up how mke2fs writes the journal data blocks by writing the disk +blocks in larger chunks. + +Fix blkid handling of stale devices. Fix a bug which could cause a +core dump while garbage collecting the blkid cache, and assure that +blkid_find_dev_with_tag() never returns a non-existent device. Also, +if a filesystem is found at a new /dev location, eliminate any +duplicate stale entries which can not be verified. +(Addresses Debian Bugs: #487758, #487783) + +Add more paranoid checks for LVM volumes and swap partitions in +blkid's probe function, to reduce the chances of false positives. + +The mke2fs program now has a much more sophisticated system for +controlling configuration parameters of a newly created filesystem +based on a split filesystem and usage type system. The -t option to +mke2fs was a deprecated alias to -c; it now specifies a filesystem +type (ext2, ext3, ext4, etc.), while the -T option can now be a comma +separated usage list. The filesystem type information and type +information is used to extract configuration parameters from the +/etc/mke2fs.conf file. + +The mke2fs program will no longer complain and request the -f option +when the user tries to create a filesystem with greater than 2**31 +blocks. + +When creating a filesystem for the GNU Hurd use a fs-type of Hurd and +adjust the mke2fs.conf file so filesystems for the Hurd are created +with a blocksize of 4096 and inode size of 128, which is all it knows +how to handle. (Addresses Debian Bug: #471977) + +Mke2fs will always make sure that lost+found always has at least 2 +blocks, even for filesystems with very large blocksizes (i.e., 64kb). + +Resize2fs will now print the minimum needed filesystem size if given +the -P option, and will resize the filesystem to the smallest possible +size if given the -M option. + +Fix resize2fs to clean up the resize_inode if all of the reserved gdt +blocks are consumed during an off-line resize. + +The "ls" command in debugfs now supports the -p option, which causes +it to quote the filenames so that spaces or tabs in directory entries +are easily visible. (Addresses Red Hat Bugzilla: #149480; Addresses +Sourceforge Feature Request: #1201667) + +Fix a potential off-by-one buffer oveflow in the fs_device_name in an +e2image file. + +The chattr program will return a non-zero exit code in case of +failures, and error messages can be suppressed with the -f option. +(Addresses Red Hat Bugzilla: #180596) + +Fix a bug in badblocks which caused it to overrun an array and likely +crash if more than 8 test patterns are specified using the -t option. +(Addresses Debian Bug: #487298) + +Add support to badblocks to limit how quickly it reads from the disk +drive (so it can be used for background scrubbing), and so it will +abort after finding a given number of errors. + +Remove support for the legacy big-endian filesystem format which only +existed on extremely long-dead PowerPC kernels almost a decade ago. + +Remove MASIX support from e2fsprogs. + +Add I/O statistics reporting to e2fsck. + +Update Vietnamese, Polish, French, Spanish, German, Catalan, Dutch, +Czech translations. + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bugs: #487443, #487675, #490003) + +Fixed spelling mistakes, typos, and otherwise clarified man pages. +(Addresses Debian Bugs: #393313, #487849, #440983, #440981) + +Programmer's Notes +------------------ + +Factor out bitmap code in preparation for adding 64-bit new-style +bitmaps. + +Fix gcc -Wall warnings + +Fix the pkg-config files so that private librares are specified in +"Libs.private:". + +Fix the libext2fs.texinfo manual so it builds with modern versions of +texinfo. + +Silence the makefile from showing the awk command used to build the + +Clean up the badblocks group so to make it more portable and robust. + +Avoid using predictable filenames in /tmp in blkid's regression test +suite. Also remove bashism's in the regression test script. + +If the configure script is given --with-diet-libc, don't use thread +local storage, since diet libc doesn't support TLS. (Addresses +Sourceforge Bug: #2000654) + +Fix the blkid regression test suite to tolerate older versions of +mkswap that don't support the -U option. + +A few library routines have been converted to support 64-bit block +numbers; in particular, the I/O manager functions, the test_io, +inode_io, and unix_io managers have all be converted to support 64-bit +operation. + +Debugfs can now be extended for use by test programs. See +lib/ext2fs/extents.c for an example for how it can be used. The test +program links against the debugfs object files, and provides +additional commands by defining an auxiliary libss command table. + +The lazy_bg filesystem feature, which was only used by developer's +testing, has been removed since it has been largely supplanted by +uninit_bg. This also simplifies the code. + + +E2fsprogs 1.40.11 (June 17, 2008) +================================= + +Mke2fs, tune2fs, and resize2fs now use floating point to calculate the +percentage of reserved blocks. (Addresses Debian Bug: #452639) + +Updated Spanish and Catalan translations. + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bugs: #483962, #483023) + +Add detection for ZFS volumes to the libblkid library. + +Fixed spelling mistakes, typos, and otherwise clarified man pages. +(Addresses Debian Bug: #486463) + +Programmer's notes: +------------------- + +Fix marginal C code in probe_lvm2() function to the blkid library more +portable for older compilers. + +Fix build problems on MacOS X. (Addresses Sourceforge Bug: #1972473) + +Fix ext2fs_swap{16,32,64} functions so they can be used by external +applications on big-endian machines. (Addresses Debian Bug: #484879) + + +E2fsprogs 1.40.10 (May 21, 2008) +================================ + +When deciding whether or not to revalidate a blkid cache entry, if the +device's mtime is newer than the last time the cached entry was +validated, force a revalidation. + +Fix a potential data corruption bug in e2fsck in the journal replay. +The chances of this is happening is extremely remote, especially the +default data=ordered or data=writeback modes. However, if a block +which has been journalled starts with the first four bytes 0xc03b3998, +when e2fsck replays the journal, those four bytes will be replaced +with zero's. Fortunately, it is highly, highly unlikely for e2fsck +metadata to begin with those fatal 4 byte sequence, and unless +data=ordered mode is in use, data blocks are never journaled. + +Updated German, Dutch, Sweedish, and Vietnamese translations. + +Programmer's notes: +------------------- + +Fixed various Debian packaging issues --- see debian/changelog for +details. + +Remove default sizes of types when cross compiling, since autoconf +2.50 can figure this out automatically now. + + +E2fsprogs 1.40.9 (April 27, 2008) +================================= + +SuSE's security team audited uuidd and came up with a few minor +issues. None of them are serious given that uuidd runs setuid as a +unprivileged user which has no special access other than libuuid +directory, but it's good to get them fixed. + +One additional fix in ext2fs_swap_inode_full() needed for resize2fs to +work correctly with in-inode extended attributes. + +Updated German, Czech, Dutch, French, Polish, Sweedish, and Vietnamese +translations. + +Debugfs will avoid using a pager if the standard output is not a tty. + +Fix debugfs and tune2fs to correctly handle daylight savings time when +parsing a time string. + +Fixed spelling mistakes, typos, and otherwise clarified man pages. + +Fix fsck completion bars when multiple filesystems were being checked +in parallel. (Addresses Debian Bug: #432865, Addresses Launchpad Bug: +#203323, Addresses Sourceforge Bug: #1926023) + +Fix fsck so that progress information is sent back correctly when +multiple filesystems are being check and the output of fsck is being +redirected to a file descriptor. Also, include the device name (w/o +spaces) in the progress information sent back via a file descriptor. +(Addresses Launchpad Bug: #203323, Addresses Sourceforge Bug: +#1926023) + +Teach fsck to treat "ext4" and "ext4dev" as ext* filesystems. + +If logsave receives a SIGTERM or SIGINT signal, it will now pass that +signal to its child process. + +Fix mke2fs's creation of are resize inode when there is a non-standard +s_first_data_block setting. + +Fix bug in blkid when run by an unprivileged user; most devices were +not reported correctly. 9Addresses Launchpad Bug: #220275) + +Mke2fs will not allow the logically incorect combination of +resize_inode and meta_bg, which had previously caused mke2fs to create +a corrupt fileystem. + +Fix fsck in German locales so that a 'j' means yes. +(Addresses Sourceforge Bug: #1947683) + + +Programmer's notes: +------------------- + +Fixed various Debian packaging issues --- see debian/changelog for +details. + +Update valgrind options in test_script to work with valgrind 3.2.3 + +Update texinfo.tex to a much newer version from the FSF. + +Remove bashism for configure script and from the lib/ss Makefile. +Addresses Sourceforge Bug: 1921969 + +Fix some silently broken tests: m_no_opt, m_meta_bg, and m_raid_opt. + +Fix build system so that if texinfo is not installed, it won't print a +(harmless) error message. + + +E2fsprogs 1.40.8 (March 13, 2008) +================================= + +Fixed e2image -I so it works on image files which are larger than 2GB. + +Fixed e2fsck's handling of directory inodes with a corrupt size field. If +the size is larger than the number of blocks found in the inode, don't +try to allocate extra empty blocks at the end of the directory to make +up the difference; there's no point to doing that. In addition, if +the size is not a multiple of a blocksize, always fix it. + +E2fsck handled a pass 2 "should never happen error" by not giving +enough information and then core dumping. Unfortunately, it was all +too easy to trigger the "should never happen" situation if a +directory's inode size was not correct. This has been fixed, but +e2fsck has also been taught how to handle this situation more +gracefully, by simply removing the inode hash tree information, so +that it can be rebuilt again after e2fsck's pass 3. (Addresses +Launchpad Bug: #129395) + +Resize2fs had a bug resizing large inodes with extended attributes +that was fixed in 1.40.6; unfortunately, it turned out it wasn't fixed +completely on big-endian systems such as PowerPC. The bug should be +completely fixed now. Yay for regression test suites. (Addresses Red +Hat Bugzilla: #434893) + +Updated German, Czech, Dutch, Polish, Sweedish, and Vietnamese +translations. Many thanks to Philipp Thomas from Novell for stepping +up to become the new German translation maintainer! (Addresses Debian +Bugs: #302512, #370247, #401092, #412882). + +When e2fsck is clearing a corrupt inode's HTREE directory information, +make it clear that it is just clearing the HTREE information, not the +entire inode. + +Fixed spelling mistakes, typos, and otherwise clarified man pages. + +Programmer's notes +------------------ + +Add new functions, ext2fs_dblist_get_last() and +ext2fs_dblist_drop_last(), which allows the caller to examine the last +directory block entry added to the list, and to drop if it necessary. + +Fixed a portability problem in libblkid with DJGPP. + +Fix an obvious typo in an "internal error" message in e2fsck. Thanks +to Philipp Thomas for pointing this out. + +If the info files are not built, change "make install" so it doesn't +fail with an error code. + + +E2fsprogs 1.40.7 (February 28, 2008) +==================================== + +Remove support for clearing the SPARSE_SUPER feature from tune2fs, and +depreciate the -s option, since it can result in filesystems which +e2fsck can't fix easily. There are very good reasons for wanting to +disable sparse_super; users who wants to turn off sparse_super can use +debugfs. (Addresses Sourceforge Bug: #1840286) + +Add missing options to mke2fs's usage message. (Addresses Sourceforge +Bug: #1751393) + +Fix bug in resize2fs when large (greater than 128 byte) inodes are +moved when a filesystem is shrunk; it was only moving the first 128 +bytes, so extended attributes were not getting moved. (Addresses Red +Hat Bugzilla: #434893) + +E2fsck now prints an explicit message when the bad block inode is +updated, to avoid confusion about why the filesystem was modified. +(Addresses Sourceforge Bug: #756460) + +Allow mke2fs and tune2fs manipulate the large_file feature. +Previously we just let the kernel and e2fsck do this automatically, +but e2fsck will no longer automatically clear the large_file feature. +It still isn't really necessary to worry about this feature flag +explicitly, but some users seem to care. (Addresses Red Hat Bugzilla: +#258381) + +Suppress message about an old-style fstab if the fstab file is empty. +(Addresses Debian Bug: #468176) + +Fix (really minor) bug in debugfs's find_free_block so it avoids +reporting a free block more than once if there are too few free blocks +in the filesystem. (Addresses Sourceforge Bug: #1096315) + +Change e2fsck to no longer clear the LARGE_FILES feature flag +automatically, when there are no more > 2GB files in the filesystem. +It's been almost a decade since there have been kernels that don't +support this flag, and e2fsck clears it quietly without telling the +user why the filesystem has been changed. + +Fix bug which could cause libblkid to seg fault if a device mapper +volume disappears while it is being probed. (Addresses RedHat +Bugzilla: #433857) + +Inhance e2fsck's reporting of unsupported filesystem feature flags. +(Addresses Sourceforge Feature Request: #1175808) + +Fix option syntax in dumpe2fs for explicit superblock and blocksize +parameters. What was currently documented in the man page has been +broken for some time, due to getopt() implementation changes. The +option sytax has been changed to one which is can be more portable +supported and which is consistent with the format for extended options +in mke2fs and tune2fs. (Addresses Sourceforge Bug: #1830994) + +Add support to tune2fs to clear the resize_inode feature. This +requires an fsck afterwards. (Addresses Red Hat Bugzilla: #167816) + +Teach blkid to detect LVM2 physical volumes. (Addresses Red Hat +Bugzilla: #409321) + +Add support for setting RAID stride and stripe-width via mke2fs and +tune2fs. Teach dumpe2fs to print the RAID parameters. + +Add support for setting new superblock fields to debugfs's +set_super_value. + +Add support for printing "mostly-printable" extended attributes in +Debugfs. + +Add support for the -M option to fsck, which causes it to ignore +mounted filesystem. + +Fix uuidd so that it creates the pid file with the correct pid number. +(Addresses Sourceforge Bug: #1893244) + +Fix various gcc -Wall warnings. + +Update Czech, Dutch, Polish, Sweedish, and Vietnamese translations + +Fixed spelling mistakes, typos, and otherwise clarified man pages. +(Addresses Sourceforge Patch: #1399325) + + +Programmer's notes: +------------------- + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bug: #466929) + +Add new flag EXT2_FLAG_NONFREE_ON_ERROR ext2fs_open2() which returns a +partially filled-in filesystem object on an error, so that e2fsck can +print more intelligent error messages. + +Add a new function e2p_edit_feature2() which allows the caller to +specify which feature flags are OK to set or clear, and which returns +more specific information about feature flags which are not allowed to +be set/cleared. + +Set the C locale in the test_script driver since it uses [A-Za-z]. +(Addresses Sourceforge Bug: #1890526) + +Use fcntl locking instead of lockf in libuuid since Cygwin doesn't +support lockf(). + +Change configure.in to avoid using the 'dc' command unless it is +absolutely needed. (i.e., when using parsing a WIP-style version +number) (Addresses Sourceforge Bug: #1893024) + +Add portability checks to support compilation under DJGPP. + +Update to the latest samba tdb code before the LGPLv3 change, which +fixes a realloc() leak on failure. + +Fix memory leak in ext2fs_alloc_block(). + +Fix makefile dependency issues for various install targets. +(Addresses-Sourceforge-Patches: #1903484, #1903466, #1903456) + +Improve descriptions for the r_move_itable and r_resize_inode tests. + + +E2fsprogs 1.40.6 (February 9, 2008) +=================================== + +Add support for returning labels for UDF filesystems in the blkid +library. + +Fix bug in the blkid library where cached filesystems was not being +flushed when opening USB devices returned the error ENOMEDIUM. +(Addresses Debian Bug: #463787) + +Added logic to the blkid library to automatically choose whether a +filesystem should be mounted as ext4 or ext4dev, as appropriate. + +Allow tune2fs to set and clear the test_fs flag on ext4 filesystems. + +Fix a bug in e2fsck which caused it to core dump if e2fsprogs had been +configured with --enable-jbd-debug. + +Document the BLKID_FILE environment variable in the libblkid man page + +Programmer's Notes: +------------------- + +Update e2fsprogs translation template and Vietnamese and Czech translations + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bugs: #436058) + +Don't try to create $DESTDIR/etc/init.d as part of make install as we +don't install the init.d script (and it's not the recommended way to +start uuidd anyway). (Addresses Sourceforge Bug: #1885085) + +Use thread local storage to fix a theoretical race condition if two +threads try to format an unknown error code at the same time in the +com_err library. + + +E2fsprogs 1.40.5 (January 27, 2008) +=================================== + +Fix a potential overflow big in e2image if the device name is too +long. + +Mke2fs will now create new filesystems with 256 byte inodes and the +ext_attr feature flag by default. This allows for much better future +compatibity with ext4 and speeds up extended attributes even on ext3 +filesystems. + +Teach e2fsck to ignore certain "safe" filesystem features which are +set automatically by the kernel. Having the kernel set features +automagically behind the user's back is a bad idea, and we should try +to break the kernel of this habit, especially for the newer ext4 +feature flags. But for now, we will try to avoid needless full checks +which can annoy users who are doing fresh installs. + +Add support in tune2fs and mke2fs for making a filesystem as being "ok +to be used with test kernel code". This will be needed for using test +filesystems with the latest ext4 kernel code. + +Change e2fsck -fD so that it sorts non-htree directories by inode +numbers instead of by name, since that optimizes performances much +more significantly. (Addresses-Sourceforge-Feature-Request: #532439) + +If e2image fills the disk, fix it so it exits right away instead of +spewing large numbers of error messages. +(Addresses-Sourceforge-Feature-Request: #606508) + +If ftruncate64() is not available for resize2fs, let it use ftrucate() +instead, but have it check to see if the size would get truncated, and +skip calling ftruncate in that case. + +Add support for detecting HFS+ filesystems in the blkid library. + +Add supprt in the blkid library for ext4/ext4dev filesystems. + +Fix a bug in blkid where it could die on a floating point exception +when presented with a corrupt reiserfs image. + +Fix blkid's handling of ntfs UUID's so that leading zeros are printed +such that UUID string is a fixed length. + +Add sample python bindings for the uuid library to the contrib +directory. (Addresses-Sourceforge-Patches: #778817) + +Fix debugfs's 'lsdel' command so it uses ext2fs_block_iterate2 so it +will work with large files. (Addresses Sourceforge Feature Request: +#1257500 and Sourceforge Support Request: #1253511) + +Allow the debugfs 'undel' command to undelete an inode without linking +it to a specific destination directory, since this might require +allocating blocks that could overwrite some yet-to-be-recovered +deleted files. (Addresses-Sourceforge-Feature-Request: #967141) + +Update Swedish translations from the Translation Project. + +Programmer's Notes: +------------------- + +Fix configure handling of --sbindir (which should rarely be used, but +someone did complain, so let's fix it). (Addresses Sourceforge Bug: +#498381) + +Updated e2fsprogs.spec file to include a new uuidd package + +Use pkg-config to determine where to find the devmapper library so we +can find out where it is located on different distributions. + +Fix Makefile race so that "make -j3 distclean" works correctly + +Fix portability problems on non-Linux/non-Hurd/non-Masix systems, +especially on MacOS X systems. (Addresses Sourceforge Bugs: #1861633, +#1819034, #1863819) + +Fixed spelling mistakes, typos, and otherwise clarified man pages. + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bugs: #459403, #459475, #459614) + +Remove the --enable-dynamic-static configure option, and build e2fsck +dynamically by default. If the user wants e2fsck.static, he/she will +need to build it via "make -C e2fsck e2fsck.static" + +Fix various build warnings due to missing prototypes. +(Addresses Sourceforge Patch: #1861663, #1861659) + + +E2fsprogs 1.40.4 (December 31, 2007) +==================================== + +Improve time-based UUID generation. A new daemon uuidd, is started +automatically by libuuid if necessary. This daemon is setuid to allow +updates to /var/lib/libuuid, so the clock sequence number can be +stored and so if the clock is set backwards, it can be detected. +(Addresses Sourceforge Bug: #1529672, Addresses Red Hat Bugzilla: +#233471) + +Filter out the NEEDS_RECOVERY feature flag when writing out the backup +superblocks. This avoids e2fsck from concluding that a full +filesystem check is required before backing up the superblock due to +changes in the feature flags. (Addresses Debian Bug: #454926) + +Fix fsck to only treat the '#' character as a comment at the beginning +of the line in /etc/fstab. Otherwise fstabs for the fuse filesystem +will cause fsck to issue an bogus warning message. +(Addresses Gentoo bug: #195405, Addresses Sourceforge bug: #1826147) + +Format control characters and characters with the high eighth bit set +when printing the contents of the blkid cache, to prevent filesystems +with garbage labels from sending escape sequences to the user's screen +that might, for example place it in graphics mode. (Addresses Ubuntu +Bug: #78087) + +Fix sign-extension problem on 64-bit systems in in the com_err +library. (Addresses Sourceforge Bug: #1809658) + +Avoid division by zero error when probing an invalid FAT filesystem in +the blkid library. (Addresses Sourceforge Bug: #1831627) + +Update Dutch, Polish, and Vietnamese translations from the Translation +Project. Remove the Rwandan translation upon advice of the +Translation Project. + +Programmer's Notes: +------------------- + +Fix the libss "make check" regression test so that it works if the +current directory is not in the user's path or if the libss shared +library is not installed. (Addresses Sourceforge Bug: #1848974) + +Fixed spelling mistakes, typos, and otherwise clarified man pages. +(Addresses Debian Bugs: #444883, #441872) + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bugs: #437720, #451172, #458017) + +Fix build failure on non-Linux/non-Hurd/non-Masix systems. +(Addresses Sourceforge Bug: #1859778) + +Fix Hurd portability issues. (Addresses Debian Bug: #437720) + + +E2fsprogs 1.40.3 (December 5, 2007) +=================================== + +Fix a potential security vulnerability where an untrusted filesystem +can be corrupted in such a way that a program using libext2fs will +allocate a buffer which is far too small. This can lead to either a +crash or potentially a heap-based buffer overflow crash. No known +exploits exist, but main concern is where an untrusted user who +possesses privileged access in a guest Xen environment could corrupt a +filesystem which is then accessed by the pygrub program, running as +root in the dom0 host environment, thus allowing the untrusted user to +gain privileged access in the host OS. Thanks to the McAfee AVERT +Research group for reporting this issue. (Addresses CVE-2007-5497.) + +Fix hueristics in blkid which could cause a disk without partitions to +be incorrectly skipped when a loopback device is present. (Addresses +Red Hat Bugzilla #400321.) + +Fix e2image so that in raw mode it does not create an image file which +is one byte too large. + +Change mke2fs's usage message so it recommends the preferred -E option +instead of the deprecated -R option. + +Enhance the blkid library so it will recognize squashfs filesystems. +(Addresses Red Hat Bugzilla #305151.) + +Enhance e2fsck so it will force the backup superblocks to be backed up +if the filesystem is consistent and key constants have been changed +(i.e., by an on-line resize) or by e2fsck in the course of its +operations. + +Enhance blkid's detection of FAT filesystems; so that USB disks with +only a single bootable partition will not get missed. + +E2fsck will no longer mark a filesystem as invalid if it has time +errors (i.e., if superblock mount time or last write time is in the +future) and the user refuses to fix the problem. + +The Ubuntu init scripts don't properly set the system time correctly +from hardware clock if the hardware clock is configured to tick local +time instead of GMT time. Work around this as best as we can by +providing an option, buggy_init_scripts, in /etc/e2fsck.conf which can +be set on Ubuntu systems. (Addresses Debian Bug #441093, and Ubuntu +Bug #131201.) + +Fix fsck to ignore /etc/fstab entries for bind mounts. (Addresses Red +Hat Bugzilla #151533.) + +Fix e2fsck so that if the superblock is corrupt, but still looks +vaguely like an ext2/3/4 superblock, that it automatically tries to +fall back to the backup superblock, instead of failing with a hard +error. + +Make the e2fsprogs program more robust so that they will not crash +when opening a corrupt filesystem where s_inode_size is zero. + +Change e2fsck so it uses sscanf() instead of atoi() so it non-numeric +arguments are detected as such and the parse error is reported to the +user. (Addresses Debian Bug #435381.) + +Change e2fsck so it will not complain if a file has blocks reallocated +up to the next multiple of a system's page size. + +Fix bug in ext2fs_check_desc() which will cause e2fsck to complain +about (valid) filesystems where the inode table extends to the last +block of the block group. (Addresses Red Hat Bugzilla #214765.) + +Fix a bug in ext2fs_initialize() which causes mke2fs to fail while +allocating inode tables for some relatively rare odd disk sizes. +(Addresses Red Hat Bugzilla #241767.) + +Add Catalan translation and update Dutch and Swedish translations +from the Translation Project. + +Fix big-endian byte-swapping bug in ext2fs_swap_inode_full(). We +still had an issue when trying to figure out whether we need to +byte-swap fast symlinks that contained extended attributes. + +Fixed spelling mistakes, typos, and otherwise clarified man pages. +(Addresses SourceForge Bug #1821333.) + + +Programmer's Notes: +------------------- + +Fix mke2fs tests to avoid needing any significant ^M (CR) characters + +Add "make check" to the RPM spec file + +Fix "make install" and 'make unstall" in misc/Makefile.in so that it +works correctly when the prefix is not the root directory. + +Fix the resize2fs tests, r_move_itable and r_resize_inode, so they +clena up after themselves by deleting the test.img temporary file +after completing the test. + +Fixed a corner case bug ext2fs_unlink() when trying to delete the +first directory entry in a directory block and the last directory +entry in the previous directory block is not in use. Fortunately +ext2fs_unlink() is only used by debugfs and e2fsck, and in e2fsck in +places where it is extremely unlikely to run into this corner case. + +Fix missing dependency which would cuase parallel builds to fail. +(Addresses Sourceforge Bug #1842331.) + +Fix a build error on newer gcc caused by lib/ext2fs/ismounted.c +calling open(O_CREATE) with a missing mode parameter. + +Fix the test_ss.c in lib/ss so it can be used as an example +application program for the library as well as a regression test +suite. + +Fix ext2fs_dblist_dir_iterate() so that error codes and abort codes +are properly passed back up through the call stack. + +E2fsprogs 1.40.2 (July 12, 2007) +================================ + +A recent change to e2fsck_add_dir_info() to use tdb files to check +filesystems with a very large number of filesystems had a typo which +caused us to resize the wrong data structure. This would cause a +array overrun leading to malloc pointer corruptions and segfaults. +Since we normally can very accurately predict how big the the dirinfo +array needs to be, this bug only got triggered on very badly corrupted +filesystems. + +Fix a bug in e2fsck which caused it to incorrectly salvange +directories when the last entry's rec_len is bogusly too big. This +resulted in a nonsense filesystem corruption to be reported, and +required a second run of e2fsck to fully fix up the directory. + +Update tune2fs man page to include more discussion of reserved blocks +(Addresses Launchpad bug #47817) + +Update Turkish, Polish, Dutch, and Vietnamese PO files from the +Translation Project + + +E2fsprogs 1.40.1 (July 7, 2007) +=============================== + +Fix bug which could cause libblkid to loop forever. When revalidating +a partition where there is obsolete information in /etc/blkid.tab, we +end up freeing a the type tag without clearing dev->bid_type, causing +blkid_verify() to loop forever. (Addresses Debian Bug: #432052) + +The Turkish translation has a bug in it where it has the translation +of "E@e '%Dn' in %p (%i)" to "E@E". This causes @E to be expanded at +@E, recursively, forever, until the stack fills up and e2fsck core +dumps. We fix this by making e2fsck stop @-expansions after a +recursive depth of 10, which is far more than we need. +(Addresses Sourceforge Bug: #1646081) + +Compile the default mke2fs.conf into mke2fs program. People are +getting surprised by mke2fs creating filesystems with different +defaults than earlier versions of mke2fs if mke2fs.conf is not +present. So we now create a built in version of mke2fs.conf file +which is used by mke2fs if the /etc/mke2fs.conf is not present. +(Addresses SourceforgeBug: #1745818) + +Improve the config/parse_types.sh helper script. Fix a potential +security problem if e2fsprogs is built as root (as Gentoo does!). In +addition fix the script and how it is called from the configure script +so that it does the right thing when cross-compiling. (Fixes Gentoo +bug: #146903) + +Update Vietnamese, French, and Dutch PO files from the Translation +Project. Also created a new e2fsprogs.pot file for translator. + +Fix bogus strip permission errors when building under Debian. When +building the e2fsprogs dpkg's, the dh_strip command emits a large +number of error messages caused by the permissions not being right. +So run dh_fixperms before running dh_strip. + +Programmer's Notes: +------------------- + +Add new function: profile_set_default(). This function sets the value +of the pseudo file "". If the file "" had +previously been passed to profile_init(), then def_string parameter +will be parsed and used as the profile information for the "" +file. + +Fix mk_cmds's error reporting so that it is unambiguous that it is the +mk_cmds script which is generating the error. (Obviates Gentoo patch: +e2fsprogs-1.32-mk_cmds-cosmetic.patch) + +Fix the test suite to use LC_ALL instead of LANG. LC_ALL is the "high +priority" environment variable that overrides all others, where as +LANG is the lowest priorty environment variable. If LC_ALL is set, it +doesn't matter whether LANG, LANGUAGE, LC_COLLATE, LC_MESSAGES, and +the all the rest are set. This will assure that the locale when +running the test suites is the "C" locale. (Obviates Gentoo patch: +e2fsprogs-1.38-tests-locale.patch) + + +E2fsprogs 1.40 (June 29, 2007) +============================== + +Fix divide by zero error in blkid's NTFS probing logic. + +Add new blkid -g option which causes the blkid cache to be garbage +collected. + +Fix a bug in libblkid which could cause the internal field bid_type to +become corrupted. Fortunately bid_type isn't used much, and bid_label +and bid_uuid is only used by debugging code, so the impact of this bug +was very minor. + +Mke2fs will now store the RAID stride value when a filesystem is +created with a requested RAID stride, and then use it automatically in +resize2fs. + +Mke2fs has a sanity check added to make sure (inode_size * num_inodes) +isn't too big. In some cases Lustre users have tried specifying an +inode size of 4096 bytes, while keeping an inode ratio of one inode +per 4096 bytes. + +Improve sanity check in e2fsck's algorithm for finding a backup +superblock, so that it won't accidentally find a superblock that was +located in the journal, and then later reject it as being not a valid +backup superblock. + +Fix e2fsck get_size logic so that it will work with the Linux floppy +driver. The Linux floppy driver is a bit different from the other +block device drivers, in that if the device has been opened with +O_EXCL, it disallows another open(), even if the second open() does +not have the O_EXCL flag. (Addresses Debian Bug: #410569) + +Fix error checking of badblock's last-block and start-block arguments. +(Addresses Debian Bug: #416477) + +Fix e2fsck so that it doesn't overwrite the backup superblocks when +recovering a journal until the master superblock has been confirmed as +being sane. + +Change the blkid library to be much more paranoid about concluding +that a partition contains an NTFS filesystem, and fetch the UUID and +LABEL information from NTFS filesystems. (Addresses Launchpad Bug: +#110138) + +Factor out the code which sets the default journal size and move it +into libext2fs. + +Enhance e2fsck so it will recreate the ext3 journal if the original +journal inode was cleared to due it being corrupt after finishing the +filesystem check. + +Fix e2fsck so that it updates the journal inode if it is corrupted and +the backup journal information from the superblock was successfully +used to recover the filesystem. + +Fix e2fsck so that it checks all of the blocks in the journal inode +for validity. The original code only checked the direct blocks to +make sure the journal inode was sane. Unfortunately, if some or all +of the indirect or doubly indirect blocks were corrupted, this would +not be caught. + +Add support in blkid to detect LUKS encrypted partitions. + +Add extra sanity checks for extended attributes in the case where the +size is zero but the offset is very large. + +Fix byte-swapping issues for large inodes in ext2fs_read_inode_full() +and ext2fs_get_next_inode_full(). + +Clarify the copyright licenses used by the various libraries in +the top-level COPYING file (Red Hat Bugzilla: 166058) + +Make mke2fs's defaults when /etc/mke2fs.conf doesn't exist more sane. + +Fix mke2fs and debugfs to support large (> 16 bit) uid's and gid's. + +Remove check in e2fsck which requires EA's in inodes to be sorted; +they don't need to be sorted, and e2fsck was previously wrongly +clearing unsorted EA's stored in the inode structure. + +Allow mke2fs or tune2fs to create a substantially larger journal (up +to 10,240,000 blocks). + +Fix MD superblock detection, and make sure the correct UUID is +reported from the MD superblock. + +Fix a signed vs. unsigned bug in debugfs. + +Enhance debugfs's date parser so that it accepts integer values. + +Fix e2fsck's pass1c accounting so it doesn't terminate too early if a +file with multiply claimed blocks is hard linked. or not at all if the +root directory contains shared blocks + +Enhance debugfs so it can modify the block group descriptors using the +command set_block_group_descriptor. + +Improve e2fsck's reporting of I/O errors so it's clearer what it was +trying to do when an error happens + +Fix a bug in in how e2fsprogs byte swaps inodes containing fast +symlinks that have extended attributes. (Addresses Red Hat Bugzilla: +#232663 and LTC Bugzilla: #27634) + +Fix potential file descriptor leak in ext2fs_get_device_size() in an +error case. + +Add libreadline.so.5 support to libss. + +Impove badblocks -n/-w exclusive usage message. + +Fix dump_unused segfault in debugfs when a filesystem is not open + +Fix memory leak in blkid library. (Addresses Debian Bug: #413661) + +Allow the debugfs lcd command to work w/o a filesystem being open. +(Addresses LTC Bugzilla #27513) + +Fix e2fsck to clear i_size for special devices with a bogus i_blocks +field on the first pass. + +Fix e2fsck to set the file type of the '..' entry when connecting +a directory to lost+found. (Addresses Lustre Bug: #11645) + +Enhance e2fsck to recover directories whose modes field were corrupted +to look like special files. This is probably only useful in +artificial test cases, but it will be useful if we ever do the "inodes +in directory" idea for ext4. + +Allow debugfs to dump (and rdump) > 2GB files. (Addresses Debian Bug: +#412614) + +Fix resize2fs parsing of size parameter (in sector units). This was +actually a bug in libe2p's parse_num_blocks() function. When handling +the 's' suffix, it was ignoring the blocksize information passed in +from the caller and always interpreting the number in terms of a 1k +blocksize. (Addresses Debian Bug: #408298) + +There was a floating point precision error which could cause e2fsck to +loop forever on really big filesystems with a large inode count. +(Addresses Debian Bug: #411838) + +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 +library. See the [scratch_files] section of the e2fsck.conf man page +for more details. + +Fixed type-punning bug which caused dumpe2fs to crash on the Arm +platform (Addresses Debian Bug: #397044) + +Add explanatory message to badblocks that -n and -w are mutually exclusive +(Addresses Debian Bug: #371869) + +Allow debugfs and dumpe2fs to support fs features under development. + +Add support for the new flag EXT2_FLAG_SOFTSUPP_FEATURES flag to +ext2fs_open() , which allows application to open filesystes with features +which are currently only partially supported by e2fsprogs. + +Allow unix_io to support offsets greater than 2G (Addresses +SourceForge Bug: #1547922) + +Fixed overflow and signed/unsigned problems caused by the number of +blocks or inodes exceeding 2**31 or being close to 2**32-1. + +Add support for unsigned directory hash calculations with hints in the +superblock to fix cross-architectural portability for htree +directories with filenames where the high 8th bit is set. (Addresses +Debian: #389772) + +Fix resize2fs so that it gives user-intelligible error messages if the +filesystem or the kernel does not support on-line resizing. +(Addresses Debian Bug: #380548) + +Require mke2fs -F -F for really dangerous operations, since -F is +needed for less dangerous operations such as creating filesystems +images in regular files, or creating filesystems on whole block +devices. These relatively innocuous usages should NOT be confused +with running mke2fs on an apparently-mounted or in-use filesystem. + +Allow the default inode size to be specified into the mke2fs.conf +file. + +Make the smallest default journal size is big enough so that on-line +resizing should always work. + +Fix silly spelling error in e2fsck. (Addresses SourceForge bug: +#1531372) + +Fix debugfs coredump when lsdel is run without an open filesystem +(Addresses Debian Bug: #378335) + +Fix debugfs display bug us that bytes that have the high bit set are +displayed as "ec" instead of "ffffffec". + +Add support in lsattr so it will display the EXT4_EXTENTS_FL flag. + +Device mapper scanning wasn't working in the blkid library because the +pathnames had an extra "/dev" when they were being probed. + +Add GFS/GFS2 support to the blkid library. + +Fix blkid support of empty FAT filesystem labels. + +Avoid recursing forever (or for a long time) when the blkid library +searches for a device and there are symlinks to directories in /dev. + +Avoid unaligned halfword access in blkid when accessing FAT +superblocks, as this will cause Sparc/Solaris systems to throw a +SIGBUS error. + +The latest devmapper libraries requires pthreads, add -lpthreads to +the static link libraries for e2fsck.static if devmapper is enabled. +(Addresses Debian bug: #388718) + +Improve the (non-installed, for experts only) findsuper program by +printing the uuid and label from the superblocks, as well as the +starting and ending offsets of the filesystem given the information in +the superblock. Omit by default printing superblocks that are likely +found in located in an ext3 journal unless an explicit -j option is +given. + +Updated Spanish, French and Dutch translations and added Catalan +translation. (Addresses Debian bug: #411562) + +Use FreeBSD's DIOCGMEDIASIZE and DIOCGDINFO ioctls if available when +determining a partition's size, since binary searching to determine +the device doesn't work on FreeBSD. + +Documentation about UUID's is available in enough places, and it's +awkward to deal with debian-legal's insanities. So I'm caving in the +"more-lunatic-than-RMS" wing of Debian by removing RFC-4122 so we +don't have do the dfsg tarball. Also remove the rule that only tried +to install RFC-4122 on Ubuntu, since Ubuntu seems to want to fetch +e2fsprogs exclusively from Debian. (Addresses Debian Bug: #407107) + +Fix the info-dir line so that the menu name does not contain a .info +prefix. First of all, it's ugly, secondly, it causes the install-info +command to fail to remove the com_err info file from the +/usr/share/info/dir file when the comerr-dev package is removed and +purged. (Addresses Debian Bug: #401711) + +Fixed spelling mistakes, typos, and otherwise clarified man pages. +(Addresses Debian Bug: #369761, #373004, #379695) + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bugs #389554, #390664, #413208, #419605, +#408352, #415560, #399155) + + +Programmer's notes: +------------------- + +E2fsck now supports the %It expansion when printing a problem report. +It will print the type of the inode in the problem context. + +Fix misc/Makefile.in so that it builds even if e2fsck hasn't been built yet +(Addresses Sourceforge Bug: #1565561) + +Remove unused variables and other lint/gcc -Wall cleanups + +Add check to ext2fs_get_device_size() so it will return EFBIG for for +filesystems contained in regular files where the filesystem image size +is returned by stat64(). + +Set local environment variables to C so mk_cmds and compile_et always +work. (Addresses SourceForge Bug: #1532177) + +Added the 64-bit byte swapping function ext2fs_swab64(). + +Added two new helper functions to prevent 2**31/2**32-1 overflow +problems: ext2fs_div_ceil() and e2p_percent(). + +Create new ext2fs library inline functions ext2fs_group_first_block() +and ext2fs_group_last_block() in order to calculate the starting and +ending blocks in a block group. + +Create the generated files read-only to remind developers not to edit them. + +Add support for autoconf 2.60 (with backwards compatibility for older +versions of autoconf). + +Added an "make rpm" target to top-level Makefile + +Added various FreeBSD portability fixes. + +Exclude mercurial files from the RPM build tree to speed up copy/build. + +Use root_sysconfdir to define the locations of mke2fs.conf and +e2fsck.conf instead of using a hard-coded /etc pathname. + +Prevent e2fsck.h and ext2_ext_attr.h from getting included multiple times. + +Fixed "make clean" in blkid's Makefile.in file from removing tst_*.c files. + +If diff -u is supported, use it to report test failures. + +Updates/improvements to RPM spec file + +Add on-disk format definitions for the following new features: +EXT4_FEATURE_RO_COMPAT_HUGE_FILE, EXT4_FEATURE_RO_COMPAT_GDT_CSUM, +EXT4_FEATURE_RO_COMPAT_DIR_NLINK, EXT4_FEATURE_INCOMPAT_64BIT, +EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE + +Add a new make target "checked-failed" in the tests directory which +reruns any failed tests + +Update draft-leach-uuids-guids-01.txt with rfc4122.txt + +Fix miscellaneous bugs reported by Coverity: Dead code, potential nul +pointer dereferences, memory leaks, etc. None were security-criticial +problems. + +Fix up usage and decrement error messages in the test_icount program + +Add debugging code to the com_err library; if the environment variable +COMERR_DEBUG is set to 1, print out debugging messages as error tables +are added and removed from the com_err library. If the +COMERR_DEBUG_FILE environment variable is set (and the process is not +setuid) the debugging messages may be redirected to a file. + +Change all of the e2fsprogs programs to use the newer add_error_table() +and remove_error_table() interfaces instead of the much older +initialize_*_error_table() function. + +Add TDB support into the ext2fs library. This allows us to have a +guaranteed library we can count on always being present so we can +store data in an on-disk database. + +Add support for using TDB to store the icount data, so we don't run out +of memory when checking really large filesystems. + +Change the regression test suite so that it skips empty test directories. + +Define the l_i_iversion field in ext2_inode. The l_i_version field is +now defined from the old l_i_reserved1 field in the ext2 inode. This +field will be used to store high 32 bits of the 64-bit inode version +number. + +Add Makefile production rule for e2fsprogs.spec in case it gets +deleted. + +Add new function profile_get_uint() to allow for a clean way to fetch +unsigned integers from the context. + +Add test to make sure the ext2 superblock structure is 1024 bytes. + +Fix typo in name of f_dup4 regression test + +Add new function blkid_gc_cache() which performs a garbage collection +pass on the /etc/blkid.tab file. + +The ext2fs_open() function now sets EXT2_FLAG_MASTER_SB_ONLY. In +general, only e2fsck (after the filesystem is clean), tune2fs, and +resize2fs should change the backup superblocks by default. Most +callers of ext2fs_open() should not be touching any superblock fields +which require the backups to be touched. + +Add new function to libext2fs, ext2fs_default_journal_size(), which +returns the default journal size. + + +E2fsprogs 1.39 (May 29, 2006) +============================= + +Fix 32-bit cleanliness in e2fsprogs so that we can support filesystems +between 2**31 and 2**32 blocks. + +Change mke2fs to use /etc/mke2fs.conf as a configuration file to +configure the filesystem features, blocksize, and inode_ratio for +different filesystem types. + +Mke2fs will now create filesystems hash trees and on-line resizing +enabled by default, based on the new /etc/mke2fs.conf file. + +The e2fsprogs tools (resize2fs, e2fsck, mke2fs) will open the +filesystem device node in exclusive mode to prevent accidents by +system administrators. In the case of resize2fs and mke2fs, it will +only use exclusive mode if the filesystem is not mounted. + +Fixed a bug in mke2fs which caused it to to fail when creating the +resize inode for large filesystems. (Addresses Debian Bug #346580) + +When allocating space for the RAID filesystems with the stride +parameter, mke2fs will now place each portion of the group's inode +table right up after the superblock (if present) in order to minimize +fragmentation of the freespace. + +Speed up mke2fs and e2fsck by writing inode and block bitmaps more +efficiently by writing the inode and block bitmaps in one pass, thus +reducing the number of disk seeks required. + +Add support for on-line resizing to resize2fs. + +Fix blkid library so that logic to determine whether or not a device's +cached information in /etc/blkid.tab needs to be verified or not +doesn't get confused by a system clock which is insane (for example, +if the battery is dead on a Macintosh running PPC Linux. (Addresses +Red Hat Bug: #182188) + +The blkid library will now store the UUID of the external journal used +by ext3 filesystems, so that in the future, the userspace mount binary +can use this to find the location of the external journal and pass +this information to the kernel. + +E2fsck will now consult a configuration file, /etc/e2fsck.conf to +control how various options should be handled. See the e2fsck.conf +man page for more details. (Addresses Debian Bug: #150295) + +E2fsck now prints an explanatory message when delaying a filesystem +check when the system is running on battery. (Addresses Debian Bug: +#350306) + +E2fsck will detect if the superblock's last mount field or last write +field is in the future, and offer to fix if so. (Addresses Debian Bug +#327580) These problems will be fixed automatically in preen mode +since Debian's boot sequence bogusly doesn't set the time correctly +until potentially very late in the bootup process, and this can cause +false positives which will cause users' systems to fail to boot. +(Addresses Debian Bugs #343662 and #343645) + +E2fsck now checks to see if the superblock hint for the location of +the external journal is incorrect, and if so, offer to update it. +(Addresses Debian Bug: #355644) + +Fix e2fsck from segfaulting on disconnected inodes that contain one or +more extended attributes. (Addresses Debian Bug: #316736, #318463) + +E2fsck will stop and print a warning if the user tries running a +read/write badblocks test on a read-only mounted root filesystem. + +Fix a memory leak in e2fsck's error paths. (Thanks to Michael +C. Thompson for pointing these out; they were originally found using +Coverity.) + +When resizing a file containing a filesystem, resize2fs will expand or +truncate a file as necessary. (Addresses Debian Bug: #271607) + +Resize2fs will now automatically determine the RAID stride parameter that +had been used to create the filesystem, and use that for newly created +block groups. The RAID stride parameter may also be manually specified +on the command line using the new -S option to resize2fs. + +Fix mke2fs so that it correctly creates external journals on +big-endian machines (such as a S/390). + +Fix a bug in the e2p library which could cause dumpe2fs to (rarely) +fail to print out the journal or hash seed UUID. (Thanks to Guillaume +Chambraud for pointing this out.) + +Dumpe2fs will now print the size of the journal (if present). + +Fix debugfs's set_inode_field command so it can properly set the frag, +fsize, uid_high, gid_high, and author fields in the inode instead of +silently failing, and so that setting the i_size actually sets i_size +correctly. + +Add a new debugfs command, set_current_time, which sets fs->now so +that regression test suites can repeatedly modify the filesystem's +last_write fields. + +Fix a bug in debugfs's icheck which would incorrectly report the owner +of an extended attribute block. + +Fix the debugfs commands htree_dump, dx_hash, and list_dir so they print a +print a usage message when an illegal option character is given. + +Fix debugfs's dump_unsued command on filesystems with a 64k blocksize +so it won't core dump. (Addresses SourceForge bug #1424311) + +Fix mklost+found so that it creates a full-sized directory on +filesystems with larger block sizes. + +Fix a file descriptor leak in blkid library. + +Fix a display bug in "badblocks -sv" so that the done message properly +clears the block number at the end of the test. (Addresses Debian Bug +#322231) + +Allow fractional percentages to the -m option in mke2fs and tune2fs +(Addresses Debian Bug: #80205) + +Use fstat/fstat64 in getsize.c if the the target is a regular file, +instead of attempting to do a binary search. Fix some fd leaks in +error cases. + +Add support for device mapper library to the blkid library to ensure +that the "best" (i.e., leaf) device is probed by the blkid library. + +Fix the blkid library so that it notices when an ext2 filesystem is +upgraded to ext3. + +Improve the blkid's library VFAT/FAT detection; it now understands +labels stored in the root directory, and is more paranoid about +checking the FAT superblock values. + +Fixed a fd leak in the uuid library which was causing problems for the +LVM tools. (Addresses Debian Bug: #345832) + +Add support for the reiser4 and software suspend partitions to the +blkid library. Also add support for extract the label from iso9660 +filesystems. + +Fix a compile_et bug which miscount the number of error messages if +continuations are used in the .et file. + +Add extra sanity checks to protect users from unusual cirucmstances +where /etc/mtab may not be sane, by checking to see if the device is +reported busy (works on Linux 2.6) kernels. (Addresses Debian Bug +#319002) + +Updated French, Dutch, Polish, and Swedish translations. (Addresses Debian +Bug: #343149, #341911, #300871, #316604, #316782, #330789) + +Fix use-after-free bug in e2fsck when finishing up the use of the +e2fsck context structure. + +Fixed spelling mistakes, typos, and otherwise clarified man pages and +documentation. (Addresses Debian Bugs: #329859, #322188, #316811, +#312515, #351268, #357951, #347295, #316040, #368392, #368393, #368394, +#368179) + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bugs #317862, #320389, #290429, #310950, +#310428, #330737, #330736, #329074, #356293, #360046, #366017, #364516, +#362544, #362970) + + +Programmer's notes: +------------------- + +Update config.guess and config.sub to latest version (2006-02-23) from +FSF. + +Fix asm_types.h type conflicts on AMD 64 platforms. (Addresses Debian +Bugs: #360661, #360317) + +Fixed the Makefile so that they work correctly on newer versions of +GNU make (i.e., 3.81). + +Add valgrind support to the regression test suites, and eliminate +false positives from valgrind. + +Add a regression test suite for the blkid library. + +Fix a fencepost error in resize2fs caught by valgrind. + +Fix compiler warnings about missing memcpy prototypes. + +We no longer have the sparc assembly code in the header file any more, +so we shouldn't set _EXT2_HAVE_HAS_BITOPS_ for the sparc. This would +break compiles on the sparc architectures when using gcc. + +In the libext2fs library, add the new field fs->now which if non-zero +is used instead of the system time when setting various filesystem +fields (last modified time, last write time, etc.) + +Fix gcc 4.01 complaints by adding a missing #include to +ext2fs.h which is needed since the inline functions use memcpy(). +(Addresses Sourceforge Bug #1251062) + +Use BUILD_CFLAGS and BUILD_LDFLAGS instead of CFLAGS and LDFLAGS in +the build system when building files in the util directory which are +needed during the build process. This avoids potential problems when +cross-compiling and some of the options specified in CFLAGS or LDFLAGS +are not recognized as valid by the host compiler. (Addresses +Sourceforge Bug #1261547) + +Clean up the blkid library by making the superblock and generic i/o +functions to be more generic. Clean up interface to the probe +function, and fix memory leak. Finallly, remove an unneeded reference +to probe.h in the lib/blkid/resolve.c + +Add an ext2fs_read_bb_FILE regression test to confirm proper detection +of invalid block #'s. + +The x86 asm constraints for ext2fs_{set/clear}_bit have been fixed to +indicate that the the function read/writes the memory location. + +Fix various gcc -Wall complaints. + +Add a dependency to make sure that the subdirectories are created +before creating all of the object files, in order to address parallel +build problem in the library Makefiles. (Addresses Sourceforge Bug: +#1261553) + +Add $(LDFLAGS) to the command line argument when generating an ELF or +Solaris shared library, to allow cross-compile and other builds that +might need to specify -L paths to needed libraries. (Addresses +Sourceforge Bug #1261549) + +Add a new feature, EXT2_FEATURE_COMPAT_LAZY_BG, which is initially +intended for testing purposes. It allows an ext2/ext3 developer to +create very large filesystems using sparse files where most of the +block groups are not initialized and so do not require much disk +space. Eventually it could be used as a way of speeding up mke2fs and +e2fsck for large filesystem, but that would be best done by adding an +RO_COMPAT extension to the filesystem to allow the inode table to be +lazily initialized on a per-block basis, instead of being entirely +initialized or entirely unused on a per-blockgroup basis. + +Fix backwards compatibility so e2fsprogs will better compile on Linux +2.0.35 systems. + +Make test scripts more robust against locale-related environment variables + +Fix type warning problem with sizeof() in ext2fs_open2(). + +Fix type warning problem with time_t in debugfs. + + +E2fsprogs 1.38 (June 30, 2005) +============================== + +Fix blkid's test programs (built with "make check") compile correctly +even without "configure --enable-blkid-debug". + +Fix ia64 core dump bug caused by e2fsprogs running afoul of C99 strict +type aliasing rules on newer gcc compilers. (Addresses Red Hat +Bugzilla ##161183.) + +Fix com_err library to make it more compatible with recent changes +made to the com_err library in MIT Kerberos V5 version 1.4. +(Addresses Sourcefroge Bug #1150146) + +General cleanup of messages printed by e2fsprogs programs for grammar, +consistency, and to make life easier for translators. Fixed a few +strings containing English that had not been marked as needing +translations. Removed strings that do not need to be translated, to +make life easier for translators. + +Mke2fs and badblocks will take advantage of a feature in Linux 2.6 to +test to see if a device appears to be in use instead of just relying +on /proc/mounts and /etc/mtab. (Addresses Debian Bug #308594). + +Fix portability problem in the filefrag program affecting platforms +where the size of an integer is smaller than the size of a long. +(Addresses Debian Bug #309655) + +Mke2fs will now use a larger journal by default for filesystems +greater than 4GB. (128 MB instead of 32MB). + +Mke2fs will refuse to create filesystems greater than 2**31-1 blocks, +unless forced. This is to avoid signed vs. unsigned kernel bugs in +block numbers that still need to be fixed. + +The blkid program has a new option which will more efficiently search +for device when it is known (or expected) that only one matching +device will be found in the system, such as when doing a lookup by +UUID. + +Debian's e2fsprogs-specific initrd fragment will avoid including +unnecessary libraries into the initrd ramdisk by unsetting LD_PRELOAD +and LD_LIBRARY_PATH, and filtering out libraries found in +/etc/ld.so.preload. (Addresses Debian Bug: #304003) + +Fixed a potential portability issue in the blkid programs for +architectures where the char type is unsigned. (Addresses Sourceforge +Bug: #1180585) + +Fix a bug in filefrag so that it doesn't falsely count an extra +discontinuity when the first block found is an indirect block. +(Addresses Debian Bug #307607). + +Fix blkid's recognition of cramfs filesystems, and enhance it to be +able to handle cramfs labels. + +Fix debugfs's stat command to not core dump when a filesystem is not +open. + +Fix e2fsck's handling of error conditions caused by the resize inode +claiming blocks that are also used by other inodes, a filesystem +corruption which was commonly caused by a bug in Fedora Core 3's +resize2fs program. + +Fixed bug in filefrag which caused it to fail on non-ext2/3 +filesystems. (Addresses Debian Bug: #303509) + +If the superblock last mount time indicates that the system clock may +not be accurate, then e2fsck will omit checking inodes' deletion time +field for indications of a potential corrupted orphaned inode list. +(Previously e2fsck only ommited these LOW_DTIME checks when the +superblock's last write time looked insane.) + +Fixed a IA64 core dump bug in the e2p library which affected dumpe2fs. +(Addresses Debian bug #302200) + +Make the blkid library more paranoid about being run from setgid +programs, and to use __secure_getenv() from libc if it is available. + +Fixed spelling mistakes, typos, and otherwise clarified man pages. +(Addresses Debian Bugs: #304591, #304592, #304594, #304597, #304593 +and Sourceforge Bug: #1189803) + +Updated and fixed translations. + +Fixed various Debian packaging issues --- see debian/changelog for +details. + +Programmer's notes: +------------------- + +Ext2fs_set_bit(), ext2fs_clear_bit(), and ext2fs_test_bit( have been +changed to take an unsigned int for the bit number. Negative bit +numbers were never allowed (and didn't make any sense), so this should +be a safe change. This is needed to allow safe use of block numbers +greater than or equal to 2**31. + +The compile_et program will avoid recreating generated foo_err.c and +foo_err.h files if no changes are necessary. The compile_et program +will also atomically replace these files to avoid a potential parallel +build race problem on SMP systems. (Addresses Sourceforge Bug: +#1157933) + +Added a new function to the blkid library, blkid_probe_all_new(), +which only probes newly added disk devices, and change +blkid_find_dev_with_tag() to use this function so that when a +requested tag is not found, devices that were previously not checked +are searched before searching all devices in the system. + +Added new functions to the blkid library, blkid_dev_set_search() and +blkid_dev_has_tag(). + +E2fsck's problem strings can now use @m and @n as abbrevations for +"multiply-claimed" and "invalid", respectively. + +The e2fsprog.pot file now has an explanation of how the @-expansion +and %-expansion works, and strings in e2fsck/problem.c which contain @ +characters now have comments in e2fsprogs.pot with the @-expansion to +make life easier for translators. + +Fixed missing return values in the ext2fs library which could cause it +to return random garbage in certain error conditions. + +Allow the current time to be overriden via the E2FSCK_TIME environment +variable for use in regression tests. + +The test scrpit driver program now exits with a non-zero status if +there any of its test that it ran failed. + +Fixed problems with parabuilds on SMP systems. (Addresses Sourceforge +Bug: #1157933) + +Fixed "make check" so that it compiles correctly even when e2fsprogs' +header files have not be installed in the system include directories. +(Addresses Sourceforge Bug: #1180572) + +Fixed gcc -Wall nits. + + +E2fsprogs 1.37 (March 21, 2005) +=============================== + +Add support for checking the validity of Extended Attributes stored in +inodes to e2fsck. + +Add support for dumping the contents of large inodes to debugfs, +including the extended attributes stored in inodes. + +Fix mke2fs, e2fsck, debugfs, and the ext2fs_mkdir function so that +when we create a new inode we make sure that the extra information in +the inode (any extra fields in a large inode and any ea-in-inode +information) is initialized correctly. This can take place when +mke2fs creates the root and lost+found directory, when e2fsck creates +a new root inode or a new lost+found directory, and when the user uses +the debugfs write, mknod, or mkdir commands. Otherwise, the newly +create inode could inherit garbage (or old EA information) from a +previously deleted inode. + +Fixed a bug in e2fsck so it would notice if a file with an extended +attribute block was exactly 2**32 blocks, such that i_blocks wrapped +to zero. + +Added support to filefrag to detect files which are using the new +experimental file extents format, and use the non-ext2 algorithm in +that case. Fixed a bug to avoid reporting a false discontinuity if +there is one or more unallocated blocks at the beginning of a file. + +Duplicated a check for noticing whether or not the number of blocks +(given a certain blocksize) is greater than 2**32 when the +BLKGETSIZE64 ioctl is not available to ext2fs_get_device_size(). This +allows mke2fs to automatically use a larger blocksize when creating a +filesystem on a very large device when run on systems that do not +support BLKGETSIZE64. + +Fix the I18N build which was broken in e2fsprogs 1.36 because the +build system had been switched to treat the .gmo files as shipped +files (for backwards compatibility with systems that have older GNU +I18N tools installed), but the gen_tarball.in script was still +removing the .gmo files from the official source distribution. + +Fixed various Debian packaging issues --- see debian/changelog for +details. (Addresses Debian Bugs ##296769, #299341) + +Programmer's notes: +------------------- + +Added new functions to the e2p library which convert between a string +and os_type: e2p_os2string() and e2p_string2os(), and used them to +make the generated binaries more compact. + +Fixed a compile-time error on Darwin systems. + +Cleaned up the lib/ext2fs Makefile slightly. + + +E2fsprogs 1.36 (February 4, 2005) +================================= + +All of the patches that were applied to Fedore Core 3's +e2fsprogs-1.35-11.2 have been integrated, although sometimes with a +lot of bug fixes first. Users of Fedora Core 3 are strongly +encouraged to upgrade to e2fsprogs 1.36 as soon as possible. + +Add support for filesystem with the online resizing via resize inode +feature. Fixed numerous bugs from the Fedora patches. The Fedora +patches also didn't bother to do any consistency checking on the +resize inode, or add any tests to the regression test suite. The "-R +resize=4g" option to mke2fs was a no-op in the Fedora patches, despite +being listed in mke2fs's usage message. All of these shortcomings +have been corrected. + +E2fsck can also also fix filesystems trashed by Fedora's resize2fs +program. In order to do this, the user must run the commands: + + debugfs -w /dev/hdXXX -R "features ^resize_inode" + e2fsck -f /dev/hdXXX + +Optionally, the ext2prepare command can be used to re-enable online +resizing after the filesystem has been fixed. + +The fsck program will now accept an optional filedescriptor argument +to the -C option. (The Fedora version of this patch would sometimes +cause fsck to ignore a parameter on fsck's command line in some rare +cases, sigh.) + +Make sure e2fsprogs doesn't write garbage into the reserved portion of +large inodes. + +Make sure resize2fs releases the blocks belonging to the old inode +table blocks when moving the inode table. (Addresses Debian Bug: +#290894) + +Skip the r_resize_inode test if resize2fs is not compiled (due to +configure --disable-resizer) + +E2fsck now checks the summary filesystem accounting information, and +if any of the information is obviously wrong, it will force a full +filesystem check. (Addresses Debian Bug #291571) + +Fix e2fsck to not complain when the resize_inode feature is enabled, +s_reserved_gdt_blocks is zero, and there is no DIND block allocated in +the resize inode. + +Fix e2fsck to note delete symlinks that contain an extended attribute +after the ext_attr feature flag has been cleared. (Addresses Red Hat +Bugzilla #146284). + +Add new utility program, copy_sparse.c, which is very useful +for dealing with large sparse files (such as e2image files). + +Add support for jnl_blocks[] for debugfs's set_super_value. + +Fix filefrag so that it works correctly with sparse files. + +Filefrag -v will print first and last blocks. + +Add interpretation of OS Creator values for FreeBSD and Lites in mke2fs +and dumpe2fs. + +Add mke2fs support so that it can support filesystems larger than 4TB +automatically, by retrying with a 4k blocksize if the device size is +too big to be expressed using a 1k blocksize. (Addresses Sourceforge +bug #1106631) + +Change blkid to test for NTFS first because Windows sometimes doesn't +clear enough of the parition to confuse the probing routines into +thinking the old filesystem type is still valid. (Addresses Debian +Bug #291990) + +Add support for swap partition label and uuid's in the blkid library. + +Add support to the blkid library to recognize Oracle ASM volumes. + +Make blkid -t display all devices that match the specified criteria, +not just the first one, and work more consistently when the blkid +cache file is not available or set to /dev/null. (Addresses Debian +Bug #290530 and #292425) + +Badblocks will now correctly display block numbers greater than +999,999,999 in its progress display. + +The tune2fs program will not allow the user from setting a ridiculous +number of reserved blocks which would cause e2fsck to assume the +superblock was corrupt. E2fsck's standards for what is a ridiculous +number of reserved block has also been relaxed to 50% of the blocks in +the filesystem. + +The blkid library will return vfat in preference to msdos, and ext3 in +preference to ext2 (if the journalling flag is set) so that mount will +do the right thing. (Addresses Debian bug #287455) + +Mke2fs will now use the -E option for extended options; the old -R +(raid options) option is still accepted for backwards compatibility. +Fix a double-free problem in resize2fs. (Red Hat Bugzilla #132707) + +Mke2fs will now accept a size in megabytes, gigabytes, and other units +(via "32m" or "4g" on the command line) if the user finds this more +convenient than specifying a block count. + +Fix an obscure, hard-to find bug in "e2fsck -S" caused by an inode +cache conherency problem. + +Debugfs now supports a new command, set_inode_field, which allows a +user to manually set a specific inode field more conveniently, as well +as set entries in the indirect block map. + +Debugfs's set_super_value command has been enhanced so that the user +can set most superblock fields, including the date/time fields and +some of the more newsly added superblock fields. + +E2fsprogs programs now accept an offset to be passed to the file +specifiers, via the syntax: "/tmp/test.img?offset=1024". + +E2fsprogs programs will now accept blocksizes up to 65536; kernel +support on the x86 doesn't exist for now, but it can be useful on +other architectures with page sizes greater than 4k. There are 2.6 +kernel patches out there which enable this, but they are of this +writing still experimental. + +The e2image command now takes the -s option which will scramble +directory entries for raw image files. + +Fix a file descriptor leak in the filefrag program. + +Make sure e2fsck doesn't crash when /proc/acpi/ac_adapter is not +present. + +Fix bug in debugfs where kill_file would lead to errors when deleting +devices and symlinks. (Sourceforge Bugs #954741 and #957244) + +Fix bug in the blkid library when detecting the ocfs1 filesystem + +Remove obsolete EVMS 1.x and a.out DLL support. + +E2fsck will attempt to recover from a journal containing illegal blocks. + +Fixed two potential ordering constraint problems in e2fsck which might +cause the filesystem to be corrupted if e2fsck is interrupted during a +(extremely narrow) race window. Thanks to Junfeng Yang from the +Stanford Metacompilation group for pointing this out. + +Fixed bug in e2fsck where it would not accurately detect whether or +not the system is running on adaptor if the ACPI device representing +the AC adapter didn't correspond to the what was used on IBM +Thinkpads. + +Change e2fsck to accept directories greater than 32MB. + +Fix e2fsck so that a checkinterval of zero disables a time-based check +of the filesystem. + +Debugfs will check the DEBUGFS_PAGER enviroment variable in preference +to the PAGER environment variable. (Addresses Debian Bug #239547) + +Tune2fs will not mark rewrite the superblock if the feature bitmasks +are not modified. + +The debugfs program will set the filetype information when creating a +link. + +Add debugfs -d option to use a separate source of data blocks when +reading from an e2image file. + +Add e2image -I option which allows the e2image metadata to be +installed into a filesystem. + +Fixed bug in the badblocks program which caused "done" to always +appear in english even when a translation was available. (Addresses +Debian Bug #252836) + +The blkid program has a new option -o which controls the output format +of the blkid program; this is makes blkid more convenient to use in +shell scripts. + +Fix a minor bug in uuid library, which was not using the full 14 bits +of clock sequence when generating UUID's. + +Fix a Y8.8888K problem in the uuid library. + +Logsave now creates a new session id for itself to avoid getting +killed by init whan transitioning between init levels. + +Change the licensing of the UUID library to be the 3-clause BSD-style +license; this allows Apple to use the uuid library in Darwin. + +Add ocfs and ocfs2 probe support into the blkid library. + +Fix a memory and file descriptor leak in the blkid library. + +The blkid library will revalidate the device if the system time is +earlier than last verification time of the device, since that +indicates that the system time is probably nottrustworthy. + +The blkid library will override the default location of the blkid.tab +file by the BLKID_FILE environment variable, if it is available. + +Change the getsize functions to use the BLKGETSIZE64 ioctl on Linux 2.6. + +Add various portability fixes for lame new versions of glibc, Darwin +and GNU/KFreeBSD, as well as removing XSI:ism's. (Addresses Debian +Bugs #239934, #264630, #269044, #255589, #289133) + +Add support for Windows 9x/NT under Cygwin. + +Updated and clarified various man pages. (Addresses Debian Bugs #236383, + #241940, #238741, #242995, #256669, #268148, #256760, #273679) + +Updated and fixed translations. (Addresses Debian bugs #244105, #262836) + +Update the rpm spec files so that it works better with Fedora core 2 +and RH9. + +Fixed various Debian packaging issues (see debian/changelog). In +particular, fixed the Debian initrd scripts. (#241183, #248050, +#253595, #247775) + + +Programmer's notes: +------------------- + +Fixed various gcc -Wall warnings. + +The uuid library now has new functions uuid_unparse_upper() and +uuid_unparse_lower() which forces the case of the hex digits to be +upper case, or lower case. + +The build process has been speeded up by enhancing the subst program +to update the modtime on the generated files even when the generated +file hasn't changed. + +The uuid library now uses C99 stdint.h types instead of custom types. + +Updated config.guess and config.sub with newer versions from the FSF. + +Removed out of date .cvsignore files from the source distribution. + +The ext2fs_unlink() function will return an error if both the name and +inode number are unspecified, to avoid doing something surprising +(such as unconditionally deleting the first directory entry). +Directory entries are now deleted by coalescing them with the previous +directory entry if possible, to avoid directory fragmentation. This +is not an issue with the e2fsprogs suite, but may be a problem for +some of the users of libext2fs, such as e2tools. + +Add support for version numbers of the form "1.36-rc1". + +Fix build of mke2fs.static. + +Add basic ext2fs library support for large (EA in inode) inodes. + +The test_io mechanism can now abort after n reads or writes to a +particular block. The block is specified by TEST_IO_BLOCK environment +variable, and the read/write count by the TEST_IO_READ_ABORT and +TEST_IO_WRITE_ABORT environment variables. The block data is now only +dumped if the 0x10 bit is set in TEST_IO_FLAGS. + +UUID_DEFINE() in the uuid library now creates a static variable, with +__attribute__ ((unused)) if we are using GCC, so that UUID_DEFINE can +be used in header files. + +Add support for the install-strip and install-shlibs-strip targets, as +suggested by the GNU coding guielines. "make install" no longer +strips the binaries which are installed. + +Remove support for the --enable-old-bitops configure option which was +only for very old sparc systems. + +Remove support for --enable-clear-htree; this was only needed during +the early development of the htree patch. + +Use Linux-kernel-style makefile output so it is easier to see compiler +warnings. + +Update gettext files to version 0.14.1. + +Update to use autoconf 2.5x. + +Improved support for compiling e2fsprogs under dietlibc. + +Make e2fsprogs portable to Solaris and FreeBSD systems. + +Add blkid_verify(), blkid_get_library_version(), and +blkid_parse_version_string() functions to the blkid library. + +Add pkg-config files for e2fsprogs's libraries. + +Fix "make uninstall" to so that it removes everything that is installed. + +Add a configure --enable-maintainer-mode option which enables the +makefile rules to rebuild the configure script from configure.in, and +to reubuild the .gmo files in po directory. + +Drop the sparc assembly bitwise operations; it's less efficient +than the GCC 3.4 compile code and triggers compiler warnings on +sparc64. Thanks to Matthias Andree for his analysis and suggestions. +(Addresses Debian Bug #232326) + + +E2fsprogs 1.35 (February 28, 2004) ================================== +E2fsck has a new -k option, which in conjunction with the -c options, +preserves the existing badblocks list. + +Cleaned up e2fsck's preen-mode messages during the passes 1b, 1c, and 1d. + +E2fsprogs will now deal correctly with symlinks that contain +extended attribute information, which can be created using SE Linux. +(Addresses Debian Bug #232328) + +Remove a double longjump into an invalid stack frame bug in e2fsck. +(This was during an abort sequence, which normally worked on Linux and +caused a core dump on other operating systems.) + +Fix NLS bug in e2fsck, by avoiding trying to expand an empty string +(the NLS library will replace "" with the .po header information). + +Fix a bug in mke2fs which caused -T largefile or -T largefile4 to core +dump due to a division by zero error. (Addresses Debian bug #207082) + +Fixed a bug in e2fsck which caused it to incorrectly fix a filesystem +when reconnecting a directory requires creating a lost+found +directory. (Addresses Debian bug #219640). + +Fixed a bug where e2fsck would bomb out if a journal needed to be +replayed when using an alternate superblock. + +E2fsck will give an extra grace period before actually forcing a check +if the laptop is running on battery. The next time fsck runs while +the system is on the AC mains, or after the grace period is exceeded, +the filesystem will be checked. (Addresses Debian bug #205177) + +E2fsck will inform the user when there are 5 or fewer mounts before a +filesystem check will be forced. (Addresses Debian bug #157194) + +Fix e2fsck's 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". + +Fix byte swap bugs in e2fsck that caused the journal backup location +in the superblock and symlinks created by SE Linux to be cleared +by e2fsck on big-endian machines. (Addresses Debian bug #228723) + +E2fsck -c now replaces the current list of bad blocks with the ones +found by badblocks. + +Fix bugs in e2fsck and tune2fs which could cause a core dump if a +non-existent LABEL or UUID specifier is to e2fsck or tune2fs. + +Fix a potential bug in e2fsck which could cause it to core dump when +trying to print the location of the backup superblock. + +Protect against a potential core dump in e2fsck when printing a +message about backup superblocks. + +Add support for backing up the journal inode location in the +superblock. E2fsck will automatically save the journal information in +the superblock if it is not there already, and will use it if the +journal inode appears to be corrupted. ext2fs_add_journal_inode() +will also save the backup information, so that new filesystems created +by mke2fs and filesystems that have journals added via tune2fs will +also have journal location written to the superblock as well. +Debugfs's logdump command has been enhanced so that it can use the +journal information in the superblock. + +E2fsck will now update all superblocks when moving the journal inode. + +Shrink the size of the e2fsck executable by moving some initialized +variables to the BSS segment. + +E2fsck will avoid printing the ^A and ^B characters which bracket the +progress bar when stdout and stdin are a tty device instead of a pipe +to another program. (Addresses Debian bug #204137) + +Debugfs's mkdir command will automatically expand the directory if +necessary. (Addresses Debian Bug: #217892) + +Fixed a bug in debugfs so that copying a file from /dev/null uses the +correct mode bits. (Addresses Debian Bug: #217456) + +If the environment variables DEBUFS_PAGER and PAGER are not set, +debugfs now searches for the appropriate pager to use, beginning with +/usr/bin/pager, and then falling back to 'more' and 'less'. +(Addresses Debian bug #221977) + +Debugfs will now support 2.6 device numbers where the major or minor +number may be larger than 255. (Addresses Sourceforge bug #865289) + +Fix debugging printf in resize2fs. (Addresses Debian Bug #271605) + +Chattr now stops processing options when it sees '--'. (Addresses +Debian bug #225188) + +Fix regression tests so they work correctly when e2fsprogs is compiled +with configure --disable-htree. + +Fix bug in uuid library when there is no network card and the library +is generating a time-based uuid. The random MAC address was not +correctly generated to be a multicast address. + +Add compile_et extensions from Heimdall that were missed the first time +around. + +Fix bug in badblocks when using O_DIRECT; we need to make sure that +we're reading from an offset which is page aligned. For read-only and +read-write tests, we try to recover after an error so that we can +continue reading on page-aligned boundaries. (Addresses Debian Bug +#203713) + +Badblocks now checks 64 blocks at a time instead of 16. (Addresses +Debian bug #232240) + +Updated and clarified various man pages. (Addresses Debian Bug +#206845, #222606, #214920, #232406) + +Updated and fixed translations. (Addresses Debian bugs #200086, #214633) + +Fixed various Debian packaging issues (see debian/changelog). + +Programmer's notes: +------------------- + +Fixed a build problem so that e2fsprogs would compile with the +--enable-profile option to configure selected. (Addresses Sourceforge +bug #811408) + +Fixed C++ problems with the ext2fs.h header. (Addresses Red Hat +Bugzilla Bug #112448) + +Centralize code which calculates the location of the superblock +and block group descriptors so that it is in a single library routine. + +Added two new functions, ext2fs_file_open2() and +ext2fs_inode_io_intern2() which take a pointer to an inode structure. + +Fix compile_et to output the correct prototype for +initialize_xxx_err_table_r() in the header file. (Addresses Debian +bug #204332) + +In the lib/et makefile, make sure com_err.info is deleted on "make clean". + +Fix 64-bit warnings in e2fsprogs pass1b by using inttypes.h if +present. This is for when we try stuffing an int into void * pointer. + +Fix type-punning which can cause gcc 3.x to miscompile code by getting +confused about pointer aliasing. ext2fs_getmem(), ext2fs_free_mem(), +and ext2fs_resize_mem() all now take a 'void *' instead of a 'void +**'. The EVMS code uses an ugly union approach since we don't want to +modify the EVMS interfaces. + +Make sure all Makefiles use $(MAKE) rather than hardcoded "make", to +aid build process on systems can use invoke GNU make as "gmake". + +Added regression testing for mke2fs. + +Fixed gcc -Wall nitpicks. + +Fixed various compiler warnings. + +Add portability fixes for FreeBSD and for using fsctl under Darwin to +support ext2 ioctl's. + + +E2fsprogs 1.34 (July 25, 2003) +=============================== + +Fixed a bug introduced in E2fsprogs 1.30 which caused fsck to spin in +a tight loop while waiting for a child fsck to exit in some cases. +This burns CPU times which slows down the low-level filesystem check. + +Added code to mke2fs to assure that the default block size for a +filesystem is at least as big as the sector size of the device, if it +can be determined. + +Changed mke2fs and resize2fs to round the default size of a filesystem +to be an even multiple of the VM pagesize in order to avoid a Linux +kernel bug introduced when the storage of the buffer cache was moved +into the page cache. + +Mke2fs will warn the user when creating a filesystem with journaling +and a blocksize greater than 4096. (Addresses Debian bug #193773) + +Fixed a bug in resize2fs which caused it to fail on filesystems with a +non-empty bad block list. Resize2fs now discards any blocks on the +badblock list which are no longer part of the filesystem as the result +of a filesystem shrink. (Note: this means that shrinking and then +enlarging a filesystem is no longer a reversible operation; +information about bad blocks in the part of the filesystem which is to +be chopped off will be lost.) + +Changed resize2fs so the user can use prefixes to specify the units of +the new filesystem size (sectors, kilobytes, megabytes, or gigabytes), +and to make the error and informational messages explicitly display +the blocksize used by the filesystem, in order to avoid confusion. +(Addresses Debian bug: #189814) + +Added a new debugfs command, dump_unused, which dumps the contents of +all unused blocks to stdout. (Useful as an emergency try-to-find +deleted data command.) + +Added a new debugfs command, imap, which prints the location of a +specified inode in the inode table. + +Fixed a bug in the badblocks program which caused it to use one bit of +randomness in its non-destructive read/write test, instead of using a +full 8 bits of randomness. + +Added a new option (-t) to badblocks, which allows the user to control +the test pattern(s) used when checking a disk. + +The blkid probe function now more correctly detects UDF filesystems. + +Fixed a bug in the blkid library which caused it to not update its +cache if a filesystem changes from having a label to not having a +label. + +Fixed a bug in the blkid library wihch could avoid an infinite loop +in blkid_find_dev_with_tag() if /proc is not mounted and there the +/etc/blkid.tab file has not yet been created. + +Fixed the badblocks program so that the destructive read/write test +honors the -c option, and to use O_DIRECT when possible to avoid +thrashing the system block buffer cache. + +Fixed various NLS issues. + - Added Czech and Swedish translations + - Removed testing NYC translation + - Fixed NLS support for message abbrevations in e2fsck + - Remove de-utf.po, since we shouldn't have two versions using different + charset encodings. + - Used ngettext() (abbreivated with the macro P_(str1, str2, n)) to + simplify the statistics reporting in e2fsck. + +Changed configure.in so that its defaults for *BSD systems no longer +build an fsck wrapper, and not to install in /usr/local by default. + +Fixed some minor spelling errors/typo's in e2fsck and the configure +script. + +Fixed various Debian packaging issues (see debian/changelog). + +Updated and clarified man pages. (Addresses Debian Bug #195616) + +Programmer's notes: +------------------- + +Fix gcc -Wall nitpicks. + +Updated gettext implementation used by e2fsprogs to 0.11.5, and enable +NLS support by default. (Added partial workaround for gettext/Darwin +incompatibility problems.) + +Added full MIT KRB5 and Himdall compaibility support to the com_err +library and the compile_et program. (Addresses Debian bug #191900) + +Added the blkid_known_fstype() function to the blkid library, which +returns true if it is passed a filesystem type which is recognized by +the blkid probing functions. + +Improved the documentation for the blkid library. + +Added the ext2fs_get_device_sectsize() function the the ext2fs library, which +returns the hardware sector size of a device, if it is available. + +Added a dependency in the blkid library's .so file to the uuid +library, since the former uses the latter. (Addresses Debian bug +#194094) + +Added --with-diet-libc and --disable-evms to the configure script. + +Fixed a minor memory leak in the badblocks program. + +Fixed a portability problem in tune2fs --- not all systems have strptime(). + +Fixed a portability problem in debugfs with the use of getopt() more +than once. Old-style BSD, new-style BSD, and Linux C libraries all do +things differently. + +Add support Windows support to ext2fs_get_device_size(). + +Added (normally disabled) debugging code to the Unix I/O manager which +causes it to disable all userspace caching if the NO_IO_CACHE is +defined. + +Changed the test I/O manager so it can always be linked into e2fsck, +mke2fs, and tune2fs if enabled via --enable-test-io-debug to the +configure script. The test I/O manager will only print any debugging +information if the TEST_IO_FLAGS or TEST_IO_BLOCK environment +variables are set, which specifies which I/O operations are logged and +a block number to watch, respectively. The log messages are sent to +stderr by default, unless a filename is specified via the +TEST_IO_LOGFILE environment variable. + + +E2fsprogs 1.33 (April 21, 2003) +=============================== + +Added a new utility program, logsave, which captures the output of a +command in a log file, even if the containing directory hasn't been +mounted yet (in which case the it saves the output in memory until it +can write out the logfile). This is useful for capturing the +output of fsck during the boot sequence. + +Fixed some portability problems that were causing problems under +the Cygwin32 environment. + +Mke2fs now interprets a negative number to the -b option as a minimum +block size. + +Fixed a bug in mke2fs which was incorrectly checking the argument to +the -g option if the default block size was used. (Addresses Debian +bug #188319) + +Fsck now explicitly ignores tmpfs and devpts, and it will complain if +it can not find filesystem checkers for jfs, reseirfs, and xfs. + +E2fsck now updates 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. + +Imported bug fixes to the EVMS plugin from the EVMS 2.0 tree. (EVMS +2.0 is not yet supported; this only pulled in the bug fixes: fixed +possible hangs caused by bugs in calling waitpid, and not setting the +pipe to non-blocking mode; also fixed a file descriptor leak; made +sure all functions call log entry/exit functions.) + +Badblocks now flushes its output file as bad blocks are discovered. + +The uuid library is now more paranoid about assuming the correctness +of the /dev/random device; it mixes in a stream of bytes from +random/srandom, just in case. + +Update Debian files to reflect the fact that I am now the Debian +maintainer of e2fsprogs. Other various Debian-specific packaging +cleanups. + +Move the source tarball generation functions from the top-level +makefile to the util/gen-tarball script. + +Updated the Turkish .po translation file. + +Added Heimdal and MIT krb5 extensions to the com_err library to make +it more compatible with com_err libraries from those distributions. + +Changed dumpe2fs to always display the superblock fields relating to +the journalling and/or directory indexing feature even if those +features are not enabled. + +Updated and clarify copyright statement vis-a-vis alpha releases of +e2fsprogs. + +The ss library will now try to dynamically link to the readline +library and use it if it is present in the system. This means that +the debugfs program now has line editing and history features. The +SS_READLINE_PATH environment variable is used to find a readline or +readline-compatible library. + E2fsck now finds most duplicate filenames (all when rebuilding all directories via the -D option) and offers to delete or rename duplicate filenames/directory entries. (Addresses Debian Bug #176814). @@ -48,7 +3991,9 @@ Mke2fs no longer creates filesystems with the dir_index flag set by default; the user has to specifically request it. Update and clarified various man pages. (Addresses Debian bugs -#173612, #175233, #175113, and #170497) +#173612, #175233, #175113, and #170497, #185945, #188318) + +Created man page for the mk_cmds program (from the libss library). Programmer's notes: ------------------- @@ -65,6 +4010,16 @@ Changes to create a subset distribution which consists only of the et, ss, uuid, and blkid libraries. The configure script and top-level makefile were changed to support working with a subset distribution. +Removed EXT2_FEATURE_RO_COMPAT_BTREE_DIR mention of since it's not +actually used, and might people who are looking for +EXT2_FEATURE_COMPAT_DIR_INDEX, which is in use. + +Updated debian files to fix a number of Lintian warnings. + +Updated config.guess and config.sub with newer versions from the FSF. + +Removed unnecessary libraries from being linked into the fsck, lsattr, +chattr, and blkid executables. E2fsprogs 1.32 (Nomvember 9, 2002) ================================== @@ -513,7 +4468,7 @@ limits to be infinite on startup. Fixed a bug in e2fsck where it wasn't allocating a new block or inode bitmap if it wasn't present and the blocksize was 2k or 4k. -(Addresses Debian Bug #116975) + (Addresses Debian Bug #116975) E2fsck will check and fix botched ext3 V1 to V2 superblock updates by clearing the new V2 fields if they do not make sense or if the ext3