E2fsprogs 1.05 (September 7, 1996) ================================== Add support for new fields in the ext2 superblock --- volume name, volume UUID, and last mounted field. Dumpe2fs displays these fields, tune2fs and mke2fs allows you to set them. E2fsck will automatically generate a UUID for those volumes that don't have them. Put in support for e2fsck to recognize HURD specific ext2 features --- most notably, the translator block. The e2fsprogs tools will now use the creator_os field in the superblock to correctly handle different OS-specific variants of the ext2 filesystem. E2fsck now fixes inodes which have a the deletion time set, but which have a non-zero i_link_count field by offering to clear the deletion time. Previously e2fsck assumed that the inode was deleted (per 0.3c ext2 kernel behavior) and offered to unlink the file. If e2fsck sets the clean bit, but nothing else, set the exit code FSCK_NONDESTRUCT. After all, e2fsck did fix a filesystem error --- it set the filesystem valid bit when it was previously cleared. :-) This was needed to make the HURD fsck driver happy. If the user refuses to attach an unattached inode, e2fsck will no longer set the inode's link count. Otherwise, the inode would end up getting marked as unused, which might cause loss of data later. Make the message issued by e2fsck when the superblock is corrupt less confusing for users. It now mentions that another reason for the "corrupt superblock" message might be that the partition might not be an ext2 filesystem at all (it might swap, msdos filesystem, ufs, etc.) Make the libext2 library more robust so that e2fsck won't coredump on an illegal superblock where the blocksize is zero. (f_crashdisk is the test case). By default, create filesystems where the default checkinterval is 6 months (180 days). Linux servers can be robust enough that 20 reboots can be a long, long time. Added configure flag --enable-old-bitops, which forces the bitops to use the old (native) bitmask operations. By default on the sparc platform, the standard ext2 bit ordering is now used. Added a new feature to e2fsck to byte-swap filesystems; this can be used to convert old m68k filesystems to use the standard byte-order storage for the superblock, inodes, and directory blocks. This function is invoked by using the '-s' option to e2fsck. Debugfs's "dump" command has been enhanced so that it writes out the exact size of the file so that the nulls at the end of the file are eliminated. The command also accept a new "-p" option which will attempt to preserve the ownership, permissions, and file modification/access times. Debugfs has two new options, -f and -R. The -R option allows the user to execute a single debugfs command from the command line. The -f option allows the user to specify a "command file" containing debugfs commands which will get executed. Dumpe2fs now pretty prints the check interval, instead of just printing the check interval as a number of seconds. Fix bugs in debugfs: the params command when no filesystem is opened no longer causes a core dump. It is now possible to unlink a file when a pathname containing a '/' is specified. Tune2fs has a new -C option which sets the number of times the filesystem has been mounted. Fix the chattr '-v' option so that it actually works. Chattr was being buggy about the -v option parsing. Programmers' notes: ------------------- The directory lib/uuid contains a set of library routines to generate DCE compatible UUIDs. Extended ext2fs_namei() to handle symbolic links. Added new function ext2fs_nami_follow() which will follow last symbolic link in the case where the pathname points to a sym link. The ext2fs_block_iterate function will now return the HURD translator block, if present. The new flag BLOCK_FLAG_DATA_ONLY will cause the iterator to return data blocks only. The ext2fs.h file now defines constants BLOCK_COUNT_IND, BLOCK_COUNT_DIND, BLOCK_COUNT_TIND, and BLOCK_COUNT_TRANSLATOR, which are the magic values passed in the block count field of the iterator callback function. The test script driver now takes an optional second argument, which is the test case to be run. This allows you to run a test case without needing to run the entire test suite. On Linux ELF systems, install the .so files in the correct places (/usr/lib). The .so files must be stored in the same directory as the .a files. Fixed miscellaneous HURD compilation issues with header file being included in the right order. Fixed debugfs so that it resets optind to zero, not one, since setting optind to zero is more correct.