E2fsprogs 1.26 (February 3, 2002) ================================= Dumpe2fs will keep going now if the bad block inode can't be read. (Previously it stopped with a fatal error.) E2fsck will now give an opportunity to run the journal even if the recovery flag is not set. This is the default behaviour if e2fsck is using a backup superblock, since the needs_recovery flag will never be set in the backup superblock copies. E2fsck now automatically finds the backup superblock/group descriptors even when the primary superblock is completely destroyed for 2k and 4k filesystems. (Previously it just guessed/assumed that we were dealing with a 1k filesystem in that case, and users had to manually specify the backup superblock number.) Fixed a bug in e2fsck where it dereferences a null pointer when there is a problem opening a filesystem in preen mode. E2fsck now handles external journals correctly; previously it trashed the external journal device if the journal needed to be replayed. Work around ulimit incompatibility problem caused by recent 2.4 kernels; the unix IO module will automatically try to set any resource limits to be infinite on startup. Fixed a bug in e2fsck where it wasn't allocating a new block or inode bitmap if it wasn't present and the blocksize was 2k or 4k. (Addresses Debian Bug #116975) E2fsck will check and fix botched ext3 V1 to V2 superblock updates by clearing the new V2 fields if they do not make sense or if the ext3 superblock is version 1 superblock. E2fsck will automatically relocate the ext3 journal from a visible file (i.e., /.journal) to an hidden inode if the filesystem has been opened read/write. This allows the users to add a journal while the filesystem is mounted, but the next time the system is rebooted, the journal file will disappear. This avoids problems with backups, stupid operators with superuser bits, etc. Fix a bug in fsck where it would not support a filesystem type of "auto" if the device was specified in terms of LABEL=xxx or UUID=xxx. Fsck now supports fstab entries of the form "ext3,ext2". It will also automatically identify reiserfs filesystems. The number of processes spawned by fsck can now be limited using the FSCK_MAX_INST environment variable. Fsck now searches the LVM proc hierarchy to find logical volumes which should be searched for UUID and label information. Work around a bug in 2.4.10+ kernels by trying to unset the filesize limit if at all possible, when opening a block device. (The filesize limit shouldn't be applied against writes to a block device.) In mke2fs and e2fsck, specifying the -c option twice will now do a read/write test on the disk. Update the man pages to encourage using the -c option, and to discouraging running badblocks separately, since users tend to forget to set the blocksize when running badblocks. Mke2fs now automatically clears the immutable attribute on a pre-existing .journal file left over from a previous failed attempt to add a journal to an already-mounted filesystem. Fixed mke2fs's exit codes to consistently indicate when the mke2fs operation failed. Mke2fs now creates the lost+found directory with permissions of 0700, so that files that had previously lived in protected directory are safe if they get dropped in lost+found and the system administrator doesn't deal with immediately. (Addresses Debian #bug 118443) Mke2fs and e2fsck (and all programs that use the ext2fs_check_if_mounted function) will now properly identify that a device is mounted, even in cases where devfs has confused things with multiple devices names with the same identity, or if a dim-witted system administrator has done something stupid like creating device file aliases in their home directory. Also now checks for swap devices by using /proc/swaps. (Addresses Debian bug #106622) Added a new option (-T) to tune2fs which sets the time a filesystem was last checked. Speed up e2image when creating sparse raw image files by optimizing away excess lseek() system calls. Fix support of large (> 2GB) files when used as a filesystem in mke2fs, tune2fs, debugfs, and findsuper. Debugfs's stat and icheck commands now properly deals with large (> 2GB) files. Debugfs's set_super_value command now prints out the list of valid superblock fields which can be set using the command. Debugfs's rm and kill_file command now updates the superblock free block and inode counts, thus keeping the filesystem consistent. Debugfs's lsdel command now takes an optional argument which allows the user to only see the most recently deleted files. A new command (undel) was added to debugfs which automates undeleting a deleted inode and linking it back to a directory. Debugfs's ls command now takes a new option, -d, which lists deleted directory entries. Debugfs's testb, freeb, setb, and find_free_block commands now take an optional count argument. Add support for a new ext2 file attribute, EXT2_NOTAIL_FL, which will be used to signal that a particular inode should not be eligible for tail-merging --- this is needed for programs like LILO. The findsuper (an unreleased, uninstalled utility program) has been improved to add extra validity checks and to add a progress meter. (It is still an unsupported program; the officially supported way to recover from a trashed partition table is to use gpart; findsuper is for wizards only. :-) Debugfs was fixed to compile with "configure --disable-swapfs". Cleaned up various manual pages. (Addresses Debian bug #119624, #120171) Added new translation file for Turkish. Programmer's notes: ------------------- Fix general gcc -Wall complaints. E2fsprogs (mostly) works with the dietlibc. The programming texinfo file has been expanded to include description of additional libext2fs functions. (Still not completely done, but a lot of the more important functions have been documented.) Added a umask structure to struct_ext2_filsys, which currently only modifies the behaviour of ext2fs_mkdir(), but if we add any file creation functions to libext2fs, we should also make sure they respect the umask setting. The build-rpm script was fixed to be a bit more safe. The tests' Makefile now has a way of automating test case creation for e2fsck, using "make testnew". Created a new function, ext2fs_dir_iterate2 which passes more information to the callback function (identical to the one used by ext2fs_dblist_dir_iterate). The directory iterator functions take a new flag, DIRENT_FLAG_INCLUDE_REMOVED, which will return deleted directory entries. If the directory entry is deleted, the callback function will be called with the entry parameter set to DIRENT_DELETED_FILE. Added new functions, ext2fs_inode_alloc_stats and ext2fs_block_alloc_stats, which takes updates block/inode allocation statistics in the bitmaps, block group descriptors, and superblock when inodes or blocks are allocated or deallocated.