| E2fsprogs 1.41.14 (December 22, 2010) |
| ===================================== |
| |
| Fix spurious complaint in mke2fs where it would complain if the file |
| system type "default" is not defined in mke2fs.conf. |
| |
| The resize2fs program will no longer clear the resize_inode feature |
| when the number reserved group descriptor blocks reaches zero. This |
| allows for subsequent shrinks of the file system to work cleanly for |
| flex_bg file systems. |
| |
| The resize2fs program now handles devices which are exactly 16T; |
| previously it would give an error saying that the file system was too |
| big. |
| |
| E2fsck (and the libext2fs library) will not use the extended rec_len |
| encoding for file systems whose block size is less than 64k, for |
| consistency with the kernel. |
| |
| Programming notes |
| ----------------- |
| |
| E2fsprogs 1.41.13 would not compile on big-endian systems. This has |
| been fixed. (Addresses Sourceforge Bug: #3138115) |
| |
| The ext2fs_block_iterator2() function passed an incorrect ref_offset |
| to its callback function in the case of sparse files. (Addresses |
| Sourceforge Bug: #3081087) |
| |
| Fix some type-punning warnings generated by newer versions of gcc. |
| |
| |
| E2fsprogs 1.41.13 (December 13, 2010) |
| ===================================== |
| |
| E2fsck now supports the extended option "-E journal_only", which |
| causes it to only do a journal replay. This is useful for scripts |
| that want to first replay the journal and then check to see if it |
| contains errors. |
| |
| E2fsck will now support UUID= and LABEL= specifiers for the -j option |
| (which specifies where to find the external journal). (Addresses |
| Debian Bug #559315) |
| |
| E2fsck now has support for the problems/<problem code>/force_no |
| configuration option in e2fsck.conf, which forces a problem to not be |
| fixed. |
| |
| Dumpe2fs will now avoid printing large negative offsets for the bitmap |
| blocks and instead print a message which is a bit more helpful for |
| flex_bg file systems. |
| |
| Mke2fs will now check the file system type (specified with the -t |
| option) to make sure it is defined in the mke2fs.conf file; if it is |
| not, it will print an error and abort. If the usage type (specified |
| with the -T option) is not defined in mke2fs.conf, mke2fs will print a |
| warning but will continue. (Addresses Debian Bug #594609) |
| |
| Clarified error message from resize2fs clarifying that on-line |
| shrinking is not supported at all. (Addresses Debian Bug #599786) |
| |
| Fix an e2fsck bug that could cause a PROGRAMMING BUG error to be |
| displayed. (Addresses Debian Bug #555456) |
| |
| E2fsck will open the external journal in exclusive mode, to prevent |
| the journal from getting truncated while it is in use due to a user |
| accidentally trying to run e2fsck on a snapshotted file system volume. |
| (Addresses Debian Bug #587531) |
| |
| Fix a bug in e2fsck so it has the correct test for the EOFBLOCKS_FL |
| flag. |
| |
| The tune2fs program can now set the uninit_bg feature without |
| requiring an fsck. |
| |
| The tune2fs, dumpe2fs, and debugfs programs now support the new ext4 |
| default mount options settings which were added in 2.6.35. |
| |
| The e2fsck and dumpe2fs programs now support the new ext4 superblock |
| fields which track where and when the first and most recent file |
| system errors occurred. These fields are displayed by dumpe2fs and |
| cleared by e2fsck. These new superblock fields were added in 2.6.36. |
| |
| Debugfs now uses a more concise format for listing extents in its |
| stat command. This format also includes the interior extent tree |
| blocks, which previously was missing from stat's output for |
| extent-based files. |
| |
| Debugfs has a new option, -D, which will request Direct I/O access of |
| the file system. |
| |
| Mke2fs will skip initializing the inode table if a device supports |
| discard and the discard operation will result in zero'ed blocks. |
| |
| Badblocks will now correctly backspace over UTF-8 characters when |
| displaying its progress bar. (Addresses Gentoo Bug #309909; Addresses |
| Debian Bugs #583782 and #587834) |
| |
| E2freefrag will now display the total number of free extents. |
| |
| Resize2fs -P no longer requires a freshly checked filesystem before |
| printing the minimum resize size. |
| |
| Fixed a floating point precision error in a binary tree search routine |
| that can lead to seg fault in e2fsck and resize2fs. |
| |
| Fixed a bug in e2fsck where if both the original and backup superblock |
| are invalid in some way, e2fsck will fail going back to the original |
| superblock because it didn't close the backup superblock first, and |
| the exclusive open prevented the file system from being reopened. |
| |
| Fixed a big in e2freefrag which caused getopt parsing to fail on |
| architectures with unsigned chars. (Addresses Gentoo Bug: #299386) |
| |
| Clarified an mke2fs error message so a missed common in an -E option |
| (i.e., mke2fs -t ext4 -E stride=128 stripe-width=512 /dev/sda1") |
| results in a more understandable explanation to the user. |
| |
| Mke2fs now displays the correct valid inode ratio range when |
| complaining about an invalid inode ratio specified by the user. |
| |
| Mke2fs now understands the extended option "discard" and "nodiscard", |
| and the older option -K is deprecated. The default of whether |
| discards are enabled by default can be controlled by the mke2fs.conf |
| file. |
| |
| Mke2fs's handling of logical and physical sector sizes has been |
| improved to reflect the fact that there will be some SSD's with 8k and |
| 16k physical sectors arriving soon. Mke2fs will no longer force block |
| size to be the physical sector size, since there will be devices where |
| the physical sector size is larger than the system's page size, and |
| hence larger than the maximal supported block size. In addition, if |
| the minimal and optimal io size are not exported by the device, and |
| the physical sector size is larger than the block size, the physical |
| sector size will be used to set the Raid I/O optimization hints in the |
| superblock. |
| |
| E2fsck will now display a better, more specific error message when the |
| user enters a typo'ed device name, instead of blathering on about |
| alternate superblocks. |
| |
| Fixed various Debian Packaging Issues |
| |
| Updated/clarified man pages (Addresses Debian Bugs: #580236, #594004, |
| #589345, #591083; Addresses Launchpad Bug: #505719) |
| |
| Update the Chinese, Chzech, Dutch, French, Germany, Indonesian, |
| Polish, Swedish, and Vietnamese translations. |
| |
| |
| Programmer's Notes |
| ------------------ |
| |
| Fix a dependency definition for the static and profiled blkid |
| libraries which could cause compile failures in some configurations. |
| (Addresses Debian Bug: #604629) |
| |
| Add support for Direct I/O in the Unix I/O access layer. |
| |
| Fixed a memory leak in the Unix I/O layer when changing block sizes. |
| |
| Fixed minor memory leaks in mke2fs. |
| |
| Added a new function to the ext2fs library, ext2fs_get_memalign(). |
| |
| The tst_super_size test program will check to make sure the superblock |
| fields are correctly aligned and will print them out so they can be |
| manually checked for correctness. |
| |
| Fixed some makefile dependencies for test programs in lib/ext2fs. |
| |
| Reserved the feature flags and superblock fields needed for the Next3 |
| snapshot feature. |
| |
| Reserved the feature flags for EXT4_FEATURE_INCOMPAT_DIRDATA and |
| EXT4_INCOMPAT_EA_INODE. |
| |
| |
| E2fsprogs 1.41.12 (May 17, 2010) |
| ================================ |
| |
| Mke2fs now gives a correct error message if the external journal |
| device is not found. (Addresses Red Hat Bug #572935) |
| |
| Resize2fs -P will now refuse to print a minimum size if the file |
| system is not clean. Previously it would go ahead and print a minimum |
| size anyway, which might not be correct, leading to user confusion. |
| |
| E2fsck now tests for extents that begin at physical block 0 and |
| rejects them as invalid. (Addresses Google Bug: #2573806) |
| |
| Fixed a bug in e2fsck which could cause it to crash when trying to |
| remove an invalid extent and the block bitmaps hadn't yet been loaded. |
| (Addresses SourceForge Bug: #2971800) |
| |
| E2fsck now will completely skip time-based checks if the system clock |
| looks insane or the option broken_system_clock is set in |
| /etc/e2fsck.conf. |
| |
| E2fsck would previously report an i_blocks corruption for a 4T file |
| created using posix_fallocate; this bug has been fixed. |
| |
| E2fsck will now correctly mark a sparse journal as invalid and will |
| delete and recreate the journal to address the problem. |
| |
| E2fsck would previously incorrectly ask the user whether she would |
| like to abort the file system check after finding a problem --- and |
| then abort regardless of the user's answer. This is annoying, and |
| has been fixed. |
| |
| E2fsck can now continue even if it fails to recreate the resize |
| inode; previously it would just abort the file system check |
| altogether. |
| |
| E2fsck could potentially remove directory entries for inodes found in |
| the unused region of the inode table; this would generally happen on |
| ext4 file systems that do not use journalling. This bug has been fixed |
| by not clearing these directory entries once it has been established |
| that bg_unused_inodes may not be trustworthy; once pass #2 has been |
| completed, e2fsck will restart the file system check from the |
| beginning, and then it will be safe to delete any directory entries |
| pointing to inodes that appear to be deleted. (Addresses Google Bug: |
| #2642165) |
| |
| E2fsck will not try to set the block group checksums if the user |
| cancels the fsck with a control-C. It's a bad idea to set the |
| checksums if e2fsck hasn't been completed, and it often results an the |
| error message, "Inode bitmap not loaded while setting block group |
| checksum info". (Addresses Launchpad Bug: #582035) |
| |
| The mke2fs program now queries the kernel for the physical as well as |
| the logical sector size, and will not allow a blocksize below the |
| logical, and will strongly encourage a blocksize at least as big as |
| the physical blocksize. This is needed for 4k sector drives that |
| emulate 512 byte sector sizes. |
| |
| Mke2fs will now allow a flex_bg size of 1. This is unusual, and |
| rarely needed, but it is a legal value. |
| |
| E2fsck will check for cases where the EOFBLOCKS_FL is set when it is |
| not needed, and offer to clear it; this is a sign of a kernel bug, but |
| more importantly, some released kernels may crash when this situation |
| is encountered on ext4 file systems. (Addresses Google Bug: #2604224) |
| |
| E2fsck will use the EOFBLOCKS_FL flag exclusively to check whether |
| i_size is correct. (Kernels starting with 2.6.34 will set |
| EOFBLOCKS_FL.) |
| |
| The com_err library will now only output ^M (a CR character) when the |
| tty is in raw mode. |
| |
| Update the Czech, Chinese, Dutch, French, Germany, Indonesian, Polish, |
| and Vietnamese translations. |
| |
| Fixed various Debian packaging issues --- see debian/changelog for |
| details. (Addresses Debian Bugs: #571247, #563487) |
| |
| |
| Programmer's Notes |
| ------------------ |
| |
| The regression test suite now uses its own mke2fs.conf file, so that |
| downstream distributions want change the mke2fs.conf file which is |
| distributed in the RPM or dpkg file, without worrying about screwing |
| up the regression test results. |
| |
| Always build namei.o so that building with configure --disable-debugfs |
| works correctly. Long-term, if we care about reduced e2fsprogs |
| builds, we need a more general solution for deciding what .o files are |
| needed for a particular build. Given that install floppies are going |
| (gone?) the way the dodo bird, we probably don't care, though. |
| (Addresses Sourceforge Bug: #2911433) |
| |
| Add configure options --enable-symlink-build and |
| --enable-symlink-install, which allow e2fsprogs be built using |
| symlinks instead of hard links, and to be installed using symlinks |
| instead of hard links, respectively. It is useful when the file |
| system where the build is taking place, or the file system where |
| e2fsprogs is installed, can't handle hard links for some reason. |
| (Addresses Sourceforge Bug: #1436294) |
| |
| Fixed compile warning in mke2fs.c. |
| |
| |
| E2fsprogs 1.41.11 (March 14, 2010) |
| ================================== |
| |
| E2fsck will no longer give a fatal error and abort if the physical |
| device has been resized beyond 2**32 blocks. (Addresses Launchpad |
| Bug: #521648) |
| |
| Debugfs has a bug fixed so that "logdump -b <blk>" now properly shows |
| the allocation status of the block <blk>. (Addresses Debian Bug: |
| #564084) |
| |
| E2fsck now prints a much more emphatic and hopefully scary message |
| when a file system is detected as mounted while doing a read/write |
| check of the filesystem. Hopefully this will dissuade users from |
| thinking, "surely that message doesn't apply to *me*" :-( |
| |
| E2fsck -n will now always open the file system read-only. We now |
| disallow certain combination of options which previously were manual |
| exceptions; this is bad because it causes users to think they are |
| smarter than they really are. So "-n -c", "-n -l", "-n -L", and "-n |
| -D" are no longer supported. (Addresses Launchpad Bug: #537483) |
| |
| In e2fsprogs 1.41.10, mke2fs would ask for confirmation to proceed if |
| it detected a badly aligned partition. Unfortunately, this broke some |
| distribution installation scripts, so it now just prints the warning |
| message and proceeds. (Addresses Red Hat Bug: #569021. Addresses |
| Launchpad Bug: #530071) |
| |
| Mke2fs would take a long time to create very large journal files for |
| ext4. This was caused by a bug in ext2fs_block_iterate2(), which is |
| now fixed. |
| |
| E2fsck now understands the EOFBLOCKS_FL flag which will be used in |
| 2.6.34 kernels to make e2fsck not complain about blocks deliberately |
| fallocated() beyond an inode's i_size. |
| |
| E2fsprogs 1.41.10 introduced a regression (in commit b71e018) where |
| e2fsck -fD can corrupt non-indexed directories when are exists one or |
| more file names which alphabetically sort before ".". This can happen |
| with ext2 filesystems or for small directories (take less than a lock) |
| which contain filenames that begin with a space or some other |
| punctuation mark. (Addresses Debian Bug: #573923, Addresses Launchpad |
| Bug: #525114) |
| |
| |
| Programmer's Notes |
| ------------------ |
| |
| Add new test, f_rehash_dir, which checks to make sure e2fsck -D works |
| correctly. |
| |
| The libcom_err function now has support for Heimdal's com_right_r |
| function(). (Addresses Sourceforge Bug: #2963865, Addresses Debian |
| Bug: #558910) |
| |
| |
| E2fsprogs 1.41.10 (February 7, 2010) |
| ==================================== |
| |
| Fix resize2fs bug which causes it to access invalid memory. |
| |
| Add libss support for libreadline.so.6. |
| |
| Fix e2fsck's check for extent-mapped directory with an incorrect file |
| type. |
| |
| Add new e2fsck.conf configuration option, default/broken_system_clock |
| to support systems with broken CMOS hardware clocks. Also, since too |
| many distributions seem to have broken virtualization scripts now, |
| e2fsck will by default accept dates which are off by up to 24 hours by |
| default. (Addresses Debian Bugs: #559776, #557636) |
| |
| Fix a bug where mke2fs may not use the best placement of the inode |
| table when there is only room for a single block group in the last |
| flex_bg. |
| |
| E2fsck is now smarter when it needs to allocate blocks in the course |
| of fixing file system problems. This reduces the number of spurious |
| differences found in pass #5. |
| |
| E2fsck will no longer rehash directories which fit in a single |
| directory block. |
| |
| E2fsck now correctly handles holes in extent-mapped directories (i.e., |
| sparse directories which use extents). |
| |
| Fix big-endian problems with ext2fs_bmap() and ext2fs_bmap2(). |
| |
| Fix a bug in filefrag where on platforms which can allow file systems |
| with 8k blocks, that it doesn't core dump when it sees a file system |
| with 8k block sizes. (Thanks to Mikulas Patocka for pointing this |
| out.) |
| |
| E2fsck will correctly fix directories that are have an inaccurate |
| i_size as well as other problems in a single pass, instead of |
| requiring two e2fsck runs before the file system is fully fixed. |
| |
| Fix e2fsck so it will correctly find and detect duplicate directory |
| entries for non-indexed directories. ( Addresses Sourceforge Bug: |
| #2862551) |
| |
| Mke2fs will use BLKDISCARD to pre-discard all blocks on an SSD or |
| thinly-provisioned storage device. This can be disabled using the -K |
| option. |
| |
| Enhance libext2fs so it works around bug in Linux version 2.6.19 |
| and earlier where the /proc/swaps file was missing the header on |
| the first line. |
| |
| Fix bug in Linux version 2.6.19 and earlier where the /proc/swaps file |
| was missing the header on the first line. |
| |
| Fix some big-endian bugs in e2fsck and libext2fs. |
| |
| Fix resize2fs so it works correctly on file systems with external |
| journals instead of failing early with the error "Illegal inode |
| number". |
| |
| Fix libss so that it does not seg fault when using a readline library |
| which does not supply a readline_shutdown() function. |
| |
| Updated dumpe2fs's usage message so it correctly gives the right |
| arguments summary for "-o superblock=<num>" and "-o blocksize=<num>". |
| (Addresses Launchpad Bug: #448099) |
| |
| Teach libext2fs to ignore the high 32 bits of the i_blocks field |
| when huge_file file system feature is set, but the inode does not |
| have the HUGE_FILE_FL flag set. |
| |
| Fix e2fsck's handling of 64-bit i_blocks fields. |
| |
| E2fsck will now print "Illegal indirect block", "Illegal |
| double-indirect block", etc., instead of "Illegal block #-1" or |
| "Illegal block #-2", etc. This makes it easier for users to |
| understand what has gone wrong. (Addresses SourceForge Bug: #2871782) |
| |
| Mke2fs now will obtain get device topology information from blkid and |
| use it to populate the superblock stride and stripe sizes. It will |
| also warn if the block device is misaligned |
| |
| Fix file descriptor leaks in fsck and debugfs. (Addresses Novell Bug: |
| ##524526) |
| |
| Fix the libext2fs library code to round up the bitmap size to a 4-byte |
| boundary, to prevent spurious seg faults caused by the x86 |
| architecture. This doesn't affect Linux systems, but was a major |
| problem on a number of *BSD systems. (Addresses Sourceforge Bug: |
| #2328708) |
| |
| Fix resize2fs's minimum size required for a file system so it doesn't |
| fail when "resize2fs -M" is run. (Addresses RedHat Bugzilla: #519131) |
| |
| Dumpe2fs now prints summary information about the contents of the |
| journal. |
| |
| Avoid printing scary error messages when e2fsck starts running |
| problems on low-memory systems, as it tends to panic and mislead the |
| user. (Addresses Debian Bug: #509529) |
| |
| Fix blkid's modules.dep parser so it handles compressed (.ko.gz) |
| modules files. (Address Red Hat Bug: #518572) |
| |
| Fix tune2fs so it can add a journal when an extent-enabled file system |
| is mounted. (Addresses Launchpad bug: #416648) |
| |
| Update Czech, Indonesian, Polish and Vietnamese translations (from the |
| Translation Project). |
| |
| Update/clarify man pages. (Addresses Sourceforge Bug: #2822186) |
| |
| Fixed various Debian packaging issues --- see debian/changelog for |
| details. (Addresses Debian Bugs: #540111) |
| |
| Programmer's Notes |
| ------------------ |
| |
| The configure script supports the --with-cc, --with-ccopts, and |
| --with-ldopts options. Instead, the more standard use of CC=, |
| CCFLAGS=, and LDFLAGS= in the configure command line is used instead. |
| Also, --with-ld, which never worked, was also removed. |
| (Addresses Sourceforge Bug: #2843248) |
| |
| The in-tree header files are only used if the in-tree uuid or blkid |
| libraries are used. Otherwise, use the system-provided uuid or blkid |
| header files if using the system-provided libraries. |
| |
| Fix some build failures caused by --disable-* configure options. |
| |
| Work around a bug in autoconf 2.64. |
| |
| |
| E2fsprogs 1.41.9 (August 22, 2009) |
| ================================== |
| |
| Fix a bug in e2fsck routines for reallocating an inode table which |
| could cause it to loop forever on an ext4 filesystem with the FLEX_BG |
| filesystem feature with a relatively rare (and specific) filesystem |
| corruption. This fix causes e2fsck to try to find space for a new |
| portion of the inode table in the containing flex_bg, and if that |
| fails, the new portion of the inode table will be allocated in any |
| free space available in the filesystem. |
| |
| Make e2fsck less annoying by only asking for permission to relocate a |
| block group's inode table once, instead of for every overlapping |
| block. Similarly, only ask once to recompute the block group |
| checksums, instead of once for each corrupted block group's checksum. |
| |
| Fix filefrag to avoid print the extent header if the FIEMAP ioctl is |
| not present, and it needs to fall back to using the FIBMAP ioctl. |
| |
| Fix filefrag to correctly print the number of extents for zero-length |
| files. (Addresses Debian Bug: #540376) |
| |
| Filefrag now has a -B option which forces the use of the FIBMAP ioctl |
| to more easily debug the FIBMAP code. |
| |
| Fixed filefrag for non-extent based files. |
| |
| Add a new program, e2freefrag, which displays information about the |
| free space fragmentation in an ext2/3/4 filesystem. |
| |
| Fix inode resizing via tune2fs -I so that it works correctly in the |
| face of non-empty bad blocks inodes, and if the filesystem was |
| formatted using the "mke2fs -E stride=N" option for RAID arrays. |
| |
| Fix regression in ext2fs_extent_set_bmap() caused e2fsck -fD to fail |
| and corrupt large directories if the directory needs to shrink by more |
| than one block. (Addresses Debian Bug: #537510) |
| |
| Fix e2fsck's buggy_init_scritps=1 so that the if the last write and/or |
| last mount times are in the future, they are corrected even if |
| buggy_init_scripts is set. This is needed because otherwise resize2fs |
| will refuse to resize the filesystem, even after running "e2fsck -f". |
| (Addresses Launchpad bug: #373409) |
| |
| E2fsck will now print much fuller information when the last mount time |
| or last written time is in the future, since most people can't seem to |
| believe their distribution has buggy init scripts, or they have a |
| failed CMOS/RTS clock battery. |
| |
| Enhance dumpe2fs to dump the extent information via the 'stat' |
| command, and more detailed extent information via the new command |
| 'dump_extents'. |
| |
| Update French, Polish, Czech, and Swedish translations from the |
| Translation Project. |
| |
| Fixed various Debian packaging issues --- see debian/changelog for |
| details. |
| |
| Programmer's Notes |
| ------------------ |
| |
| Fixed miscellaneous gcc -Wall warnings. |
| |
| Fixed memory leak in error path in ext2fs_block_iterate2() |
| |
| Fixed non-Linux build of the intl directory by adding support for the |
| E/Q/V macros. |
| |
| The bitmap read/write functions now treat uninitialized bitmaps as |
| unallocated; this fixes a number of problems in all e2fsprogs for ext4 |
| filesystems when there is a need to allocate new blocks or inodes, and |
| there aren't any free blocks or inodes in the already-used block |
| groups. |
| |
| Improve ext2fs_extent_set_bmap() to avoid creating new extents which |
| get inserted into the extent tree when they are not needed. |
| |
| |
| E2fsprogs 1.41.8 (July 11, 2009) |
| ================================ |
| |
| Fix resize2fs's online resizing, fixing a regression which in |
| e2fpsrogs 1.41.7. (Addresses Debian Bug: #535452) |
| |
| Fix potential filesystem corruptions caused by using resize2fs to |
| shrinking ext4 filesystems with extents enabled. (Addresses Red Hat |
| Bug: #510379) |
| |
| Optimize uuid_generate() to avoid running uuidd if it is not setuid or |
| setgid and the currently running program doesn't have write access to |
| the uuidd work directory. |
| |
| Add safety checks (for non-Linux systems) so that uuidd isn't run with |
| file descriptors 0, 1, and 2 closed; and if they are closed, uuidd |
| will be careful not to close the file descriptor for its unix domain |
| socket when it detaches itself from the controlling tty. Also add |
| safety checks so that if the unix domain socket between the uuid |
| library and uuidd program is closed for any reason, both the library |
| and the uuidd will return an appropriate error code instead of looping |
| in an infinite loop. |
| |
| The e2croncheck script, which creates an LVM snapshot and then checks |
| the ext3/4 filesystem via the LVM snapshot, has been added to the |
| contrib directory. |
| |
| Fix the filefrag program for files that have more than 144 extents. |
| |
| Update French, Polish, Czech, Indonesian, and Swedish translations from |
| the Translation Project. |
| |
| Fixed various Debian packaging issues --- see debian/changelog for |
| details. (Addresses Debian Bug #535530) |
| |
| Update/clarify man pages. |
| |
| Programmer's Notes |
| ------------------ |
| |
| Fix compilation problem when configured with --disable-uuid. |
| |
| Don't build uuidgen if configured with --disable-uuid. |
| |
| Add the new library function ext2fs_test_inode_bitmap_range(), and |
| optimized ext2fs_test_block_bitmap_range(), which will be needed for |
| future optimizations for e2fsck. |
| |
| Fix makefile dependencies for libcom_err so that the Makefiles work |
| well on non-GNU make program. (Addresses Sourceforge Patches: #2813809) |
| |
| Enhance the build system so that the full set of commands executed by |
| the Makefiles are displayed, instead of the Linux kernel summary |
| output, if the build was configured with --enable-verbose-makecmds, or |
| if GNU make is in use and the V variable is non-null, i.e., via "make |
| V=1". |
| |
| |
| E2fsprogs 1.41.7 (June 29, 2009) |
| ================================ |
| |
| Fix a bug in libext2fs which can cause e2fsck and resize2fs to write |
| uninitialized data into the portion of the inode beyond the first 128 |
| bytes when operating on inodes mapped via extents; potentially |
| corrupting filesystems. |
| |
| Fix memory leaks in e2fsprogs, including a very large memory leak |
| which can cause e2fsck to run out of memory when checking very large |
| filesystems using extents. |
| |
| The logsave program will now filter out the ^A and ^B characters when |
| writing to the console. |
| |
| Harden ext2fs_validate_entry() so that lsdel will not read beyond the |
| end of the block even if the directory block is corrupted. |
| |
| Fix debugfs from core dumping if the logdump command fails to open the |
| output file. |
| |
| Enhance badblocks to print the currently tested block number when |
| interrupted with ^C. |
| |
| Fix lsattr to exit with a non-zero status when it encounters errors. |
| (Addresses RedHat Bugzilla #489841) |
| |
| Fix e2fsprogs to use the same encoding for rec_len in 64k (and larger) |
| filesystems as the kernel when encoding rec_len >= 64k. For 64k |
| filesystems (currently all that is supported by e2fsprogs, this is |
| only a minor corner case). |
| |
| Resize2fs will now update the journal backup fields in the superblock |
| if the journal is moved; this avoids an unnecessary full fsck after |
| resizing the filesystem. (Addresses RedHat Bugzilla: #505339) |
| |
| Fix libext2fs to properly initialize i_extra_size when creating the |
| journal and resize inodes. |
| |
| Change badblocks to allow block sizes larger than 4k. |
| |
| Fix the filefrag program so it correctly checks for errors from the |
| fiemap ioctl. |
| |
| Update Chinese and Czech translation from the Translation Project. |
| |
| Clean up various man pages. (Addresses Debian Bug #531385 and #523063) |
| |
| |
| Programmer's Notes |
| ------------------ |
| |
| Add --disable-libuuid option to configure which uses an in-system |
| installed version of libuuid; the private version is enabled by |
| default. |
| |
| Add --valgrind-leakcheck option to the test_script program which runs |
| valgrind with the appropriate options to find memory leaks. |
| |
| |
| E2fsprogs 1.41.6 (May 30, 2009) |
| =============================== |
| |
| Fix a critical regression in e2fsck introduced version 1.41.5 which |
| can undo updates to the block group descriptors after a journal replay. |
| |
| If e2fsck receives an I/O error while replaying the journal, prompt |
| the user whether they want to ignore the error or not; if e2fsck is |
| run in preen mode, force fsck to abort the preen pass. |
| |
| Fix a bug which would cause e2fsck to core dump if the filesystem |
| contains a corrupt extent header, and the user declines to clear the |
| inode. (Addresses Sourceforge Bug: #2791794) |
| |
| Fix e2fsck to restart only once in the case of multiple block groups |
| which inodes in use that are in the uninitialized part of the block |
| group's inode table. |
| |
| To reduce user confusion, if the /etc/mtab file is missing |
| ext2fs_check_mount_point and ext2fs_check_if_mounted will return a |
| new, explicit error code to indicate this case. This will cause |
| e2fsck to give a clearer error message when the user is using buggy |
| rescue CD's that don't properly set up /etc/mtab. (Addresses Debian |
| Bug: #527859) |
| |
| Fix e2fsck so that if the primary group descriptors are corrupted, but |
| the backup superblock is entirely invalid, to go back to using (and |
| fixing) the primary group descriptors instead of completely giving up |
| on the filesystem. (Addresses Debian Bug: #516820) |
| |
| Change e2fsck to not abort a preen pass if an inode is found to have |
| i_file_acl_hi non-zero. Ext3 filesystems don't care, and newer |
| kernels (post 2.6.29) will ignore this field. So let's fix it |
| automatically during the preen pass instead of forcing the user to fix |
| this up manually. (Addresses Debian Bug: #526524) |
| |
| Add resource tracking for e2fsck passes 1b through 1d. |
| |
| Speed up e2fsck by eliminating unnecessary journal checks if the |
| filesystem is already mounted and doesn't need recovery (since the |
| kernel would have run the journal when the filesystem was mounted.) |
| Also speed up e2fsck by avoiding unnecessary block group descriptor |
| updates in ext2fs_close(). |
| |
| Add support to chattr to migrate inodes from using direct/indirect |
| blocks to extents. |
| |
| Avoid corrupting the filesystem if there is an attempt to shrink a |
| filesystem using resize2fs smaller than possible by making |
| ext2fs_set_bmap() more careful not to delete the old block until the |
| new block can be inserted. In addition, fix a bug in how the minimum |
| size of the filesystem (plus a safety margin) is calculated, and |
| modify resize2fs to refuse to shrink the filesystem below that minimum |
| size without the force flag. |
| |
| Teach blkid to try to figure out DM device names using take advantage |
| of information in sysfs when running on kernels (2.6.29 and later) |
| which provide this information in /sys/block/dm-<N>/dm/name; this is |
| much faster than scanning for the device number in /dev/mapper. |
| |
| Fix blkid to prefer /dev/mapper/<name> device names instead of the |
| private /dev/dm-X names. |
| |
| Add an -a option to debugfs's close_filesys command which writes any |
| changes to the superblock or block group descriptors to all of the |
| backup superblock locations. |
| |
| Add support to the filefrag program to use the FIEMAP ioctl. |
| |
| Update Chinese translation from the Translation Project. |
| |
| Clean up various man pages. (Addresses Red Hat Bugzilla: #502971 and |
| Launchpad Bug: #381854) |
| |
| Fixed various Debian packaging issues --- see debian/changelog for |
| details. (Addresses Debian Bug #506064) |
| |
| |
| Programmer's Notes |
| ------------------ |
| |
| Add test code to make sure e2fsck's problem.c doesn't have two problem |
| codes assigned to duplicate values. |
| |
| Avoid using a hard-coded path for /bin/rm in block's test_probe.in. |
| (Addresses Sourceforge Bug: #2780205) |
| |
| Clean up e2fsck by removing #ifdef RESOURCE_TRACK by adding an empty |
| function declaration for init_resource_track() and |
| print_resource_track() when RESOURCE_TRACK is not defined. |
| |
| The test code which is used to build the tst_csum program has been |
| moved from from tst_csum.c into csum.c under an #ifdef DEBUG to to |
| avoid compile problems caused by not having a prototype for |
| ext2fs_group_desc_csum(). (Addresses Sourceforge Bug #2484331) |
| |
| Update the config.guess and config.sub file to the latest from the |
| FSF, to allow e2fsprogs to build on the avr32 platform. (Addresses |
| Debian Bug: #528330) |
| |
| Add a new function, ext2fs_extent_open2(), which behaves like |
| pext2fs_extent_open(), but uses the user-supplied inode structure |
| when opening an extent instead of reading the inode from disk. |
| |
| |
| E2fsprogs 1.41.5 (April 23, 2009) |
| ================================= |
| |
| Fix a number of filesystem corruption bugs in resize2fs when growing |
| or shrinking ext4 filesystems off-line (i.e., when the ext4 filesystem |
| is not mounted). |
| |
| Debugfs can now set i_file_acl_high via the set_inodes_field command, |
| and print a 64-bit file acl. This is useful for debugging filesystem |
| corruptions where the high bits of i_file_acl_high are set. E2fsck |
| will detect and fix non-zero i_file_acl_high on 32-bit filesystems |
| since some Linux kernel versions pay attention to this field even when |
| they shouldn't. |
| |
| Speed up e2fsck when checking clean filesystems by avoiding |
| unnecessary block reads, and coalescing the block group descriptor |
| blocks so they are read using a single read operation. |
| |
| The libuuid library will now close all file descriptors before running |
| uuidd. This avoids problems when the calling program has open sockets |
| which then never get closed because uuidd is a long-running helper |
| daemon. (Addresses Launchpad bug: #305057) |
| |
| In order to avoid unnecessary full filesystem checks by e2fsck after |
| an on-line resize, e2fsck will ignore the NEEDS_RECOVERY flag set on |
| the backup superblocks. (Addresses Red Hat Bugzilla: #471925) |
| |
| Mke2fs will avoid trying to create the journal when run in |
| superblock-only mode (mke2fs -S), since the left-over journal in the |
| inode table will cause mke2fs to fail. |
| |
| Fix a bug in libext2fs functions that check to see if a particular |
| device or filesystem image is mounted, which would cause these |
| functions to report that a file identical to the (relative) pathname |
| used by a pseudo-filesystem was mounted when in fact it was not. |
| |
| Update Czech translation from the Translation Project. |
| |
| Add Chinese (simplified) translation from the Translation Project. |
| |
| Fix support for external journals (which was broken in e2fsprogs |
| 1.41.4). |
| |
| Fix a regression in debugfs where the "stat" command when no |
| filesystem was open would cause debugfs to crash with a segmentation |
| violation. |
| |
| Starting in the 2.6.29 linux kernel, the ext4 filesystem driver can be |
| used to support filesystems without a journal. Update the blkid |
| library so it understands this. |
| |
| The blkid library will remove an entry from the blkid cache |
| representing the entire disk if partitions are found, since presumably |
| the device previously had no partition table, but has now transitioned |
| to using a partition table. |
| |
| Add a check to mke2fs and tune2fs that the argument to the -m option |
| (which specifies the reserved ratio) must be greater than zero. |
| (Addresses Debian Bug: #517015) |
| |
| Add support for tracking the number kilobytes written to the |
| filesystem via the superblock field s_kbytes_written. It will be |
| updated by the kernel as well as by e2fsprogs programs which write to |
| the filesystem. This is useful for tracking the wear to filesystems |
| on Solid State Drives. |
| |
| Fix compatibility issue in the libext2fs info file and makeinfo |
| version 4.12. (Addresses Red Hat Bugzilla: #481620) |
| |
| Update/clarify man pages. (Addresses Debian Bug: #515693, #365619) |
| |
| Fixed various Debian packaging issues --- see debian/changelog for |
| details. (Addresses Debian Bug: #506279) |
| |
| Programmer's Notes |
| ------------------ |
| |
| Fix Hurd compilation problem in e2fsck and tune2fs (Addresses Debian |
| Bug: #521602) |
| |
| Fix various gcc compilation warnings and other programming cleanups. |
| (Addresses Red Hat Bugzilla: #486997) |
| |
| Add support for building the blkid command statically. |
| |
| Add support for disabling the built-in blkid library in favor of a |
| system-installed blkid implementation via the configure option |
| --disable-libblkid. |
| |
| |
| E2fsprogs 1.41.4 (January 27, 2009) |
| =================================== |
| |
| Fixed a bug which could sometimes cause blkid to return an exit value |
| of zero for a non-existent device (Addresses Debian Bug: #502541) |
| |
| Blkid will now recognize ext3 filesystems that have the test_fs flag |
| set as ext3 filesystems. |
| |
| The blkid library will now recognize btrfs filesystems and swap |
| devices currently used by user-level software suspend. |
| |
| Tune2fs now updates the block group checksums when changing the UUID |
| to avoid causing e2fsck to complain vociferously at the next reboot. |
| |
| Tune2fs's inode size resizing algorithms have been fixed so it is not |
| vastly inefficient for moderate-to-large filesystems, due to some |
| O(n**2) and O(n*m) algorithms that didn't scale well at all. |
| |
| Fix tune2fs's inode resizing algorithm so it will not corrupt |
| filesystems laid out for RAID filesystems; in addition, tune2fs will |
| refuse to change the inode size for filesystems that have the flex_bg |
| feature enabled. (This is a limitation in the current implementation |
| of tune2fs -I.) |
| |
| E2fsprogs 1.41 broke debugfs's logdump command for normal ext3/4 |
| filesystems with 32-bit block numbers, when the headers for 64-bit |
| block numbers was added. This regression has been fixed. |
| |
| Debugfs's ncheck command has been fixed to avoid printing garbage |
| characters at the end of file names. |
| |
| Fix resize2fs for ext4 filesystems. Some blocks that that need moving |
| when shrinking filesystems with uninit_bg feature would not be moved. |
| In addition, blocks and inode table blocks were not being correctly |
| freed when shrinking filesystems with the flex_bg feable, which caused |
| resize2fs -M to fail. Finally, when blocks are moved, make sure the |
| uninitialized flag in extents is preserved. |
| |
| Fix bug which caused dumpe2fs to abort with an error if run on a |
| filesystem that contained an external journal. |
| |
| Some distributions used "mke3fs" as an alias for "mkfs.ext3"; check |
| for this in argv[0] to provide better legacy support for these |
| distributions. This is a practice that should NOT be continued, |
| however. |
| |
| Mke2fs now has a new option -U, which allows the user to specify the |
| UUID that should be used for the new filesystem. |
| |
| Mke2fs will treat devices that are exactly 16TB as if they were 16TB |
| minus one block. This allows users who have read that ext3 supports |
| up to 16TB filesystems and who create a 16TB LVM to not get confused, |
| since the true limit is really 16TB minus one block. |
| |
| E2fsck will no longer abort an fsck run if block group has an errant |
| INODE_UNINIT flag. |
| |
| E2fsck now distinguishes between fragmented directories and fragmented |
| files in verbose mode statistics and in the fragcheck report. |
| |
| Fix a bug in e2fsck which caused it double count non-contiguous |
| extent-based inodes. |
| |
| E2fsck will leave some slack space when repacking directories to allow |
| room for a few directory entries to be added without causing leaf |
| nodes to be split right away. |
| |
| Fix a bug which caused e2fsck to crash when it comes across a |
| corrupted interior node in an extent tree with the error message: |
| "Error1: Corrupt extent header on inode XXXXXX" |
| |
| E2fsck problem descriptions involving the journal are no longer |
| referred to as "ext3" problems, since ext4 filesystems also have |
| journals. |
| |
| Fix a long-standing bug in e2fsck which would cause it to crash when |
| replying journals for filesystems with block sizes greater than 8k. |
| |
| Update Catalan translation from the Translation Project. |
| |
| Fixed various Debian packaging issues --- see debian/changelog for |
| details. (Addresses Debian Bugs: #503057, #502323, #511207) |
| |
| Programmer's Notes |
| ------------------ |
| |
| Fix build of e2fsck.profiled, and add support for building profiled |
| binaries in the misc directory if configured with --enable-profile. |
| |
| The ext2fs_open() function now performs more sanity checks on the |
| superblock to avoid potential divide by zero errors by other parts of |
| library. |
| |
| The ext2fs_read_inode_full() function now has a safety check to avoid |
| a segmentation fault on corrupted filesystems. |
| |
| The ext2fs_new_inode() function now has a sanity check so that if the |
| s_first_inode field in the superblock is insane, it will return |
| EXT2_ET_INODE_ALLOC_FAIL instead of returning an invalid inode number. |
| |
| To avoid segmentation faults, ext2fs_block_alloc_stats() and |
| ext2fs_inode_alloc_stats() now validates the passed inode or block |
| number to avoid overrunning an array boundary. |
| |
| Various signed/unsigned errors for variables containing block numbers |
| have been fixed. |
| |
| Accommodations for gcc's stupidity in not realizing that constant |
| strings that do not contain a '%' character are safe to use in format |
| strings have been made so that distributions that want to compile |
| e2fsprogs with -Werror=format-security have an easier time doing so. |
| |
| Added a new 64-bit getsize interface, ext2fs_get_device_size2(). |
| |
| Added the utility make-sparse.c to the contrib directory. |
| |
| The ext2fs_block_iterate2() function now reflects errors from |
| ext2fs_extent_set_bmap() to the caller, if the callback tries to |
| change a block on an extent-based file, and ext2fs_extent_set_bmap() |
| fails for some reason (for example, there isn't enough disk space to |
| split a node and expand the extent tree. |
| |
| The ext2fs_block_iterate2() function will preserve the uninit flag in |
| extents when the callback function modifies a block in an extent-based |
| file. |
| |
| E2fsck will now flag filesystems that have an insane s_first_ino field |
| in their superblock, and attempt to use a backup superblock to repair |
| the filesystem. |
| |
| |
| E2fsprogs 1.41.3 (October 12, 2008) |
| =================================== |
| |
| E2fsck has been fixed so it prints the correct inode number for |
| uinit_bg related problems. |
| |
| E2fsck will now offer to clear the test_fs flag if the ext4 filesystem |
| is available on linux. This can be disabled via a configuration |
| option in /etc/e2fsck.conf. |
| |
| Fix a file descriptor leak in libblkid when checking to see if an ext4 |
| or ext4dev module exists. |
| |
| Fix a bug in e2fsck where in preen mode, if there are disk I/O errors |
| while trying to close a filesystem can lead to infinite loops. |
| (Addresses Red Hat Bugzilla #465679) |
| |
| Fix a bug in resize2fs where passing in a bogus new size of 0 blocks |
| will cause resize2fs to drop into an infinite loop. (Addresses Red |
| Hat Bugzilla: #465984) |
| |
| Add a check in the Unix I/O functions in libext2fs so that when a |
| device is opened read/write, return an error if the device is |
| read-only using the BLKROGET ioctl. |
| |
| Fix debugfs's ncheck command so that it prints all of the names of |
| hardlinks in the same directory. |
| |
| Fix a bug in libblkid so it correctly detects whether the ext4 and |
| ext4dev filesystems are available, so that the ext4dev->ext4 |
| fallback code works correctly. |
| |
| Programmer's Notes |
| ------------------ |
| |
| Fix a parallel build problem by making sure util/subst is built before |
| trying to build the lib/et directory. (Addresses Sourceforge Bug: |
| #2143281) |
| |
| Updated "make depend" information for crc16.o |
| |
| |
| E2fsprogs 1.41.2 (October 2, 2008) |
| ================================== |
| |
| Fix e2fsck's automatic blocksize detection. This fixes a regression |
| from e2fsprogs 1.40.7 which caused e2fsck to fail if the user |
| specifies a block number using the -b option if the blocksize option |
| isn't also specified using -B. Unfortunately, users very commonly |
| invoke e2fsck using "e2fsck -b 32768 /dev/hdXXX" to use the backup |
| superblock; in fact e2fsck will often suggest this kind of command |
| line. Oops. |
| |
| Enhance the debugfs's "ncheck" command so it will print all of the |
| pathnames for the specified inodes. (Previously, in some cases ncheck |
| might not print a pathname for an inode at all if some of the other |
| inodes had multiple hard links.) |
| |
| Enhance debugfs's "hash" command so the hash seed can be specified via |
| a command-line option. In addition, allow the hash algorithm to be |
| specified by name instead of just by number. |
| |
| Fix e2fsck so that we don't accidentally print the translation file's |
| header when asking the user a custom question so there is no prompt |
| defined for a particular problem record. For example, the question |
| "Run journal anyway" will get the PO header tacked on because e2fsck |
| erroneously passed the null string to _(). (Addresses Launchpad Bug: |
| #246892) |
| |
| Enhance badblocks so that it can test a normal file which is greater |
| than 2GB. |
| |
| Enhance the badblocks command so that it displays the time and |
| percentage complete when in verbose mode. (Addresses Debian Bug: |
| #429739) |
| |
| Fix a potential memory leak in a error handling path in debugfs's |
| ncheck function. |
| |
| Fix a potential memory corruption problem if a memory allocation fails |
| in resize2fs. |
| |
| Fix the usage message for debugfs's logdump command to be consistent |
| with its man manpage. |
| |
| Update Polish, French, Vietnamese, Dutch, Indonesian, German, Czech, |
| and Swedish translations from the Translation Project. |
| |
| Add documentation for the file I/O functions to the libext2fs.texinfo |
| file. (Addresses Debian Bug: #484877) |
| |
| Update and clarified various man pages. (Addresses Launchpad Bug |
| #275272; Addresses Debian Bugs: #498100, #498101, #498102, #498103) |
| |
| Fixed various Debian packaging issues --- see debian/changelog for |
| details. (Addresses Debian Bug: #497619) |
| |
| Programmer's Notes |
| ------------------ |
| |
| Fix a potential file descriptor leak in libcom_err by setting the |
| close-on-exec flag for a fd used for debugging. (Addresses Red Hat |
| Bugzilla #464689) |
| |
| Fix a potential race in libcom_err by using sem_post/sem_init. SuSE |
| has been carrying a patch for a long time to prevent a largely |
| theoretical race condition if a multi-threaded application adds and |
| removes error tables in multiple threads. Unfortunately SuSE's |
| approach breaks compatibility by forcing applications to link and |
| compile with the -pthread option; using pthread mutexes has |
| historically been problematic. We fix this by using sem_post/sem_init |
| instead. |
| |
| Fix e2fsprogs-libs build failure due to 'subs' target. (Addresses |
| Sourceforge Bug: #2087502) |
| |
| Avoid linking e2initrd_helper, debugfs, blkid, and fsck with unneeded |
| libraries when using ELF shared libraries. |
| |
| Fix ELF shared library when building on systems that don't already |
| have the e2fsprogs shared libraries already installed. (Addresses |
| Sourceforge Bug: #2088537) |
| |
| Fix the pkg-config files so they work correctly when linking with |
| static libraries and fix the include directory so programs don't have |
| to use #include <ext2fs/ext2fs.h>, but can use #include <ext2fs.h> |
| instead. (Addresses Sourceforge Bug: #2089537) |
| |
| Make sure ext2fs_swab64() is compiled for all platforms, and not just |
| for x86. (Addresses Debian Bug: #497515) |
| |
| Remove the unused ext2fs_find_{first,ext}_bit_set() functions for all |
| non-x86 platforms. (They had been removed for x86 earlier.) |
| |
| Fix diet libc compilation support, which had bitrotted due to lack of |
| TLC. Fixing this improves general portability. |
| |
| When installing the link library when using ELF shared libraries, |
| avoid using absolute pathnames if the link library and the shared |
| library are installed in the same directory. (Addresses Sourceforge |
| Bug: #1782913) |
| |
| Fix gen-tarball so it will work even if the top-level directory has |
| been renamed to something other than "e2fsprogs". Also make |
| gen-tarball print the size of the resulting tar.gz file. |
| |
| |
| E2fsprogs 1.41.1 (September 1, 2008) |
| ==================================== |
| |
| Many people are forgetting to update their mke2fs.conf file, and this |
| causes ext3, ext4, and ext4dev filesystems won't get created with the |
| proper features enabled. We address this in two ways. First, mke2fs |
| will issue a warning if there is not definition for an ext3, ext4, or |
| ext4dev filesystem and the user is trying to create such a filesystem |
| type. Secondly, when installing from a source build, "make install" |
| will provide basic configuration file handling for /etc/mke2fs.conf. |
| If it exists, and does not mention ext4dev, it will be moved aside to |
| /etc/mke2fs.conf.e2fpsrogs-old and the new /etc/mke2fs.conf file will |
| be installed. If the existing /etc/mke2fs.conf file does mention |
| ext4dev, then "make install" will install official mke2fs.conf file as |
| /etc/mke2fs.conf.e2fsprogs-new and issue a message to the user that |
| they should look to see if any changes need to be merged. |
| |
| The mke2fs program will now create the journal in the middle of the |
| filesystem, since this minimizes seek times on average for fsync-heavy |
| workloads. In addition, mke2fs will now create journals using extents |
| for filesystems that support them. This results in a more efficient |
| encoding for the journal since it eliminates the need for using |
| indirect blocks. |
| |
| The mke2fs program will avoid allocating an extra block to the |
| journal. (Addresses Sourceforge Bug: #1483791) |
| |
| Mke2fs will correctly enforce the prohibition against features |
| (specifically read-only features) in revision 0 filesystems. (Thanks |
| to Benno Schulenberg for noticing this problem.) |
| |
| Mke2fs previously would occasionally create some slightly non-optimally |
| placed inode tables; this bug has been fixed. |
| |
| The mke2fs and tune2fs programs now print the correct usage message |
| describing the maximum journal size. (Addresses Debian Bug: #491620) |
| |
| Add support for setting the default hash algorithm used in b-tree |
| directories in tune2fs (from a command-line option) or mke2fs (via |
| mke2fs.conf). In addition, change the default hash algorithm to |
| half_md4, since it is faster and better. |
| |
| The blkid library will now recognize MacOS hfsx filesystems, and |
| correctly extract the label and uuid for hfs, hfsx, and hfsplus |
| filesystems. (Addresses Sourceforge Feature Requests: #2060292) |
| |
| The blkid library has improved detection of JFS and HPFS filesystems. |
| (Addresses Launchpad Bug: #255255) |
| |
| The blkid library is now much more efficiently handling devicemapper |
| devices, mainly by no longer using the devicemapper library. This can |
| speed up access for systems with a large number of device mapper |
| devices. |
| |
| Blkid had a number of cache validation bugs in libblkid that have been |
| fixed. (Addresses Debian Bug: #493216) |
| |
| Resize2fs will now properly close out the "updating inode references" |
| progress bar so there is a newline printed before printing the final |
| "resize is successful" message. |
| |
| Resize2fs will now correctly handle filesystems with extents and/o |
| uninitialized block groups correctly when file/directory blocks need |
| to relocated (i.e., when shrinking a filesystem or if the resize_inode |
| is not present). To support this, the ext2fs library now supports |
| initializing inode and block bitmaps that are not yet initialized when |
| allocating them using ext2fs_new_block() and ext2fs_new_inode(). In |
| addition, e2fs_block_iterate2() can now support changing the location |
| of interior nodes of an extent tree, and ext2fs_extent_set_bmap() has |
| been optimized to avoid creating unnecessary new extents when updating |
| the location of blocks in the extent tree. This will also help out |
| e2fsck's recovery of obscurely corrupted filesystems with extents, |
| when blocks are claimed by multiple inodes. |
| |
| Add support for on-line resizing ext4 filesystem with the flex_bg |
| filesystem feature. The method for doing so is not optimal, but to do |
| a better job will require kernel support. |
| |
| E2fsprogs 1.41.0 introduced a bug in libext2fs which caused e2image and |
| debugfs programs to not be able to read e2image files; the signed |
| vs. unsigned bug in the code which read bitmaps from the e2image has |
| been fixed. (Addresses Debian Bug: #495830) |
| |
| Resize2fs is now correctly managing the directory in-use counts when |
| shrinking filesystems and directory inodes needed to be moved from one |
| block group to another. This bug has been around since e2fsprogs |
| 1.26, and is largely harmless, but does cause a filesystem corruption |
| which will be flagged by e2fsck after the filesystem has been shrunk. |
| |
| E2fsck will no longer issue spurious complaints about the inode size |
| caused by very large extent-based files, and by blocks reallocated |
| using fallocate() with the FALLOC_FL_KEEP_SIZE option. (Addresses |
| Kernel Bugzilla: #11341) |
| |
| Mke2fs will now set the creation timestamp on the lost+found directory |
| and the root directory. (More generally, all new inodes created using |
| the ext2fs library will correctly set the creation timestamp.) |
| |
| E2fsck now correctly calculates ind/dind/tind statistics in the |
| presence of extent-based files. In addition, "e2fsck -v" will report |
| statistics of the depth of extent trees in the filesystem. E2fsck can |
| also give an inode fragmentation report using "e2fsck -E fragcheck" |
| which can be useful when debugging the kernel block allocation |
| routines. |
| |
| Fix support for empty directory blocks in ext4 filesystems with 64k |
| blocksize filesystems. |
| |
| E2fsck will now print the depth of corrupt htree directories. |
| |
| Debugfs's htree command now correctly understands extent-based |
| directories. It will also print out the minor hash as well as the |
| major hash. |
| |
| Debugfs has a new command which will print the supported features of |
| e2fsprogs, to enable scripts to know whether the installed version of |
| e2fsprogs can support a specific feature. |
| |
| Debugfs will now write files using extents for filesystems that |
| support them. |
| |
| The error message printed by "tune2fs -I" if the inode size was too |
| small was rather confusing, so it has been improved. Also, we won't |
| try to create an undo log until we know that command-line-specified |
| parameters such as "tune2fs -I <inode size>" are valid. |
| |
| Given some filesystems found "in the wild" that had non-zero block |
| group checksums even though the uninit_bg/gdt_sum feature was not |
| enabled, e2fsck would issue spurious error messages. Teach |
| ext2fs_group_desc_csum_verify() to ignore the block group checksum |
| entirely if the feature flag is not set. (Addresses Debian Bug: |
| #490637) |
| |
| The blkid program will now print out a user-friendly listing of all of |
| the block devices in the system and what they contain when given the |
| -L option. (Addresses Debian Bug: #490527) |
| |
| The filefrag program now has a more accurate calculation for the |
| number of ideal extents. (Addresses Debian Bug: #458306) |
| |
| The test I/O manager is now enabled by default, but its overhead is |
| only incurred when it would be enabled via the TEST_IO_FLAGS or |
| TEST_IO_BLOCK environment variables. |
| |
| Typographical errors in various program strings and usage messages |
| have been fixed; most of these were pointed out by the e2fsprogs |
| message catalog translators. (Thanks, translators!) |
| |
| Update and clarified various man pages, as well as some typographical |
| errors in the libext2fs texinfo file. |
| |
| Fixed various Debian packaging issues --- see debian/changelog for |
| details. |
| |
| Add Indonesian and update French, Polish, Dutch, German, Swedish, |
| 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 variety of environments, including big-endian systems and |
| when cross-building e2fsprogs for embedded systems. (Addresses |
| Sourceforge Bug: #2019287) |
| |
| The ext2fs_extent_set_bmap() had some bugs when setting the first |
| block in a file, or when replacing a single block extent. Those cases |
| fortunately were came up relatively rarely when e2fsck was checking |
| files, but caused some problems when resize2fs was shrinking |
| extent-based files. |
| |
| Fix a potential core-dumping bug in libe2p's iterate_on_dir() |
| function. |
| |
| Various ext2fs library functions --- ext2fs_block_iterate2(), |
| ext2fs_initialize() and ext2fs_extent_open() --- now correctly free |
| allocated memory to avoid memory leaks in all of their error return |
| paths. |
| |
| Ext2ed was failing to build because masix support had been removed in |
| the rest of e2fsprogs, so ext2ed no longer has masix support, either. |
| |
| The configure script now respects the LDFLAGS environment variable if |
| it is set when configure is called. (Addresses Sourceforge Feature |
| Request: #1937287) |
| |
| Libuuid is now more portable to the Windows platform. (Addresses |
| Sourceforge Feature Request: #1937287) |
| |
| The configure script now uses AC_MSG_{RESULT,WARN,ERROR} instead of |
| bare echo commands so that configure flags such as --quiet work |
| correctly. (Addresses Sourceforge Patches: #2058794) |
| |
| A few uses of sprintf have been removed from the ext2fs library to |
| make life easier for bootloaders with a limited libc environment. |
| (Addresses Sourceforge Bug: #2049120) |
| |
| The ext2fs_read_inode() checks the validity of the inode number passed |
| to it earlier, to avoid doing some needless work when it would fail |
| anyway. |
| |
| The ext2fs_open() checks the validity of the blocksize parameter |
| passed to it earlier, to avoid doing some needless work when it would |
| fail anyway. |
| |
| Disable a very annoying automatic "%.sh -> %" GNU make rule in the |
| top-level Makefile. That automatic rule is used to better support |
| SCCS, but it caused problems for a particular niche distribution which |
| likes to use configure.sh files to store the configure options used to |
| build a package. Unfortunately GNU make will use the configure.sh to |
| replace the configure script, resulting in a self-inflicted fork bomb |
| leading to an out-of-memory crash. |
| |
| To support old GNU C compilers don't use C99/C++ comments, but only |
| K&R style comments, and don't try to use __builtin_expect if __GNUC__ |
| is less than 3. (__builtin_expect is only supported for gcc versions |
| 2.96 and up, and it's tricky to check for gcc 2.95 vs gcc 2.96; since |
| this is an optimization, we only try to use __builtin_expect for gcc 3 |
| and up.) |
| |
| In e2fsck's crc routines, make sure we use WORDS_BIGENDIAN instead of |
| __LITTLE_ENDIAN, which are only defined by glibc's header files and |
| hence isn't portable. |
| |
| For the convenience for some distributions that need a static tune2fs, |
| the Makefile for misc/ now has a tune2fs.static target. |
| |
| The ext2fs_block_iterate2() function now supports BLOCK_FLAG_APPEND |
| for extent-based files |
| |
| The ext2fs_bmap() function now supports BMAP_ALLOC for extent-based |
| files. |
| |
| All source files no longer have any trailing white space. |
| |
| The io_channel_read_blk64() and io_channel_write_blk64() functions are |
| now functions instead of C preprocessor macros to provide better |
| forward compatibility. |
| |
| The e2fpsrogs translation template now expands the @x abbreviation. |
| |
| Various namespace leakages in libblkid, libe2p, and libext2fs have |
| been fixed. |
| |
| Fix a parallel build problem in e2fsprogs. |
| |
| E2fsprogs is now more portable to Solaris. |
| * blkid no longer assumes that the TIOCGSIZE and TIOCGWINSZ ioctl's |
| are always present. |
| * Scripts do not assume that /bin/true is always in /bin |
| * Don't use __FUNCTION__ since Solaris's C99 doesn't support it. |
| * Flush stdio handles before calling setbuf(), since Solaris will |
| discard any pending output to the stream. |
| * Define _XOPEN_SOURCE to 600 since Solaris's header files are very |
| picky about which C compiler can be used 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 advanced shell constructs such as $(). |
| |
| The "make rpm" command will now take some extra configure options from |
| the build environment without needing to patch the source tree. |
| |
| The ext2fs_add_dir_block() function will now grow the dblist more |
| aggressively as an optimization to avoid copying the array too often. |
| |
| The e2fsck_write_bitmaps() will write the block and inode bitmaps |
| together instead of in two passes. |
| |
| |
| E2fsprogs 1.41 (July 10, 2008) |
| ============================== |
| |
| Add support for ext4 filesystem features, in particular extents, |
| uninit_bg, flex_bg, huge_file, and dir_nlink features. Also add |
| support for checking journal checksums. Debugfs will print new |
| superblock and inode fields that were defined for ext4. For example, |
| the nanosecond and i_version fields of an inode, and the |
| s_min_extra_isize and s_wanted_extra_isize fields from the superblock. |
| Note: Resize2fs doesn't currently support the combination of flex_bg |
| and !resize_inode. (Addresses Debian Bug: #388452, #425477) |
| |
| Tune2fs can support migrating a filesystem from using 128 byte inodes |
| to 256 byte inodes, so it can take advantage of the full features of |
| ext4. |
| |
| Add support for "undo" support. E2fsck and mke2fs can optionally |
| record an undo log which can replayed by the program e2undo. |
| |
| E2fsck could damage a filesystem by trying to relocate inode tables |
| due to corrupted block group descriptors, where the attempted inode |
| table relocation would do far more harm than good. E2fsck has been |
| fixed to detect this these sorts of corrupted block group descriptors |
| much earlier in e2fsck processing, so it can try to use the backup |
| superblock and block group descriptors first. This should be a much |
| better strategy for recovering these types of corrupted filesystems. |
| (Addresses Sourceforge Bug: #1840291) |
| |
| E2fsck will display a more understandable message when the last check |
| field in the superblock is in the future. (Addresses Debian Bug: |
| #446005). |
| |
| E2fsck now performs more extensive and careful checks of extended |
| attributes stored in the inode. |
| |
| Enhance mke2fs to print a more explanatory error message when |
| ext2fs_get_device_size() returns EFBIG. (Addresses Debian Bug: |
| #488663) |
| |
| Fix mke2fs to use a default block size of 4k when formatting an |
| external journal device. This is done by using a fixed filesystem |
| type list that consists only of the single filesystem type "journal" |
| when looking up configuration keys in /etc/mke2fs.conf. (Addresses |
| Debian Bug: #488663) |
| |
| Speed up how mke2fs writes the journal data blocks by writing the disk |
| blocks in larger chunks. |
| |
| Fix blkid handling of stale devices. Fix a bug which could cause a |
| core dump while garbage collecting the blkid cache, and assure that |
| blkid_find_dev_with_tag() never returns a non-existent device. Also, |
| if a filesystem is found at a new /dev location, eliminate any |
| duplicate stale entries which can not be verified. |
| (Addresses Debian Bugs: #487758, #487783) |
| |
| Add more paranoid checks for LVM volumes and swap partitions in |
| blkid's probe function, to reduce the chances of false positives. |
| |
| The mke2fs program now has a much more sophisticated system for |
| controlling configuration parameters of a newly created filesystem |
| based on a split filesystem and usage type system. The -t option to |
| mke2fs was a deprecated alias to -c; it now specifies a filesystem |
| type (ext2, ext3, ext4, etc.), while the -T option can now be a comma |
| separated usage list. The filesystem type information and type |
| information is used to extract configuration parameters from the |
| /etc/mke2fs.conf file. |
| |
| The mke2fs program will no longer complain and request the -f option |
| when the user tries to create a filesystem with greater than 2**31 |
| blocks. |
| |
| When creating a filesystem for the GNU Hurd use a fs-type of Hurd and |
| adjust the mke2fs.conf file so filesystems for the Hurd are created |
| with a blocksize of 4096 and inode size of 128, which is all it knows |
| how to handle. (Addresses Debian Bug: #471977) |
| |
| Mke2fs will always make sure that lost+found always has at least 2 |
| blocks, even for filesystems with very large blocksizes (i.e., 64kb). |
| |
| Resize2fs will now print the minimum needed filesystem size if given |
| the -P option, and will resize the filesystem to the smallest possible |
| size if given the -M option. |
| |
| Fix resize2fs to clean up the resize_inode if all of the reserved gdt |
| blocks are consumed during an off-line resize. |
| |
| The "ls" command in debugfs now supports the -p option, which causes |
| it to quote the filenames so that spaces or tabs in directory entries |
| are easily visible. (Addresses Red Hat Bugzilla: #149480; Addresses |
| Sourceforge Feature Request: #1201667) |
| |
| Fix a potential off-by-one buffer overflow 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 libraries 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. |
| |