E2fsprogs 1.08 (April 10, 1997) =============================== E2fsck 1.07 was very slow when checking very large filesystems with a lot of files that had hard links (i.e., news spools). This was fixed by seriously revamping the icount abstraction. Added a formal test suite for the icount abstraction. Debugfs now has a "-l" option to the "ls" command, which lists the inode number, permissions, owner, group, size, and name of the files in the directory. Fix a bug in e2fsck where when a directory had its blocks moved to another location during the pass 1b processing, the directory block list wasn't updated, so pass 2 wouldn't check (and correct) the correct directory block. E2fsck will now treat inodes which contain blocks which are claimed by the filesystem metadata by treating them as multiply claimed blocks. This way, the data in those blocks can be copied to a new block during the pass 1b--1d processing. E2fsck will attempt to determine the correct superblock number and display it in the diagnostic and warning messages if possible. Add support for a new (incompatible) feature, "sparse_super". This feature reduces the number of blocks which contain copies of backup superblocks and block group descriptors. (It is only an incompatible feature because of a bug in ext2_free_blocks.) mke2fs and tune2fs now support a new -s option; e2fsck will recognize filesystems built with this feature turned on. E2fsck now checks the library to make sure is the correct version, using new library functions. (This helps to diagnose incorrectly installed e2fsprogs distributions.) Dumpe2fs now prints more information; its now prints the the filesystem revision number, the filesystem sparse_super feature (if present), the block ranges for each block group, and the offset from the beginning of the block group. Mke2fs now distributes the inode and block bitmap blok so that the won't be concentrated in one or two disks in RAID/striping setups. Also, if the user chooses a 2k or 4k block group, mke2fs will try to choose the largest blocks per group that be chosen. (For 2k blocks, you can have up to 16384 blocks/group; for 4k blocks, you can have up to 32768 blocks/group.) Previously mke2fs would not allow specification of more than 8192 blocks per group, even if you were using a 2k or 4k block group. Programmer's notes: ------------------- Added a new function ext2fs_create_icount2() which takes a "hint" argument. This hint argument presets the icount array with the list of inodes which actually need to be in the icount array. This really helps to speed up e2fsck. Added a new function ext2fs_icount_validate() which checks the rep invariant for the icount structure. This is used mostly for testing. The error message given when a bad inode number is passed to test_generic_bitmap to reflect EXT2FS_TEST_ERROR (instead of EXT2FS_UNMARK_ERROR). Added a new function ext2fs_set_dir_block which sets the block of a dblist entry, given the directory inode and blockcnt. Added a new function ext2fs_get_library_version() which returns the current library version, and ext2fs_parse_version_string() which returns a version number based on a e2fsprogs version string. The icount functions will return EINVAL if the passed in inode number is out of bounds.