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