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