1E2fsprogs 1.39 (May 29, 2006) 2============================= 3 4Fix 32-bit cleanliness in e2fsprogs so that we can support filesystems 5between 2**31 and 2**32 blocks. 6 7Change mke2fs to use /etc/mke2fs.conf as a configuration file to 8configure the filesystem features, blocksize, and inode_ratio for 9different filesystem types. 10 11Mke2fs will now create filesystems hash trees and on-line resizing 12enabled by default, based on the new /etc/mke2fs.conf file. 13 14The e2fsprogs tools (resize2fs, e2fsck, mke2fs) will open the 15filesystem device node in exclusive mode to prevent accidents by 16system administrators. In the case of resize2fs and mke2fs, it will 17only use exclusive mode if the filesystem is not mounted. 18 19Fixed a bug in mke2fs which caused it to to fail when creating the 20resize inode for large filesystems. (Addresses Debian Bug #346580) 21 22When allocating space for the RAID filesystems with the stride 23parameter, mke2fs will now place each portion of the group's inode 24table right up after the superblock (if present) in order to minimize 25fragmentation of the free space. 26 27Speed up mke2fs and e2fsck by writing inode and block bitmaps more 28efficiently by writing the inode and block bitmaps in one pass, thus 29reducing the number of disk seeks required. 30 31Add support for on-line resizing to resize2fs. 32 33Fix blkid library so that logic to determine whether or not a device's 34cached information in /etc/blkid.tab needs to be verified or not 35doesn't get confused by a system clock which is insane (for example, 36if the battery is dead on a Macintosh running PPC Linux. (Addresses 37Red Hat Bug: #182188) 38 39The blkid library will now store the UUID of the external journal used 40by ext3 filesystems, so that in the future, the userspace mount binary 41can use this to find the location of the external journal and pass 42this information to the kernel. 43 44E2fsck will now consult a configuration file, /etc/e2fsck.conf to 45control how various options should be handled. See the e2fsck.conf 46man page for more details. (Addresses Debian Bug: #150295) 47 48E2fsck now prints an explanatory message when delaying a filesystem 49check when the system is running on battery. (Addresses Debian Bug: 50#350306) 51 52E2fsck will detect if the superblock's last mount field or last write 53field is in the future, and offer to fix if so. (Addresses Debian Bug 54#327580) These problems will be fixed automatically in preen mode 55since Debian's boot sequence bogusly doesn't set the time correctly 56until potentially very late in the bootup process, and this can cause 57false positives which will cause users' systems to fail to boot. 58(Addresses Debian Bugs #343662 and #343645) 59 60E2fsck now checks to see if the superblock hint for the location of 61the external journal is incorrect, and if so, offer to update it. 62(Addresses Debian Bug: #355644) 63 64Fix e2fsck from segfaulting on disconnected inodes that contain one or 65more extended attributes. (Addresses Debian Bug: #316736, #318463) 66 67E2fsck will stop and print a warning if the user tries running a 68read/write badblocks test on a read-only mounted root filesystem. 69 70Fix a memory leak in e2fsck's error paths. (Thanks to Michael 71C. Thompson for pointing these out; they were originally found using 72Coverity.) 73 74When resizing a file containing a filesystem, resize2fs will expand or 75truncate a file as necessary. (Addresses Debian Bug: #271607) 76 77Resize2fs will now automatically determine the RAID stride parameter that 78had been used to create the filesystem, and use that for newly created 79block groups. The RAID stride parameter may also be manually specified 80on the command line using the new -S option to resize2fs. 81 82Fix mke2fs so that it correctly creates external journals on 83big-endian machines (such as a S/390). 84 85Fix a bug in the e2p library which could cause dumpe2fs to (rarely) 86fail to print out the journal or hash seed UUID. (Thanks to Guillaume 87Chambraud for pointing this out.) 88 89Dumpe2fs will now print the size of the journal (if present). 90 91Fix debugfs's set_inode_field command so it can properly set the frag, 92fsize, uid_high, gid_high, and author fields in the inode instead of 93silently failing, and so that setting the i_size actually sets i_size 94correctly. 95 96Add a new debugfs command, set_current_time, which sets fs->now so 97that regression test suites can repeatedly modify the filesystem's 98last_write fields. 99 100Fix a bug in debugfs's icheck which would incorrectly report the owner 101of an extended attribute block. 102 103Fix the debugfs commands htree_dump, dx_hash, and list_dir so they print a 104print a usage message when an illegal option character is given. 105 106Fix debugfs's dump_unsued command on filesystems with a 64k blocksize 107so it won't core dump. (Addresses SourceForge bug #1424311) 108 109Fix mklost+found so that it creates a full-sized directory on 110filesystems with larger block sizes. 111 112Fix a file descriptor leak in blkid library. 113 114Fix a display bug in "badblocks -sv" so that the done message properly 115clears the block number at the end of the test. (Addresses Debian Bug 116#322231) 117 118Allow fractional percentages to the -m option in mke2fs and tune2fs 119(Addresses Debian Bug: #80205) 120 121Use fstat/fstat64 in getsize.c if the the target is a regular file, 122instead of attempting to do a binary search. Fix some fd leaks in 123error cases. 124 125Add support for device mapper library to the blkid library to ensure 126that the "best" (i.e., leaf) device is probed by the blkid library. 127 128Fix the blkid library so that it notices when an ext2 filesystem is 129upgraded to ext3. 130 131Improve the blkid's library VFAT/FAT detection; it now understands 132labels stored in the root directory, and is more paranoid about 133checking the FAT superblock values. 134 135Fixed a fd leak in the uuid library which was causing problems for the 136LVM tools. (Addresses Debian Bug: #345832) 137 138Add support for the reiser4 and software suspend partitions to the 139blkid library. Also add support for extract the label from iso9660 140filesystems. 141 142Fix a compile_et bug which miscount the number of error messages if 143continuations are used in the .et file. 144 145Add extra sanity checks to protect users from unusual circumstances 146where /etc/mtab may not be sane, by checking to see if the device is 147reported busy (works on Linux 2.6) kernels. (Addresses Debian Bug 148#319002) 149 150Updated French, Dutch, Polish, and Swedish translations. (Addresses Debian 151Bug: #343149, #341911, #300871, #316604, #316782, #330789) 152 153Fix use-after-free bug in e2fsck when finishing up the use of the 154e2fsck context structure. 155 156Fixed spelling mistakes, typos, and otherwise clarified man pages and 157documentation. (Addresses Debian Bugs: #329859, #322188, #316811, 158#312515, #351268, #357951, #347295, #316040, #368392, #368393, #368394, 159#368179) 160 161Fixed various Debian packaging issues --- see debian/changelog for 162details. (Addresses Debian Bugs #317862, #320389, #290429, #310950, 163#310428, #330737, #330736, #329074, #356293, #360046, #366017, #364516, 164#362544, #362970) 165 166 167Programmer's notes: 168------------------- 169 170Update config.guess and config.sub to latest version (2006-02-23) from 171FSF. 172 173Fix asm_types.h type conflicts on AMD 64 platforms. (Addresses Debian 174Bugs: #360661, #360317) 175 176Fixed the Makefile so that they work correctly on newer versions of 177GNU make (i.e., 3.81). 178 179Add valgrind support to the regression test suites, and eliminate 180false positives from valgrind. 181 182Add a regression test suite for the blkid library. 183 184Fix a fencepost error in resize2fs caught by valgrind. 185 186Fix compiler warnings about missing memcpy prototypes. 187 188We no longer have the sparc assembly code in the header file any more, 189so we shouldn't set _EXT2_HAVE_HAS_BITOPS_ for the sparc. This would 190break compiles on the sparc architectures when using gcc. 191 192In the libext2fs library, add the new field fs->now which if non-zero 193is used instead of the system time when setting various filesystem 194fields (last modified time, last write time, etc.) 195 196Fix gcc 4.01 complaints by adding a missing #include <string.h> to 197ext2fs.h which is needed since the inline functions use memcpy(). 198(Addresses Sourceforge Bug #1251062) 199 200Use BUILD_CFLAGS and BUILD_LDFLAGS instead of CFLAGS and LDFLAGS in 201the build system when building files in the util directory which are 202needed during the build process. This avoids potential problems when 203cross-compiling and some of the options specified in CFLAGS or LDFLAGS 204are not recognized as valid by the host compiler. (Addresses 205Sourceforge Bug #1261547) 206 207Clean up the blkid library by making the superblock and generic i/o 208functions to be more generic. Clean up interface to the probe 209function, and fix memory leak. Finally, remove an unneeded reference 210to probe.h in the lib/blkid/resolve.c 211 212Add an ext2fs_read_bb_FILE regression test to confirm proper detection 213of invalid block #'s. 214 215The x86 asm constraints for ext2fs_{set/clear}_bit have been fixed to 216indicate that the the function read/writes the memory location. 217 218Fix various gcc -Wall complaints. 219 220Add a dependency to make sure that the subdirectories are created 221before creating all of the object files, in order to address parallel 222build problem in the library Makefiles. (Addresses Sourceforge Bug: 223#1261553) 224 225Add $(LDFLAGS) to the command line argument when generating an ELF or 226Solaris shared library, to allow cross-compile and other builds that 227might need to specify -L paths to needed libraries. (Addresses 228Sourceforge Bug #1261549) 229 230Add a new feature, EXT2_FEATURE_COMPAT_LAZY_BG, which is initially 231intended for testing purposes. It allows an ext2/ext3 developer to 232create very large filesystems using sparse files where most of the 233block groups are not initialized and so do not require much disk 234space. Eventually it could be used as a way of speeding up mke2fs and 235e2fsck for large filesystem, but that would be best done by adding an 236RO_COMPAT extension to the filesystem to allow the inode table to be 237lazily initialized on a per-block basis, instead of being entirely 238initialized or entirely unused on a per-blockgroup basis. 239 240Fix backwards compatibility so e2fsprogs will better compile on Linux 2412.0.35 systems. 242 243Make test scripts more robust against locale-related environment variables 244 245Fix type warning problem with sizeof() in ext2fs_open2(). 246 247Fix type warning problem with time_t in debugfs. 248 249