1*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.07 (March 9, 1997) 2*6a54128fSAndroid Build Coastguard Worker============================== 3*6a54128fSAndroid Build Coastguard Worker 4*6a54128fSAndroid Build Coastguard WorkerE2fsck is now uses much less memory when checking really large 5*6a54128fSAndroid Build Coastguard Workerfilesystems (or rather, filesystems with a large number of inodes). 6*6a54128fSAndroid Build Coastguard WorkerPreviously a filesystem with 1 million inodes required 4 megabytes of 7*6a54128fSAndroid Build Coastguard Workermemory to store inode count statistics; that storage requirement has 8*6a54128fSAndroid Build Coastguard Workernow been reduced to roughly half a megabyte. 9*6a54128fSAndroid Build Coastguard Worker 10*6a54128fSAndroid Build Coastguard WorkerE2fsck can now properly deal with bad blocks appearing inside the 11*6a54128fSAndroid Build Coastguard Workerinode table. Instead of trying to relocate the inode table (which 12*6a54128fSAndroid Build Coastguard Workeroften failed because there wasn't enough space), the inodes in the bad 13*6a54128fSAndroid Build Coastguard Workerblock are marked as in use. 14*6a54128fSAndroid Build Coastguard Worker 15*6a54128fSAndroid Build Coastguard WorkerE2fsck will automatically try to use the backup superblocks if the 16*6a54128fSAndroid Build Coastguard Workerprimary superblocks have a bad magic number or have missing meta-data 17*6a54128fSAndroid Build Coastguard Workerblocks (or meta-data blocks which are out of range). 18*6a54128fSAndroid Build Coastguard Worker 19*6a54128fSAndroid Build Coastguard WorkerE2fsck's pass 3 has been made more efficient; most noticeable on 20*6a54128fSAndroid Build Coastguard Workerfilesystems with a very large number of directories. 21*6a54128fSAndroid Build Coastguard Worker 22*6a54128fSAndroid Build Coastguard WorkerCompletely revamped e2fsck's system of printing problem reports. It 23*6a54128fSAndroid Build Coastguard Workeris now table driven, to make them more easily customizable and 24*6a54128fSAndroid Build Coastguard Workerextendable. Error messages which can be printed out during preen mode 25*6a54128fSAndroid Build Coastguard Workerare now one line long. 26*6a54128fSAndroid Build Coastguard Worker 27*6a54128fSAndroid Build Coastguard WorkerFixed e2fsck's filesystem swapping code so that it won't try to swap 28*6a54128fSAndroid Build Coastguard Workerfast symbolic links or deleted files. 29*6a54128fSAndroid Build Coastguard Worker 30*6a54128fSAndroid Build Coastguard WorkerFixed e2fsck core dumping when fixing a filesystem which has no 31*6a54128fSAndroid Build Coastguard Workerdirectories (not even a root directory). 32*6a54128fSAndroid Build Coastguard Worker 33*6a54128fSAndroid Build Coastguard WorkerAdded a check to e2fsck to make sure that the length of every 34*6a54128fSAndroid Build Coastguard Workerdirectory entry is a multiple of 4 (since the kernel complains if it 35*6a54128fSAndroid Build Coastguard Workerisn't). 36*6a54128fSAndroid Build Coastguard Worker 37*6a54128fSAndroid Build Coastguard WorkerAdded a check to e2fsck to make sure that a directory entry isn't a 38*6a54128fSAndroid Build Coastguard Workerlink to the root directory, since that isn't allowed. 39*6a54128fSAndroid Build Coastguard Worker 40*6a54128fSAndroid Build Coastguard WorkerAdded a check to e2fsck to now make sure the '.' and '..' directory 41*6a54128fSAndroid Build Coastguard Workerentries are null terminated, since the 2.0 kernel requires it. 42*6a54128fSAndroid Build Coastguard Worker 43*6a54128fSAndroid Build Coastguard WorkerAdded check to write_bitmaps() to make sure the superblock doesn't get 44*6a54128fSAndroid Build Coastguard Workertrashed if the inode or block bitmap is marked as being block zero. 45*6a54128fSAndroid Build Coastguard Worker 46*6a54128fSAndroid Build Coastguard WorkerAdded checking of the new feature set fields in the superblock, to 47*6a54128fSAndroid Build Coastguard Workeravoid dealing with new filesystem features that this package wasn't 48*6a54128fSAndroid Build Coastguard Workerset up to handle. 49*6a54128fSAndroid Build Coastguard Worker 50*6a54128fSAndroid Build Coastguard WorkerFixed a fencepost error in ext2fs_new_block() which would occasionally 51*6a54128fSAndroid Build Coastguard Workertry to allocate a block beyond the end of a filesystem. 52*6a54128fSAndroid Build Coastguard Worker 53*6a54128fSAndroid Build Coastguard WorkerWhen the UUID library picks a random IEEE 802 address (because it 54*6a54128fSAndroid Build Coastguard Workercan't find one from a network card), it sets the multicast bit, to 55*6a54128fSAndroid Build Coastguard Workeravoid conflicting with a legitimate IEEE 802 address. 56*6a54128fSAndroid Build Coastguard Worker 57*6a54128fSAndroid Build Coastguard WorkerMke2fs now sets the root directory's owner to be the real uid of the 58*6a54128fSAndroid Build Coastguard Workeruser running mke2fs. If the real uid is non-zero, it also sets 59*6a54128fSAndroid Build Coastguard Workerthe group ownership of the root directory to be the real group-id of 60*6a54128fSAndroid Build Coastguard Workerthe user running mke2fs. 61*6a54128fSAndroid Build Coastguard Worker 62*6a54128fSAndroid Build Coastguard WorkerMke2fs now has more intelligent error checking when it is given a 63*6a54128fSAndroid Build Coastguard Workernon-existent device. 64*6a54128fSAndroid Build Coastguard Worker 65*6a54128fSAndroid Build Coastguard WorkerWhen badblocks is given the -vv option, it now updates the block that 66*6a54128fSAndroid Build Coastguard Workerit is currently testing on every block. 67*6a54128fSAndroid Build Coastguard Worker 68*6a54128fSAndroid Build Coastguard WorkerFixed a bug in fsck where it wouldn't modify the PATH environment 69*6a54128fSAndroid Build Coastguard Workercurrently correctly if PATH wasn't already set. 70*6a54128fSAndroid Build Coastguard Worker 71*6a54128fSAndroid Build Coastguard WorkerShared libraries now built with dependencies. This allows the shared 72*6a54128fSAndroid Build Coastguard Workerlibrary files to be used with dlopen(); it also makes the transition 73*6a54128fSAndroid Build Coastguard Workerto libc 6 easier, since ld.so can tell which libc a particular shared 74*6a54128fSAndroid Build Coastguard Workerlibrary expects to use. 75*6a54128fSAndroid Build Coastguard Worker 76*6a54128fSAndroid Build Coastguard WorkerProgrammer's notes: 77*6a54128fSAndroid Build Coastguard Worker------------------- 78*6a54128fSAndroid Build Coastguard Worker 79*6a54128fSAndroid Build Coastguard WorkerAdded new abstraction (defined in dblist.c) for maintaining a list of 80*6a54128fSAndroid Build Coastguard Workerblocks which belongs to directories. This is used in e2fsck and other 81*6a54128fSAndroid Build Coastguard Workerprograms which need to iterate over all directories. 82*6a54128fSAndroid Build Coastguard Worker 83*6a54128fSAndroid Build Coastguard WorkerAdded new functions which test to see if a contiguous range of blocks 84*6a54128fSAndroid Build Coastguard Worker(or inodes) are available. (ext2fs_*_bitmap_range). 85*6a54128fSAndroid Build Coastguard Worker 86*6a54128fSAndroid Build Coastguard WorkerAdded new function (ext2_inode_has_valid_blocks) which returns true if 87*6a54128fSAndroid Build Coastguard Workeran inode has valid blocks. (moved from e2fsck code). 88*6a54128fSAndroid Build Coastguard Worker 89*6a54128fSAndroid Build Coastguard WorkerAdded new function (ext2fs_allocate_tables) which allocates the 90*6a54128fSAndroid Build Coastguard Workermeta-data blocks as part of initializing a filesystem. (moved from 91*6a54128fSAndroid Build Coastguard Workermke2fs code). 92*6a54128fSAndroid Build Coastguard Worker 93*6a54128fSAndroid Build Coastguard WorkerAdded a new I/O manager for testing purposes. It will either allow a 94*6a54128fSAndroid Build Coastguard Workerprogram to intercept I/O requests, or print debugging messages to 95*6a54128fSAndroid Build Coastguard Workertrace the activity of a program using the I/O manager. 96*6a54128fSAndroid Build Coastguard Worker 97*6a54128fSAndroid Build Coastguard WorkerThe badblocks_list functions now store the bad blocks in a sorted 98*6a54128fSAndroid Build Coastguard Workerorder, and use a binary search to speed up badblocks_list_test. 99*6a54128fSAndroid Build Coastguard Worker 100*6a54128fSAndroid Build Coastguard WorkerThe inode scan function ext2fs_get_next_inode() may now return a soft 101*6a54128fSAndroid Build Coastguard Workererror returns: MISSING_INODE_TABLE and BAD_BLOCK_IN_INODE_TABLE in 102*6a54128fSAndroid Build Coastguard Workerthose cases where part of an inode table is missing or there is a bad 103*6a54128fSAndroid Build Coastguard Workerblock in the inode table. 104*6a54128fSAndroid Build Coastguard Worker 105*6a54128fSAndroid Build Coastguard WorkerAdded a new function (ext2fs_block_iterate2) which adds new arguments to 106*6a54128fSAndroid Build Coastguard Workerthe callback function to return a pointer (block and offset) to the 107*6a54128fSAndroid Build Coastguard Workerreference of the block. 108*6a54128fSAndroid Build Coastguard Worker 109*6a54128fSAndroid Build Coastguard WorkerAdded new function (ext2fs_inode_scan_goto_blockgroup) which allows an 110*6a54128fSAndroid Build Coastguard Workerapplication to jump to a particular block group while doing an inode 111*6a54128fSAndroid Build Coastguard Workerscan. 112*6a54128fSAndroid Build Coastguard Worker 113*6a54128fSAndroid Build Coastguard WorkerThe badblocks list functions were renamed from badblocks_* to 114*6a54128fSAndroid Build Coastguard Workerext2fs_badblocks_*. Backwards compatibility functions are available 115*6a54128fSAndroid Build Coastguard Workerfor now, but programs should be modified to use the new interface. 116*6a54128fSAndroid Build Coastguard Worker 117*6a54128fSAndroid Build Coastguard WorkerSome of the library functions were reorganized into separate files to 118*6a54128fSAndroid Build Coastguard Workerreduce the size of some programs which statically link against the 119*6a54128fSAndroid Build Coastguard Workerext2 library. 120*6a54128fSAndroid Build Coastguard Worker 121*6a54128fSAndroid Build Coastguard WorkerPut in some miscellaneous fixes for the Alpha platform. 122*6a54128fSAndroid Build Coastguard Worker 123