1*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.46.0 (January 29, 2021) 2*6a54128fSAndroid Build Coastguard Worker=================================== 3*6a54128fSAndroid Build Coastguard Worker 4*6a54128fSAndroid Build Coastguard WorkerUpdates/Fixes since v1.45.7: 5*6a54128fSAndroid Build Coastguard Worker 6*6a54128fSAndroid Build Coastguard WorkerUI and Features 7*6a54128fSAndroid Build Coastguard Worker--------------- 8*6a54128fSAndroid Build Coastguard Worker 9*6a54128fSAndroid Build Coastguard WorkerE2fsprogs now supports the fast_commit (COMPAT_FAST_COMMIT) feature. 10*6a54128fSAndroid Build Coastguard WorkerThis feature, first available in Linux version 5.10, adds a fine-grained 11*6a54128fSAndroid Build Coastguard Workerjournalling which improves the latency of the fsync(2) system call. It 12*6a54128fSAndroid Build Coastguard Workershould also improve the performance of ext4 file systems exported via 13*6a54128fSAndroid Build Coastguard WorkerNFS. 14*6a54128fSAndroid Build Coastguard Worker 15*6a54128fSAndroid Build Coastguard WorkerE2fsprogs now supports the stable_inodes (COMPAT_STABLE_INODES) feature. 16*6a54128fSAndroid Build Coastguard WorkerThis needed to support fscrypt siphash algorithm, which calculates the 17*6a54128fSAndroid Build Coastguard Workerinitial vector (IV) for encryption based on the UUID and the inode 18*6a54128fSAndroid Build Coastguard Workernumber. This means that we can't renumber inodes (for example, when 19*6a54128fSAndroid Build Coastguard Workershrinking a file system) and the UUID can't be changed without breaking 20*6a54128fSAndroid Build Coastguard Workerthe ability to decrypt the encryption. 21*6a54128fSAndroid Build Coastguard Worker 22*6a54128fSAndroid Build Coastguard WorkerE2fsprogs now supports file systems which have both file system 23*6a54128fSAndroid Build Coastguard Workerencryption and the casefold feature enabled. This is used in some 24*6a54128fSAndroid Build Coastguard WorkerAndroid handsets, but has not yet landed upstream yet. 25*6a54128fSAndroid Build Coastguard Worker 26*6a54128fSAndroid Build Coastguard WorkerE2fsck now will check file names on file systems with case folding 27*6a54128fSAndroid Build Coastguard Workerenabled to make sure the characters are valid UTF-8 characters. This is 28*6a54128fSAndroid Build Coastguard Workerdone for file systems which enforce strict encodings, and optionally if 29*6a54128fSAndroid Build Coastguard Workerthe extended "check_encoding" option is requested. 30*6a54128fSAndroid Build Coastguard Worker 31*6a54128fSAndroid Build Coastguard WorkerThe fuse2fs program now supports the "-o norecovery" option, which will 32*6a54128fSAndroid Build Coastguard Workersuppress any journal replay that might be necessary, and mounts the file 33*6a54128fSAndroid Build Coastguard Workersystem read-only. 34*6a54128fSAndroid Build Coastguard Worker 35*6a54128fSAndroid Build Coastguard WorkerE2fsck will now find and fix file system corruptions when the encrypted 36*6a54128fSAndroid Build Coastguard Workerfiles have a different policy from their containing directory. 37*6a54128fSAndroid Build Coastguard Worker 38*6a54128fSAndroid Build Coastguard WorkerThe "htree" command in debugfs now displays the metadata checksums for 39*6a54128fSAndroid Build Coastguard Workerhash tree index blocks. 40*6a54128fSAndroid Build Coastguard Worker 41*6a54128fSAndroid Build Coastguard WorkerDumpe2fs will print the error code that Linux kernels newer than v5.6 42*6a54128fSAndroid Build Coastguard Workerwill save to indicate the class of error which triggered the ext4_error 43*6a54128fSAndroid Build Coastguard Workerevent. 44*6a54128fSAndroid Build Coastguard Worker 45*6a54128fSAndroid Build Coastguard WorkerE2fsprogs programs (in particular, fuse2fs) can now update htree 46*6a54128fSAndroid Build Coastguard Workerdirectories without clearing the htree index. 47*6a54128fSAndroid Build Coastguard Worker 48*6a54128fSAndroid Build Coastguard WorkerMke2fs now sets the s_overhead_cluster field, so that the kernel doesn't 49*6a54128fSAndroid Build Coastguard Workerneed to calculate it at mount time. This speeds up mounting very large 50*6a54128fSAndroid Build Coastguard Workerfile systems. 51*6a54128fSAndroid Build Coastguard Worker 52*6a54128fSAndroid Build Coastguard Worker 53*6a54128fSAndroid Build Coastguard WorkerFixes 54*6a54128fSAndroid Build Coastguard Worker----- 55*6a54128fSAndroid Build Coastguard Worker 56*6a54128fSAndroid Build Coastguard WorkerE2fsck will properly handle checking for duplicated file names when case 57*6a54128fSAndroid Build Coastguard Workerfolding is enabled. 58*6a54128fSAndroid Build Coastguard Worker 59*6a54128fSAndroid Build Coastguard WorkerFix various bugs where a maliciously corrupted file systems could case 60*6a54128fSAndroid Build Coastguard Workere2fsck and other e2fsprogs programs to crash. 61*6a54128fSAndroid Build Coastguard Worker 62*6a54128fSAndroid Build Coastguard WorkerTune2fs will properly recalculate directory block checksums when 63*6a54128fSAndroid Build Coastguard Workerclearing the dir_index feature. 64*6a54128fSAndroid Build Coastguard Worker 65*6a54128fSAndroid Build Coastguard WorkerFix a bug in e2fsck directory rehashing which could fail with ENOSPC 66*6a54128fSAndroid Build Coastguard Workerbecause it doesn't take into account the space needed for the metadata 67*6a54128fSAndroid Build Coastguard Workerchecksum, and doesn't create a sufficiently deep index tree. 68*6a54128fSAndroid Build Coastguard Worker 69*6a54128fSAndroid Build Coastguard WorkerClarify the e2fsck messages when it resets the directory link count when 70*6a54128fSAndroid Build Coastguard Workerit is set to the overflow value but it is no longer needed. 71*6a54128fSAndroid Build Coastguard Worker 72*6a54128fSAndroid Build Coastguard WorkerThe filefrag program can now request the kernel to display the extent 73*6a54128fSAndroid Build Coastguard Workerstatus cache by using "filefrag -E". (This requires Linux version 5.4 74*6a54128fSAndroid Build Coastguard Workeror newer.) 75*6a54128fSAndroid Build Coastguard Worker 76*6a54128fSAndroid Build Coastguard Worker 77*6a54128fSAndroid Build Coastguard WorkerPerformance, Internal Implementation, Development Support etc. 78*6a54128fSAndroid Build Coastguard Worker-------------------------------------------------------------- 79*6a54128fSAndroid Build Coastguard Worker 80*6a54128fSAndroid Build Coastguard WorkerSpeed up mke2fs when creating large bigalloc file systems by optimizing 81*6a54128fSAndroid Build Coastguard Workerext2fs_convert_subcluster_bitmap(). 82*6a54128fSAndroid Build Coastguard Worker 83*6a54128fSAndroid Build Coastguard WorkerBitmap blocks are now read using multiple threads (for systems with 84*6a54128fSAndroid Build Coastguard Workerpthread support). This speeds up dumpe2fs, e2fsck, and debugfs for very 85*6a54128fSAndroid Build Coastguard Workerlarge file systems. 86*6a54128fSAndroid Build Coastguard Worker 87*6a54128fSAndroid Build Coastguard WorkerThe dumpe2fs and tune2fs will now avoiding to read the block group 88*6a54128fSAndroid Build Coastguard Workerdescriptors when they are not needed, which speeds up these program when 89*6a54128fSAndroid Build Coastguard Workeroperating on very large file systems. 90*6a54128fSAndroid Build Coastguard Worker 91*6a54128fSAndroid Build Coastguard WorkerDrop use of the sysctl(2) system call, which is deprecated in Linux. 92*6a54128fSAndroid Build Coastguard Worker 93*6a54128fSAndroid Build Coastguard WorkerAdd support for "configure --enable-developer-features" which enables 94*6a54128fSAndroid Build Coastguard Workerfeatures only meant for developer. The first such feature is "e2fsck -E 95*6a54128fSAndroid Build Coastguard Workerclear_all_uninit_bits", which clears the uninitialized bit on all 96*6a54128fSAndroid Build Coastguard Workerextents for all inodes. Note that this can end up exposing uninitialized 97*6a54128fSAndroid Build Coastguard Workerdata to userspace, and should only used in very specialized situations. 98*6a54128fSAndroid Build Coastguard Worker 99*6a54128fSAndroid Build Coastguard WorkerThe e2fsck/revoke.c and e2fsck/recovery.c files are now kept idential 100*6a54128fSAndroid Build Coastguard Workerwith the fs/jbd2 versions of these files in the kernel. 101*6a54128fSAndroid Build Coastguard Worker 102*6a54128fSAndroid Build Coastguard WorkerFix various compiler and Coverity warnings. 103*6a54128fSAndroid Build Coastguard Worker 104*6a54128fSAndroid Build Coastguard WorkerUpdate to use gettext 0.19.8. This also removes the built-in "intl" 105*6a54128fSAndroid Build Coastguard Workerdirectory as this is now considered deprecated by gettext. This means 106*6a54128fSAndroid Build Coastguard Workerthat if the system doesn't have gettext installed on the build system, 107*6a54128fSAndroid Build Coastguard Workerwe will simply disable NLS support. 108*6a54128fSAndroid Build Coastguard Worker 109