X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=RELEASE-NOTES;h=514876f3879dc4924c89f2eb8b6679187337a123;hb=da17e370927a9cc7d578bd79a9a7acdf4684befd;hp=93c78474f3683fb5a53ede17d29274f01477b507;hpb=afa14ba0fdb8e238c5770477b5f66bb91a5e0184;p=tools%2Fe2fsprogs.git diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 93c7847..514876f 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -1,6 +1,2979 @@ -E2fsprogs 1.27-WIP (March 4, 2002) +E2fsprogs 1.41.1 (as of August 23, 2008) commit id baf8ab98 +============================================================ + +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. + +Mke2fs and tune2fs now print the correct usage message describing the +maximum journal size. (Addresses Debian Bug: #491620) + +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) + +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. + +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. + +Blkid had a number of cache validation bugs in libblkid that have been +fixed. (Addresses Debian Bug: #493216) + +Debugfs's htree command now correctly understands extent-based +directories. It will also print out the minor hash as well as the +major hash. + +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. + +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. + +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) + +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. + +Various ext2fs library functions --- 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. + +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 $(). + +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. + + +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). + +Fix bug in e2image. When writing out a raw image file, include data +blocks from symlinks that do not store the symlink within the inode. + +Fix bug in resize2fs which incorrectly moved the block and inode +bitmaps for sparse superblock filesystems and incorrectly marked +blocks as in use. (Addresses Debian bug #174766) + +Added a new shared library, the blkid library, which efficiently +allows fsck, mke2fs, e2fsck, and tune2fs to be able to look up LABEL +and UUID filesystem specifiers without needing to search all of the +devices in the system. Instead, the device is looked up in a cache +file, and then verified to make sure the blkid cache is correct. + +Tune2fs and e2label will accept LABEL=xxx and UID=yyy specifiers for +the device name, using the blkid library. (Addresses Debian bugs +#166048, #179671) + +Fsck now supports backslash escapes in /etc/fstab so that \040 can be +used for spaces in device labels. + +Removed 32-bit limitations for debugfs's dump command. + +If the user specifies a large number of inodes, Mke2fs will +automatically adjust the number of blocks per group to find a valid +set of filesystem parameters. + +Add workaround to detect broken MD devices where when some of the +underlying devices are marked read-only, writes to the MD device are +silently dropped. E2fsck will detect if there is an attempt to run +the journal twice, and abort with an error if this is the case. +(Addresses IBM Bugzilla bug #1226) + +E2fsck will print an error if more than one of the -p/-a, -n or -y +options are specified. + +E2fsck will fix HTREE corruptions in preen mode, without stopping the +boot process. This is needed because the 2.4 ext2 filesystem +accidentally had the INDEX_FL backwards compatibility code removed. + +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, #185945, #188318) + +Created man page for the mk_cmds program (from the libss library). + +Programmer's notes: +------------------- + +Fix various gcc -Wall nits. + +Fixed a lot of portability problems that caused e2fsprogs not to build +successfully under Solaris and Apple/Darwin. + +Fixed a Makefile dependency to allow building e2fsprogs using parallel +make jobs. + +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) ================================== +Fixed a bug in the Unix I/O routines which caused needless writebacks +of clean blocks from the unix_io cache (they were erroneously marked +as being dirty, so they were getting written back to disk before +getting evicted from the disk cache). This was harmless, but it +significantly slowed down e2fsck. + +Made some other minor optimizations to the Unix I/O routines to save a +small amount of CPU time. + +Updated internationalization files. + + +E2fsprogs 1.31 (Nomvember 8, 2002) +================================== + +Update EVMS ext2fsim plugin with EVMS 1.2. (We still support +compiling the fsim plugin with EVMS 1.0 and 1.1.) Add better error +handling for child process that die unexpectly. Add a hack to force +mkfs to create filesystems that won't cause problems with hardware +that has 2k or 4k minimum blocksize requirements. Read from child +processes in non-blocking mode, so that the GUI continues to update. + +Fix e2fsck so that it returns the appropriate exit code when the root +filesystem has been changed, so that system's rc scripts will be told that +the system needs to be rebooted. + +Fix a bug in ext2fs_flush/ext2fs_close; when the MASTER_SB_ONLY flag +was set, some of the descriptor blocks that should have been written +out were getting skipped. + +Changed e2fsck to force out changes to the backup copies of the +superblock and block group descriptors when important changes are made +to those data structures. + +Fix a bug where e2fsck could erroneously mark a filesystem as being +clean if a check of dirty filesystem is interrupted with a ^C. (Bug +introduced in e2fsprogs 1.28.) + +If journal debuging is enabled using --enable-jbd-debug, the debugging +level is now set via the E2FSCK_JBD_DEBUG environment variable. + +If byteswapping support is disabled using configure --disable-swapfs, +skip the tests which depend on byte-swapping, so that "make check" +won't bomb out. + +Lshattr will now display the indexed directory flag. Also, some of +the more esoteric compression flags are supressed unless compression +support has been enabled. + +Update man pages. + + +E2fsprogs 1.30 (October 31, 2002) +================================= + +When resizing a filesystem, and inodes need to moved, resize2fs will +update the inode's ctime field, and the mtime field of the containing +directories, so that incremental backups using dump/restore will work +correctly. + +In order to avoid spurious errors, e2fsck wil check the last +superblock write time to determine whether or not it can safely use +the LOW_DTIME checks to determine if there are inodes on the orphan +inode linked list that had somehow gotten disconnected. (Addresses +Sourceforge bug #620980) + +Partition in /proc/partitions that being with the string "lvm" are +considered real partitions even if they do not end with a number. + +Fixed a bug in the the uuid generation function, where if /dev/urandom +is not present, but /dev/random is, and there isn't sufficient +entropy, the get_random_byte function could spin a loop forever. + +E2fsck, mke2fs, etc. will now reliably notice when image files are +mounted using the loopback interface. (Addresses Sourceforge bug +#619119) + +When flushing buffers (as is done by badblocks, for example) check to +see if the BLKFLSBUF ioctl succeeds, and if so, avoid using the +FDFLUSH ioctl which causes the MD device driver which causes confusing +syslog messages about obselete ioctl messages. (Addresses Sourceforge +bug #545832). + +Debugfs's write command now checks to see if the destination filename +exists before creating it. (Addresses Sourceforge bug #478195.) + +When installing man pages, search for compressed man pages using all +commonly used compression extensions (i.e., .Z, .gz, .bz2, etc.) + +Fixed a bug in fsck where multiple filesystems specified on the +command were not being checked in parallel due to a logic bug +introduced to support the FSCK_MAX_INST environment variable. + +We have added a new superblock field, s_mkfs_time, which indicates +when a filesystem was created. It is set via mke2fs, and printed out +by dumpe2fs, but is not actually touched by the kernel. + +Dumpe2fs has been made more robust by not aborting if there is an +error reading the block/inode bitmaps; instead it will still print out +the location of the block/inode bitmaps and inode table. + +Add support for the an alternative block group descriptor layout which +allows for on-line resizing without needing to prepare the filesystem +in advance. (This is the incomat feature flag meta_bg.) + +Add support for storing default mount options in the superblock, so +that the filesystem can be mounted with specific mount options without +needing to specify them on the mount command line or in the /etc/fstab +file. + +Add support for a new inode flag, which is to be used for indicating +the top of directory hierarchies for the Orlov block allocator. + +Fix e2fsck so that if it creates the lost+found directory, it does so +with the more apporpriate permissions of 0700. Also change +mklost+found so that it also creates the directory 0700. + +Fixed format bug in e2fsck if NLS is in use. + +Add a German translation for e2fsprogs's NLS support. + +Fixed e2fsck so that it more handles BAD_BLOCK_IN_INODE_TABLE even at +the beginning of the inode table. This won't matter much, since if +there is a bad block at the beginning of the inode table, the root +directory won't be available. But at least e2fsck won't crash in this +case. + +Fixed endian problems in the htree code for e2fsck and debugfs. + +When byte-swapping a filesystem on a PPC architecture, byte-swap the +bitmaps since the historical big-endian ext2 variant had byte-swapped +bitmaps, and the ext2fs library assumes this. This fixes the +regression test suite on PPC machines. + +Fix e2image so that it handles a bad block in the inode table +appropriately. + +E2fsck now uses a more sophisticated algorithm to salvage corrupted +directories that recovers more information in the corrupted directory +block. + +E2fsck now performs additional consistency checks on indexed (HTREE) +directories. + +Fix bug where efsck might get confused about whether a completely +empty directory block is an empty leaf block or an interior htree +node. This could cause e2fsck to get confused into think that a valid +indexed directory was corrupted. + +E2fsck no longer creates an empty directory entry at the end of a +directory block when optimizing a directory. This would cause some +earlier versions of the dxdir kernel code to corrupt the directory +when attempting to split a node containing an empty directory entry. + +E2fsck could sometimes in rare circumstances leave the indexed flag +set after a small directory was optimized by compressing it instead of +indexing it. (This should never happen in real life, since +directories that small wouldn't have been indexed, but better safe +than sorry.) + +E2fsck now only updates the master superblock in all cases. This +slightly shortens its run time. + +Ext2ed can deal with directory entries of length 0; previously it +would get stuck in an infinite loop. + +Fsck now has support for reiserfs volumes when parsing LABEL= and UUID= +specifiers. (Sourceforge patch #613447) + +Badblocks will now work correctly on read-only devices such as +CD-ROM's. (Sourceforge patch #600451) + +Updated and clarified man pages. (Addresses Debian bug #167108) + + +E2fsprogs 1.29 (September 24, 2002) +=================================== + +Fixed a bug in e2fsck which could corrupt a directory when optimizing +it (via the -D option) or rebuiliding the hash tree index with a 1 in +512 probability, due to a fence post error. + +Fixed a bug in the LVM support code which caused LABEL='xxx' not to +work correctly. + +Mke2fs now enables the directory indexing flag by default. (Since +this is a compatible feature flag, it's safe to do so.) + +Tune2fs will support setting the directory indexing feature flag. It +will automatically set up the default hash algorithm and hash seed +fields in the superblock. + +If the bone-headed user enters the root filesystem twice in +/etc/fstab, the -R option which skips the root filesystem will skip +all of them. (Addresses Debian bug #159423). Note! This is not a +precedent for dealing intelligently with any other kind of doubled +entry in /etc/fstab! + + +Programmer's notes: +------------------- + +Removed perror declaration in lib/et/internal.h. All modern systems +can be expected to define perror() these days. Besides, the lib/et +code wasn't using perror at all anyway. :-) + + +E2fsprogs 1.28 (August 31, 2002) +================================ + +Add support for the Hashed-Tree Directory Indexing to e2fsck. Support +for setting the htree flag is not included yet, although it can be +manually turned on via the debugfs program. + +Clarified e2fsck error message which is printed when it cannot find +sufficient contiguous block when relcating filesystem metadata. + +Added support for building an EVMS plugin module for ext2/3. This +module is substantially the same as the EVMS module shipping with EVMS +1.1, with one or two bugfixes. E2fsprogs can also build this plugin +for use with EVMS 1.0 (which did not include the ext2 plugin module), +if the configure --enable-old-evms flag is given. + +Fsck will search through EVMS volumes when trying to resolve +filesystem specifications such as LABEL=xxx or UUID=xxx. + +Added a new utility program, /sbin/findfs, which will return +filesystem specifications such as LABEL=xxx or UUID=xxx, and prints +the device name. + +Update and clarified various man pages. (addresses Debian Bug #145044, +#146437, #131350, #151990, #144621, #141938) + +If there are no filesystems specified on fsck's command line, fsck now +treat that as if the -As options were given. Previously it would +simply do nothing. (Addresses Debian Bug #153102) + +Mke2fs no longer treats a failure to be able to clear the MD signature +at the end of the filesystem as a fatal error. (Addresses Debian Bug +#155007) + +The e2p library functions (which are used by lsattr and chattr) now +double check to make sure the file is a regular file or directory +before attempting to use the ext2 ioctls. Some device drivers +unfortunately respond to the ext2 ioctl's with unknown behaviour. +(Addresses Debian Bug #152029). + +The extended attribute handling has been updated to correspond with +the latest V2 bestbits ACL code. + +Fixed bug in e2fsck which caused it to not clear the dtime field when +processing truncated inodes on the orphan list. This could cause data +loss(!) if a filesystem is rebooted before a truncate has been +committed. + +E2fsck now uses red/black trees in pass1b, which removes some O(n**2) +algorithms. This makes e2fsck much faster in the case of severely +corrupted filesystems where a large number of blocks are claimed by a +large number of inodes. (Thanks to the 2.5 IDE device driver for +inspiring this work.) + +Resize2fs has been significantly sped up when shrinking and expanding +a filesystem by a very small number of blocks (for example, when EVMS +is converting a partition to be an EVMS legacy volume). + +Added a new option to e2fsck, -D, which will optimize or compress all +of the directories in the filesystem. + +E2fsck now catches SIGINT and SIGTERM to make sure it will can +properly clean up and only exit at safe points. Fsck will pass +SIGINT/SIGTERM to its child processes, and wait until they have all +exited before it exits. + +The uuid parsing code in the uuid library now properly complains when +an illegally formated uuid is presented to it. (Addresses Debian bug +#152891) + +Restrict use of the 2.4 setrlimit ABI f*ckup to kernels between 2.4.10 +and 2.4.17, since the workaround can cause problems when using a 2.4 +kernel with an old version of glibc built with the 2.2 headers. + +Fixed a bug in mke2fs where it wasn't properly clearing the initial +superblock used by other filesystems. (Addresses Debian bug #147256.) + +Added support for the synchronous directory feature written by Andrew +Morton. + +The debugfs program can delete directories using the rmdir command. + +Add support for 8k and 16k filesystems (for systems with page sizes +that are greater or equal to 8k or 16k, respectively). Note that +these filesystems can not be mounted on x86 systems, or other systems +with only 4k page sizes, due to limitations in the current Linux VM +code. + +Resize2fs requires that the filesystem state be valid and have no +errors; otherwise, e2fsck -f must be run first. (Previously it simply +required that the last fsck time be greater than the last mount time.) + +Configure now defaults the man pages directory to /usr/share/man on +Linux systems. + +E2fsck now offers to truncate inodes which contain too many blocks (so +that i_blocks would overflow. Also fixed handling of large sparse +files. + +E2fsck now more completely checks for symlink validity, including +requiring NULL termination and length checks. + +E2fsck will offer to try forcing a disk write to remap a bad block +after finding a read error when reading a filesystem metadata block. + +Fixed a bug in debugfs which caused the -b and -s options to crash +debugfs, as well as breaking the testb, setb, and clearb functions. + +Added a bmap command to debugfs which calculates the logical to +physical block mapping for a particular inode. + +Fixed a bug in code which checked to see if a device was mounted which +sometimes (rarely) failed in the case of a plain file. + +Fixed a bug in resize2fs where when it reported an error, it would +print a message erroneously indicating that the filesystem had been +resized before it aborted. + +When resizing a plain file which is smaller than the requested size, +resize2fs will attempt to extended the file so that programs like +e2fsck will not complain that the file is too small. + +Resize2fs will print the actual new size of the filesystem when it is +finished resizing. + +Fixed a bug in debugfs where "ls -l" would report incorrectl file type +information on big-endian systems. + + +Programmer's notes: +------------------- + +Fixed collisions with C++ reserved words. + +Added portability fixes for building e2fsprogs on the HURD and AIX. + +Added the ext2ed program for creation of test cases. (ext2ed has many +limitations and bugs which make it unsuitable for production use.) + +The ext2fs_read_dir_block2 and ext2fs_write_dir_block now take a new +flag, EXT2_DIRBLOCK_V2_STRUCT, which will will reverse when the +name_len field is byte swampped on big-endian machines, since in the +V2 structure, name_len is a char field which is doesn't need to be +byte swapped --- except if an old-style kernel had byte-swapped the +name_len field as part of the V1 structure. + + +E2fsprogs 1.27 (March 8, 2002) +============================== + +The warning messages for mke2fs now go to standard error. + +Fixed to make sure "make check" runs all of the test programs with +LD_LIBRARY_PATH set, so that we test the libraries in the build tree. + +The mke2fs program checks the boot sector for the BSD disk label, and +avoids erasing it if it is there. + +Fixed a bug in e2fsck which caused it to core dump if the journal +inode was missing when it was supposed to be there. + +E2fsck now prints ranges in pass 5 when printing deltas for the block +and inode bitmaps. + Debugfs's "ls -l" command now will print out the file type information in the directory entry. @@ -10,6 +2983,11 @@ mke2fs is invoked as mkfs.ext3, create the filesystem with a journal. Debugfs can now examine the experimental directory indexing information. +Fixed bug in debugfs which caused it to core dump if modify_inode is +called without an open filesystem. + +The debugfs lsdel command now runs its output through a pager first. + When installing manual pages, remove the compressed manual pages first. Synchronized with Debian's packaging information for e2fsprogs-1.26-1. @@ -17,9 +2995,14 @@ Synchronized with Debian's packaging information for e2fsprogs-1.26-1. Fix the 2.4 resource limitation workaround introduced in 1.26 which actually broke things on mips32, sparc32, and Alpha platforms. +Updated the I18N code so that calls to setlocate(LC_CTYPE, 0) are made +(which is required by the newer libintl libraries). + Programmer's notes: ------------------- +Fixed various gcc -Wall complaints. + Fixed a few memory leaks in the e2fsck journaling code, and in the ismounted code checking for a swap device. @@ -64,7 +3047,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