1E2fsprogs 1.19 (July 13, 2000) 2============================== 3 4Release the resize2fs program since the timeout before it could 5be released under the GPL has finally expired. 6 7Add experimental support needed for the ext2 compression patches. 8This requires compiling e2fsprogs with the --enable-compression flag 9to the configure script. 10 11Added ext3 journalling support. E2fsck will run the journal (if 12necessary) by temporarily mounting the filesystem. /sbin/fsck.ext3 is 13installed as a symlink to e2fsck. Fsck has been taught about ext3, 14and treats it the same as ext2 in terms of the progress bar logic. 15Dumpe2fs will display the superblock journalling information if the 16filesystem has a journal. The ext2 library will now permit opening an 17ext3 filesystem with the recovery flag set. This is necessary for 18on-line dump's to work correctly, but there may be issues with this 19working well since ext3 is much less aggressive about syncing blocks to 20the filesystem, since they're safe on the journal. 21 22Tune2fs and e2fsck have been changed to allow the mount_count check to 23be disabled by setting max_mount_count to -1. (This was already 24supported by the kernel.) 25 26Create a symbolic link for fsck.ext3, since the e2fsprogs utilities 27are used for ext3 as well. 28 29Added internationalization support for e2fsprogs; must be enabled 30by passing --enable-nls to configure. 31 32Always use the provided ext2fs header files to insulate ourselves from 33kernel version changes. Which include files are used by e2fsprogs 34have also been cleaned up to improve portability. 35 36Limit the number of times that e2fsck updates the progress bar so that 37people who are booting using a 9600 baud console don't get swamped by 38too many updates. 39 40Improved the loop detection algorithm in e2sck's pass #3 so that it is 41much, much faster for large filesystems with a large number of 42directories. 43 44The memory footprint for e2fsck is now slightly smaller than before. 45 46E2fsck now checks if special devices have a non-zero size, and offers 47to clear the size field if it finds such an inode. 48 49E2fsck now checks if special devices have the append-only flag set, 50and offers to clear the inode. 51 52E2fsck now properly handles some "should never fail" cases during a 53bitmap copy in pass5. 54 55E2fsck now properly prints control characters in filenames as ^A .. ^Z. 56 57E2fsck now calculates the correct location of the backup superblock in 58the case of filesystem blocksizes > 1k. 59 60Fixed a bug in e2fsck's calculation of the number of inodes_per_block 61which normally didn't cause problems under most filesystem parameters, 62but could cause a valid superblock to be rejected in extreme cases. 63Other checks for validating superblock values were made more 64stringent. 65 66Added non-destructive write testing to the badblocks program, courtesy 67of David Beattie. The badblocks also now has an option to input the 68current set of bad blocks, so that known bad blocks are skipped to 69speed up the badblocks test. There is also a persistent rescan 70feature which causes badblocks to run until it has completed some 71number of passes without discovering any new bad blocks. 72 73Badblocks now checks to see if the device is mounted and refuses to do 74the tests involving writing to the device if it is mounted. Also, 75badblocks now allows the number of blocks to be checked to be 76defaulted to the size of the partition. 77 78Fixed a bug in fsck which didn't allow non-root users to be able to 79check filesystems if there were any LABEL= or UUID= entries in 80/etc/fstab. 81 82The Hurd doesn't support the filetype filesystem feature. The mke2fs 83program now makes sure that for the Hurd, the filetype feature is 84turned off. E2fsck will check to see if the filetype feature is 85turned on for Hurd filesystems, and offer to turn off the feature. 86 87Mke2fs now has a safety check to make sure the number of blocks do not 88exceed 32 bits even on a 64 bit platform. 89 90Really fixed a bug in fsck to allow "fsck -As" to run interactive 91fsck's. (For those people who like to do interactive fsck's in the 92/etc/rc scripts!?!) 93 94Debugfs has a few new features: the rdump command, which will do a 95recursive dump of a directory and all of its contents, and the lcd 96command which does a local chdir (much like the ftp command of the 97same name). In addition, the debugfs program and the open_filesystem 98command now takes three new options: -b and -s, which allows the 99blocksize and superblock location to be specified, and the -c option 100which is used in catastrophic situations where the block group 101descriptors are corrupt. If the -c option is specified, debugfs will 102skip trying to read in the block and inode bitmaps. 103 104Debugfs's lsdel command was fixed to handle bad blocks in the inode 105table. 106 107A Y2K bug in debugfs's "ls -l" handling was fixed by switching to use 1084 digit years. 109 110General improvements in error messages 111 112 - Mke2fs prints a sane error message if the partition size is zero 113 (usually because the partition table wasn't reread by the 114 kernel due to the partition being busy), instead of "invalid 115 argument passed to ext2 library while initializing superblock". 116 117 - Fsck now prints more self-explanatory message if an invalid UUID= 118 or LABEL= specification is passed to it. 119 120UUID library changed to use the LGPL. 121 122Fixed a bug in the UUID library where very rapid calls to the 123time-based UUID generator could cause duplicate UUID's to be returned. 124This was not a problem for e2fsprogs, but it could be a problem for 125other users of the library. 126 127Make the UUID library more robust in the face of missing or an 128improper /dev/urandom or /dev/random files. 129 130Added some random portability fixes for Solaris. 131 132Some minor man page updates. 133 134Fixed a memory leak in the ss library. 135 136 137Programmer's notes: 138------------------- 139 140We now try to use lseek64 and open64 from the LFS if possible. 141 142The 3rd parameter in e2p's print_flags is now a flags word, instead of 143a boolean option. 144 145The mark and unmark bitmap functions now return the previous state of 146the bit that was being changed, which is useful for some speed 147optimizations. 148 149The following functions have been added to enhance the badblocks list 150handling in libext2fs: ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and 151ext2fs_badblocks_equal. 152 153The ext2 header files now have the latest journalling fields to the 154superblock. 155 156The ext2fs_mkdir function in libext2fs now properly backs out of error 157conditions robustly. 158 159Cleaned up makefiles: 160 - to cleanly compile with the -j flag. 161 - so distclean removes all generated files. 162 - so in case of an error while installing header files, the make aborts. 163 164Fix test_script so that it works correctly when compiling in the 165source directory. 166 167The random UUID generation routine has been made slightly better in 168the case where /dev/random doesn't exist. (Use of randomly-based UUID 169is still not recommended if /dev/random doesn't exist, however; it's 170better to use the time/ethernet MAC address UUID in this case.) 171 172Clean up the build process so it's more friendly in case of missing 173directories. 174 175The ext2fs header file can now be #include'd into C++ programs. 176 177The e2p.h header file is now installed. 178 179Added workaround to a gawk 3.0.5 bug in lib/ss/mk_cmds. 180 181