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