1E2fsprogs 1.44.3 (July 10, 2018) 2================================ 3 4Updates/Fixes since v1.44.2: 5 6UI and Features 7--------------- 8 9The debugfs inode_dump command can now print a hex dump of the i_block 10array and the extra space in the inode, as a convenience to someone 11investigating a corrupted inode. 12 13The debugfs block_dump and inode_dump command can now print low-level 14dump of extended attribute data structures in the block or inode. 15 16The dumpe2fs command can now print out information in the Multi-Mount 17Protection (MMP) block. This is also available as e2mmpstatus command 18for compatibility with the Lustre utilities. 19 20The debugfs command can now operate on some file systems with 21corrupted superblocks so they can be fixed. This includes file 22systems with a corrupted inodes count field and file systems where not 23all of the allocation bitmaps have valid locations or are not 24readable. 25 26 27Fixes 28----- 29 30The inode's project ID is now properly byte-swapped on big-endian 31systems. 32 33E2fsprogs now ignores s_desc_size for file systems that do not have 34the 64-bit feature set. This makes it more consistent with the 35kernel, so it can now operate on file systems that the kernel is 36willing to mount. 37 38E2fsck now considers device inodes with the extents flag as corrupt 39and offer to clear them. 40 41E2fsck more properly handles cases where s_inodes_count is corrupted. 42 43E2fsck no longer spews large number of errors when the superblock 44badly corrupted (restoring its behavior pre-1.43). 45 46E2fsck will now offer to set the dir_nlink feature if it is not set 47and file system requires the dir_nlink feature because there are too 48many subdirectories in a directory. 49 50E2fsck will no longer loop infinitely due to a maliciously crafted 51file system which has a fully uninitialized inode table in the first 52block group. 53 54E2fsck will no longer hang if the last block in the file system is a 55fixed-metadata block. (Very rare, but could happen.) 56 57E2fsck no longer allows initialized blocks to exist past i_size. This 58is something the Linux implementation of ext4 has never done (and should 59never do). 60 61While replaying the journal in e2fsck, certain errors would previously 62cause e2fsck to print a non-sensical error message (e.g., "Unknown code 63____ 251 while recovering journal"). This has been fixed. 64 65In cases where more than 75% of the block group will be used for group 66descriptor table, mke2fs would previously create an invalid file 67system with both the meta_bg and resize_inode features enabled. It 68will now disable the resize_inode feature. 69 70The mke2fs program now properly creates a file system which is exactly 711 << 32 blocks. Previously the s_inodes_count field would overflow, 72and the file system would be created with a minimal number of inodes. 73 74Recent kernels will report errors on a file or block device which 75occurred before the file or block device was opened via fsync() or 76close(). This will cause e2fsck to incorrectly report a failure. Work 77around this by calling fsync() immediately after the file or block 78device is opened in the unix_io layer, and throwing away the error. 79 80Filefrag will no longer ignore errors returned by fsync. 81 82Debugfs will no longer print spurious checksum errors when failing to 83open a file system for unrelated reasons. 84 85Updated/fixed various man pages. (Addresses Launchpad Bug: #1743553) 86 87 88 89Performance, Internal Implementation, Development Support etc. 90-------------------------------------------------------------- 91 92Synchronized changes from Android's AOSP e2fsprogs tree. 93 94Debugfs's mknod command now works correctly on some 32-bit systems where 95previously it had a portability problem caused by some object files 96being compiled with LFS, and some without. This fixes some regression 97test failures on 32-bit MIPS (for example). 98 99Various clean ups, portability, and performance improvements to 100e2fsprogs's regression test framework. 101 102Fixed Coverity, sparse, gcc -Wall, and clang warnings/nits. 103 104Update Czech, Dutch, Spanish, French, Polish, Swedish, Ukrainian, and 105Vietnamese translations. 106 107