1*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.16 (October 22, 1999) 2*6a54128fSAndroid Build Coastguard Worker================================= 3*6a54128fSAndroid Build Coastguard Worker 4*6a54128fSAndroid Build Coastguard WorkerFixed a race condition bug in fsck; when printing a progress bar, if 5*6a54128fSAndroid Build Coastguard Workerchecking multiple filesystems in parallel, it was possible for fsck to 6*6a54128fSAndroid Build Coastguard Workersend e2fsck a SIGUSR1 signal before e2fsck had installed its signal 7*6a54128fSAndroid Build Coastguard Workerhandler, which would cause it to terminate with a signal 10. 8*6a54128fSAndroid Build Coastguard Worker 9*6a54128fSAndroid Build Coastguard WorkerE2fsck now properly handles filesystems that have the 10*6a54128fSAndroid Build Coastguard WorkerINCOMPAT_FILETYPE feature turned on. It can be used to convert a 11*6a54128fSAndroid Build Coastguard Workerfilesystem into using or not using FILETYPE feature. 12*6a54128fSAndroid Build Coastguard Worker 13*6a54128fSAndroid Build Coastguard WorkerE2fsck now properly handles filesystems that have the IMAGIC feature 14*6a54128fSAndroid Build Coastguard Workerturned on (this is used on Linux AFS servers). 15*6a54128fSAndroid Build Coastguard Worker 16*6a54128fSAndroid Build Coastguard WorkerThe mke2fs program now creates filesystems that have the filetype and 17*6a54128fSAndroid Build Coastguard Workersparse_superblock features enabled by default, unless it is run on a 18*6a54128fSAndroid Build Coastguard Workerpre-2.2 kernel. These features are not supported by a pre-2.2 kernel, 19*6a54128fSAndroid Build Coastguard Workerso there is now a new flag -O which allows the user to specify with 20*6a54128fSAndroid Build Coastguard Workerwhich features she would like to create the filesystem; "mke2fs -O 21*6a54128fSAndroid Build Coastguard Workernone" will create a filesystem compatible with 2.0 kernels. 22*6a54128fSAndroid Build Coastguard Worker 23*6a54128fSAndroid Build Coastguard WorkerThe tune2fs program now has a -O option which allows the user to set 24*6a54128fSAndroid Build Coastguard Workerand reset "safe" filesystem features. Currently, the only ones which 25*6a54128fSAndroid Build Coastguard Workerallows to be modified are the filetype and sparse_superblock features. 26*6a54128fSAndroid Build Coastguard WorkerNote setting or clearing either feature will require running e2fsck on 27*6a54128fSAndroid Build Coastguard Workerthe filesystem afterwards. (n.b. Clearing the sparse_superblock feature 28*6a54128fSAndroid Build Coastguard Workerrequires that there is enough free space on the filesystem for the 29*6a54128fSAndroid Build Coastguard Workerextra superblocks which will be created by e2fsck.) 30*6a54128fSAndroid Build Coastguard Worker 31*6a54128fSAndroid Build Coastguard WorkerDebugfs can now set and print filesystem features in the superblock 32*6a54128fSAndroid Build Coastguard Workerusing the "features" command. Dumpe2fs will print out the complete 33*6a54128fSAndroid Build Coastguard Workerset of features when listing the superblock. 34*6a54128fSAndroid Build Coastguard Worker 35*6a54128fSAndroid Build Coastguard WorkerDumpe2fs has new options -f (force) and -h (header-only). 36*6a54128fSAndroid Build Coastguard Worker 37*6a54128fSAndroid Build Coastguard WorkerFixed a bug in e2fsck which could cause the PROGRAMMING ERROR/bonehead 38*6a54128fSAndroid Build Coastguard Workermessage to come up. This could happen when decrementing or 39*6a54128fSAndroid Build Coastguard Workerincrementing a link count could result in an overflow. 40*6a54128fSAndroid Build Coastguard Worker 41*6a54128fSAndroid Build Coastguard WorkerFixed a bug in e2fsck where the block count on the lost+found 42*6a54128fSAndroid Build Coastguard Workerdirectory would not be properly incremented when the directory was 43*6a54128fSAndroid Build Coastguard Workerexpanded to the point where an indirect block needed to be allocated. 44*6a54128fSAndroid Build Coastguard Worker 45*6a54128fSAndroid Build Coastguard WorkerE2fsck now makes some additional sanity checks on the superblock to 46*6a54128fSAndroid Build Coastguard Workeravoid crashing or giving a memory allocation error if some of the 47*6a54128fSAndroid Build Coastguard Workervalues in the superblock are unreasonable (but the superblock otherwise 48*6a54128fSAndroid Build Coastguard Workerlooks valid). 49*6a54128fSAndroid Build Coastguard Worker 50*6a54128fSAndroid Build Coastguard WorkerFixed a bug in e2fsck where a very badly corrupted filesystem might 51*6a54128fSAndroid Build Coastguard Workerrequire two passes to completely fix the filesystem. This happened if 52*6a54128fSAndroid Build Coastguard Workeran inode claimed blocks that was part of the filesystem metadata 53*6a54128fSAndroid Build Coastguard Worker(typically, when garbage was written into an inode table or indirect 54*6a54128fSAndroid Build Coastguard Workerblock, since this kind of filesystem corruption normally doesn't 55*6a54128fSAndroid Build Coastguard Workerhappen otherwise). 56*6a54128fSAndroid Build Coastguard Worker 57*6a54128fSAndroid Build Coastguard WorkerOn the Alpha, glibc declares st_flags although it isn't actually used; 58*6a54128fSAndroid Build Coastguard Workerthe configure script was improved to detect this case so that 59*6a54128fSAndroid Build Coastguard Workere2fsprogs can avoid using the non-functional stat field. 60*6a54128fSAndroid Build Coastguard Worker 61*6a54128fSAndroid Build Coastguard WorkerThe manual pages were updated to use a more consistent formatting 62*6a54128fSAndroid Build Coastguard Workerstyle consistent with standard Unix man pages. Mke2fs's man page 63*6a54128fSAndroid Build Coastguard Workeradded documentation for a few previously undocumented options. 64*6a54128fSAndroid Build Coastguard Worker 65*6a54128fSAndroid Build Coastguard WorkerFixed minor display bugs in tune2fs and mke2fs. 66*6a54128fSAndroid Build Coastguard Worker 67*6a54128fSAndroid Build Coastguard WorkerProgrammer's notes: 68*6a54128fSAndroid Build Coastguard Worker------------------- 69*6a54128fSAndroid Build Coastguard Worker 70*6a54128fSAndroid Build Coastguard WorkerImproved portability of e2fsprogs to non-Unix systems (in particular, NT). 71*6a54128fSAndroid Build Coastguard Worker 72*6a54128fSAndroid Build Coastguard WorkerAdded features to parse and print feature strings into the e2p library. 73*6a54128fSAndroid Build Coastguard Worker(e2p_feature2string, e2p_string2feature, e2p_edit_feature). 74*6a54128fSAndroid Build Coastguard Worker 75*6a54128fSAndroid Build Coastguard Workerext2fs_mkdir() and ext2fs_new_dir_block() now creates directories 76*6a54128fSAndroid Build Coastguard Workerwhose directory entries contain proper filetype information if the 77*6a54128fSAndroid Build Coastguard Workerfilesystem supports it. 78*6a54128fSAndroid Build Coastguard Worker 79*6a54128fSAndroid Build Coastguard Workerext2fs_link() now uses the low 3 bits of its flags parameter to pass 80*6a54128fSAndroid Build Coastguard Workerthe directory entry filetype information. This is used to set the 81*6a54128fSAndroid Build Coastguard Workerdirectory entry filetype information if the filesystem supports it. 82*6a54128fSAndroid Build Coastguard Worker 83*6a54128fSAndroid Build Coastguard WorkerFixed a bug in ext2fs_expand_dir() where the block count in a 84*6a54128fSAndroid Build Coastguard Workerdirectory's inode would not be properly incremented when the directory 85*6a54128fSAndroid Build Coastguard Workerwas expanded to the point where an indirect block needed to be 86*6a54128fSAndroid Build Coastguard Workerallocated. 87*6a54128fSAndroid Build Coastguard Worker 88