1E2fsprogs 1.46.0 (January 29, 2021) 2=================================== 3 4Updates/Fixes since v1.45.7: 5 6UI and Features 7--------------- 8 9E2fsprogs now supports the fast_commit (COMPAT_FAST_COMMIT) feature. 10This feature, first available in Linux version 5.10, adds a fine-grained 11journalling which improves the latency of the fsync(2) system call. It 12should also improve the performance of ext4 file systems exported via 13NFS. 14 15E2fsprogs now supports the stable_inodes (COMPAT_STABLE_INODES) feature. 16This needed to support fscrypt siphash algorithm, which calculates the 17initial vector (IV) for encryption based on the UUID and the inode 18number. This means that we can't renumber inodes (for example, when 19shrinking a file system) and the UUID can't be changed without breaking 20the ability to decrypt the encryption. 21 22E2fsprogs now supports file systems which have both file system 23encryption and the casefold feature enabled. This is used in some 24Android handsets, but has not yet landed upstream yet. 25 26E2fsck now will check file names on file systems with case folding 27enabled to make sure the characters are valid UTF-8 characters. This is 28done for file systems which enforce strict encodings, and optionally if 29the extended "check_encoding" option is requested. 30 31The fuse2fs program now supports the "-o norecovery" option, which will 32suppress any journal replay that might be necessary, and mounts the file 33system read-only. 34 35E2fsck will now find and fix file system corruptions when the encrypted 36files have a different policy from their containing directory. 37 38The "htree" command in debugfs now displays the metadata checksums for 39hash tree index blocks. 40 41Dumpe2fs will print the error code that Linux kernels newer than v5.6 42will save to indicate the class of error which triggered the ext4_error 43event. 44 45E2fsprogs programs (in particular, fuse2fs) can now update htree 46directories without clearing the htree index. 47 48Mke2fs now sets the s_overhead_cluster field, so that the kernel doesn't 49need to calculate it at mount time. This speeds up mounting very large 50file systems. 51 52 53Fixes 54----- 55 56E2fsck will properly handle checking for duplicated file names when case 57folding is enabled. 58 59Fix various bugs where a maliciously corrupted file systems could case 60e2fsck and other e2fsprogs programs to crash. 61 62Tune2fs will properly recalculate directory block checksums when 63clearing the dir_index feature. 64 65Fix a bug in e2fsck directory rehashing which could fail with ENOSPC 66because it doesn't take into account the space needed for the metadata 67checksum, and doesn't create a sufficiently deep index tree. 68 69Clarify the e2fsck messages when it resets the directory link count when 70it is set to the overflow value but it is no longer needed. 71 72The filefrag program can now request the kernel to display the extent 73status cache by using "filefrag -E". (This requires Linux version 5.4 74or newer.) 75 76 77Performance, Internal Implementation, Development Support etc. 78-------------------------------------------------------------- 79 80Speed up mke2fs when creating large bigalloc file systems by optimizing 81ext2fs_convert_subcluster_bitmap(). 82 83Bitmap blocks are now read using multiple threads (for systems with 84pthread support). This speeds up dumpe2fs, e2fsck, and debugfs for very 85large file systems. 86 87The dumpe2fs and tune2fs will now avoiding to read the block group 88descriptors when they are not needed, which speeds up these program when 89operating on very large file systems. 90 91Drop use of the sysctl(2) system call, which is deprecated in Linux. 92 93Add support for "configure --enable-developer-features" which enables 94features only meant for developer. The first such feature is "e2fsck -E 95clear_all_uninit_bits", which clears the uninitialized bit on all 96extents for all inodes. Note that this can end up exposing uninitialized 97data to userspace, and should only used in very specialized situations. 98 99The e2fsck/revoke.c and e2fsck/recovery.c files are now kept idential 100with the fs/jbd2 versions of these files in the kernel. 101 102Fix various compiler and Coverity warnings. 103 104Update to use gettext 0.19.8. This also removes the built-in "intl" 105directory as this is now considered deprecated by gettext. This means 106that if the system doesn't have gettext installed on the build system, 107we will simply disable NLS support. 108 109