E2fsprogs 1.15 (July 18, 1999) ============================== Add configuration checks so that e2fsprogs will compile cleanly on Linux 2.3 kernels that have renamed i_version to i_generation. E2fsck now prints a progress/completion bar (and not just a simple spinner) if the -C0 option is requested or if it receives a SIGUSR1 signal. Fsck will automatically manage the (potentially multiple) e2fsck processes to print completion bars if it is given a -C option, with the right thing happening if multiple filesystems are being checked in parallel. Mke2fs now has better automatic heuristics to determine the filesystem parameters to be used for a particular filesystem. Added a new option -T which allows the user to specify how the filesystem is to be used, which helps mke2fs do a better job selecting the filesystem parameters. Mke2fs now creates revision 1 filesystems by default, and with the sparse superblock feature enabled. The sparse superblock feature is not understood by Linux 2.0 kernels, so they will only allow read-only mounts of filesystems with this sparse superblocks. Fix bug where if /dev/null couldn't be opened (should never happen), e2fsck would hang in a tight loop. Make e2fsck handle the case where /lost+found isn't a directory. E2fsck now uses mallinfo if it exists to get accurate statistics about its memory usage. Fix bug in e2fsck where it wouldn't check to see if a disconnected inode had any problems before connecting it to /lost+found. Add check to e2fsck so it makes sure that total number of inodes in the filesystem is a sane number. Fix fencepost error when clearing an the end of the block bitmap which caused the last block in the bitmap not to get cleared. Cleaned up a number of messages in e2fsck: * The message "Group's #'s copy of the group descriptor..." was fixed so that the correct number would be displayed. * Added missing space in the "disk write-protected" error message * Cleaned up the error message printed when a non-interactive e2fsck needs to abort a check because the filesystem appears to be mounted. Added a new command-line utility, uuidgen, which will create and print a UUID. Make debugfs's icheck command more robust by checking to make sure an inode has valid blocks before iterating over the inode's blocks. UUID generation now uses a random-based scheme whenever possible to prevent potential privacy problems. Man pages for all of the UUID functions in the library were added. Fixed bug in fsck so it won't coredump if a filesystem not in /etc/fstab is given to it. Fsck now understands the UUID=xxxx and LABEL=yyyy forms in /etc/fstab that most of the other mount utilities understands. Mke2fs will make a filesystem even if it appears mounted if the force option is given. Dumpe2fs has new command-line options which allow a filesystem expert to specify the superblock and blocksize when opening a filesystem. This is mainly useful when examining the remains of a toasted filesystem. The badblocks program has been updated to display correctly on disks with large block numbers. The badblocks program no longer gives spurious errors when errors occur on non-block boundaries, which is common if the blocksize is larger than 1k. Mke2fs will sync the disk device every MKE2FS_SYNC block groups if the MKE2FS_SYNC environment variable is set. This is to work around a VM bug in the 2.0 kernel. I've heard a report that a RAID user was able to trigger it even using a 2.2 kernel, but hopefully it will not be needed for most Linux 2.2 users. Fixed miscellaneous documentation and man pages. Programmer's notes: ------------------- Cleaned up functions such as pass1_get_blocks, pass1_read_inode which in e2fsck's pass1.c really should have been static. The return value of the uuid_compare() function was changed to make it match with the conventions used by strcmp, memcmp, and Paul Leach's UUID sample document. The "make depend" process has now been made more automated; it now automatically word-wraps the dependencies, and only replaces source Makefile.in if there has been a change in the dependencies. Also, a top-level "make depend" now recurses through all the subdirectories automatically. The Makefile in .../util has been changed so that subst is built using the native C compiler during a cross-compilation, since the subst program is only used during the build process. Also add an explicit rule to build util/subst by cd'ing to the correct directory and running Makefile. The man directories are defined in terms mandir, so that the configure script can override the location of the manual pages. The config files have been updated to recognize new machine types for both the i386 and alpha families. Fsck has been modified so that it will accurately create an fsck_instance even when the noexecute flag is set. This allows for accurate debugging of the fsck pass structure. Also, when the verbose flag is given twice, fsck will print debugging information about when fsck is waiting for jobs to finish.