E2fsprogs 1.10 (April 24, 1997) =============================== Mke2fs once again defaults to creating revision #0 filesystems, since people were complaining about breaking compatibility with 1.2 kernels. Warning messages were added to the mke2fs and tune2fs man pages that the sparse superblock option isn't supported by most kernels yet (1.2 and 2.0 both don't support parse superblocks.) Added new flag to mke2fs, -R <raid options>, which allows the user to tell mke2fs about the RAID configuration of the filesystem. Currently the only supported raid option is "stride" which specifies the width of the RAID stripe. Fixed bug in e2fsck where pass1b would bomb out if there were any blocks marked bad in the inode table. Fixed rare bug in mke2fs where if the user had a very unlucky number of blocks in a filesystem (probability less than .002) the resulting filesystem would be corrupt in the last block group. Fixed bug where if e2fsck tried to allocate a block to fix a filesystem corruption problem and the filesystem had no free blocks, ext2fs_new_block() would loop forever. The configure script now checks explicitly to see if "-static" works, since that can't be assumed to be true --- RedHat doesn't install libc-static by default. Fixed bug in libext2's block iterator functions where under some circumstances, file with holes would cause the bcount parameter to the callback function to be incorrect. This bug didn't affect any of e2fsprogs programs, but it was discovered by Paul Mackerras, the author of the PPC boot loader. Removed use of static variables to store the inode cache in libext2fs. This caused problems if more than one filesystem was accessed via libext2fs (static variables in libraries are generally a bad idea). Again, this didn't affect e2fsprogs programs, but it was discovered by Paul Mackerras. Fixed minor bugs and version code drift to assure that e2fsprogs 1.10 will compile cleanly with 1.2.13 kernels (even with a.out shared libraries!) Programmer's notes: ------------------- Added new functions to duplicate an ext2 filesystem handle, and its associated substructure. New functions: ext2fs_dup_handle(), ext2fs_copy_dblist(), ext2fs_badblocks_copy(), ext2fs_copy_bitmap(). Other structures, such as the io_channel and the inode_cache, now have a ref count so that they only get freed when they are no longer used by any filesystem handle. (These functions were added as part of the development effort for an ext2 resizer).