xref: /aosp_15_r20/external/e2fsprogs/doc/RelNotes/v1.44.3.txt (revision 6a54128f25917bfc36a8a6e9d722c04a0b4641b6)
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