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