1E2fsprogs 1.28 (August 31, 2002) 2================================ 3 4Add support for the Hashed-Tree Directory Indexing to e2fsck. Support 5for setting the htree flag is not included yet, although it can be 6manually turned on via the debugfs program. 7 8Clarified e2fsck error message which is printed when it cannot find 9sufficient contiguous block when relocating filesystem metadata. 10 11Added support for building an EVMS plugin module for ext2/3. This 12module is substantially the same as the EVMS module shipping with EVMS 131.1, with one or two bugfixes. E2fsprogs can also build this plugin 14for use with EVMS 1.0 (which did not include the ext2 plugin module), 15if the configure --enable-old-evms flag is given. 16 17Fsck will search through EVMS volumes when trying to resolve 18filesystem specifications such as LABEL=xxx or UUID=xxx. 19 20Added a new utility program, /sbin/findfs, which will return 21filesystem specifications such as LABEL=xxx or UUID=xxx, and prints 22the device name. 23 24Update and clarified various man pages. (addresses Debian Bug #145044, 25#146437, #131350, #151990, #144621, #141938) 26 27If there are no filesystems specified on fsck's command line, fsck now 28treat that as if the -As options were given. Previously it would 29simply do nothing. (Addresses Debian Bug #153102) 30 31Mke2fs no longer treats a failure to be able to clear the MD signature 32at the end of the filesystem as a fatal error. (Addresses Debian Bug 33#155007) 34 35The e2p library functions (which are used by lsattr and chattr) now 36double check to make sure the file is a regular file or directory 37before attempting to use the ext2 ioctls. Some device drivers 38unfortunately respond to the ext2 ioctl's with unknown behaviour. 39(Addresses Debian Bug #152029). 40 41The extended attribute handling has been updated to correspond with 42the latest V2 bestbits ACL code. 43 44Fixed bug in e2fsck which caused it to not clear the dtime field when 45processing truncated inodes on the orphan list. This could cause data 46loss(!) if a filesystem is rebooted before a truncate has been 47committed. 48 49E2fsck now uses red/black trees in pass1b, which removes some O(n**2) 50algorithms. This makes e2fsck much faster in the case of severely 51corrupted filesystems where a large number of blocks are claimed by a 52large number of inodes. (Thanks to the 2.5 IDE device driver for 53inspiring this work.) 54 55Resize2fs has been significantly sped up when shrinking and expanding 56a filesystem by a very small number of blocks (for example, when EVMS 57is converting a partition to be an EVMS legacy volume). 58 59Added a new option to e2fsck, -D, which will optimize or compress all 60of the directories in the filesystem. 61 62E2fsck now catches SIGINT and SIGTERM to make sure it will can 63properly clean up and only exit at safe points. Fsck will pass 64SIGINT/SIGTERM to its child processes, and wait until they have all 65exited before it exits. 66 67The uuid parsing code in the uuid library now properly complains when 68an illegally formatted uuid is presented to it. (Addresses Debian bug 69#152891) 70 71Restrict use of the 2.4 setrlimit ABI f*ckup to kernels between 2.4.10 72and 2.4.17, since the workaround can cause problems when using a 2.4 73kernel with an old version of glibc built with the 2.2 headers. 74 75Fixed a bug in mke2fs where it wasn't properly clearing the initial 76superblock used by other filesystems. (Addresses Debian bug #147256.) 77 78Added support for the synchronous directory feature written by Andrew 79Morton. 80 81The debugfs program can delete directories using the rmdir command. 82 83Add support for 8k and 16k filesystems (for systems with page sizes 84that are greater or equal to 8k or 16k, respectively). Note that 85these filesystems can not be mounted on x86 systems, or other systems 86with only 4k page sizes, due to limitations in the current Linux VM 87code. 88 89Resize2fs requires that the filesystem state be valid and have no 90errors; otherwise, e2fsck -f must be run first. (Previously it simply 91required that the last fsck time be greater than the last mount time.) 92 93Configure now defaults the man pages directory to /usr/share/man on 94Linux systems. 95 96E2fsck now offers to truncate inodes which contain too many blocks (so 97that i_blocks would overflow. Also fixed handling of large sparse 98files. 99 100E2fsck now more completely checks for symlink validity, including 101requiring NULL termination and length checks. 102 103E2fsck will offer to try forcing a disk write to remap a bad block 104after finding a read error when reading a filesystem metadata block. 105 106Fixed a bug in debugfs which caused the -b and -s options to crash 107debugfs, as well as breaking the testb, setb, and clearb functions. 108 109Added a bmap command to debugfs which calculates the logical to 110physical block mapping for a particular inode. 111 112Fixed a bug in code which checked to see if a device was mounted which 113sometimes (rarely) failed in the case of a plain file. 114 115Fixed a bug in resize2fs where when it reported an error, it would 116print a message erroneously indicating that the filesystem had been 117resized before it aborted. 118 119When resizing a plain file which is smaller than the requested size, 120resize2fs will attempt to extended the file so that programs like 121e2fsck will not complain that the file is too small. 122 123Resize2fs will print the actual new size of the filesystem when it is 124finished resizing. 125 126Fixed a bug in debugfs where "ls -l" would report incorrect file type 127information on big-endian systems. 128 129 130Programmer's notes: 131------------------- 132 133Fixed collisions with C++ reserved words. 134 135Added portability fixes for building e2fsprogs on the HURD and AIX. 136 137Added the ext2ed program for creation of test cases. (ext2ed has many 138limitations and bugs which make it unsuitable for production use.) 139 140The ext2fs_read_dir_block2 and ext2fs_write_dir_block now take a new 141flag, EXT2_DIRBLOCK_V2_STRUCT, which will will reverse when the 142name_len field is byte swapped on big-endian machines, since in the 143V2 structure, name_len is a char field which is doesn't need to be 144byte swapped --- except if an old-style kernel had byte-swapped the 145name_len field as part of the V1 structure. 146 147