1 E2fsprogs 1.43 (May 17, 2016) 2 ============================= 3 4 Add support for the ext4 metadata checksum, checksum seed, inline 5 data, encryption, project quota, and read-only features. 6 7 Support for the very old, experimental, and never-added-to-mainline 8 compression feature has been removed. 9 10 Mke2fs will now create file systems with the metadata_csum and 64bit 11 features enabled by default. 12 13 The mke2fs program will now support multiple -O options (instead of 14 just ignoring all but the last -O option). 15 16 Mke2fs will now correctly determine the size of a file system and 17 handle the discard operation correctly when the "-E offset=NNN" is 18 used. (Addresses Debian Bug: #803629) 19 20 The tune2fs program will ask the user for confirmation before starting 21 dangerous operations if the terminal is available, and it will replay 22 the journal if necessary. 23 24 Add an ext2/3/4 FUSE server 25 26 Debugfs can now modify extended attributes and journal transactions. 27 28 Debugfs now can properly display and set extended timestamps. 29 30 E2fsck will offer to fix extended timestamps that were incorrectly 31 encoded by older kernels. 32 33 Fix miscellaneous MMP bugs in debugfs. 34 35 Fix sparse_super2 bugs in mke2fs and resize2fs. 36 37 Fix or improve offset support in mke2fs, e2undo, and libext2fs. 38 39 The resize2fs command can now convert file systems between 64-bit and 40 32-bit mode. 41 42 Fix potential out-of-bounds memory access in resize2fs when doing a 43 large off-line file system grow operation. 44 45 We now use a new e2undo file format which is much more efficient and 46 faster than the old tdb-based scheme. Since it so much faster, 47 e2fsck, tune2fs, debugfs, and resize2fs now also can support using 48 creating an undo file. 49 50 The mke2fs command can now set the error behavior when initializing 51 the file system (so the administrator doesn't have to issue a separate 52 tune2fs -e command). 53 54 Teach mke2fs to parse a human-readable argument for -i option. 55 56 Teach mke2fs to automatically handle creating file systems > 500T by 57 automatically enable the meta_bg feature. 58 59 Mke2fs will now prompt for user verification before rewriting a file 60 system's superblock using the -S option. 61 62 Mke2fs no longer complains if the user tries to create a file system 63 using the entire block device (e.g., without using a partition). The 64 minor number convention is not used by all block devices, and it's 65 quite normal in some circumstances to create a file system on /dev/sdc 66 instead of /dev/sdc1. 67 68 Fix an "mke2fs -d" bug which could create inodes with invalid 69 extended attribute blocks 70 71 E2fsck is now much more paranoid about not freeing or corrupting 72 critical metadata blocks, such as inode table blocks, even if 73 corrupted indirect blocks or extent trees point at these blocks. 74 75 E2fsck now prints block ranges in pass1b instead of listing all of the 76 blocks exhaustively. 77 78 E2fsck will try to expand the root directory if the lost+found can't 79 be linked to the root directory. Also, offer to use the root 80 directory if lost+found can't be created. 81 82 E2fsck is now more paranoid handling corrupted extent trees as well as 83 corrupted journals. 84 85 E2fsck can now rebuild extent trees, either (a) to optimize them, (b) 86 to recover from a corrupted extent tree, or (c) to convert 87 block-mapped inodes to use extents. 88 89 E2fsck now has a readahead mechanism which can significantly speed its 90 performance, especially on RAID arrays. 91 92 E2fsck now has a "yes to all" option which the user can give if she is 93 tired of answering 'y' to a very large number of questions. 94 95 E2fsck will now ignore the badblocks inode if the contents of the 96 badblocks inode indicate that the portion inode table containing the 97 badblocks inode is bad. (We must go deeper...) 98 99 E2fsck can now correctly fix directory with holes on bigalloc file 100 systems. 101 102 E2fsck will now check for extent mapped inodes with no extent header 103 and clear them if found. 104 105 E2fsck now checks to make sure the extended attribute header doesn't 106 result in the xattr extending beyond the bounds of the inode 107 108 Fixed a bug in e2fsck to avoid overrunning a buffer containing jbd2 109 revoke records if the journal is corrupted. 110 111 Fixed a bug in e2fsck which could cause it loop forever if a special 112 inode has too many invalid block mappings. 113 114 Fixed a bug in e2fsck which could cause pass1b/c/d processing to get 115 confused if an attempt to allocate a block can't find any free space 116 in the file system. 117 118 E2fsck will no longer try to force rewrite blocks located beyond the 119 file system. 120 121 The e2fsck program will no longer update the quota inodes when it is 122 interrupted. 123 124 Fix a bug which in rare cases would cause e2fsck -fD to corrupt an 125 extent-mapped directory. 126 127 Fixed a bug in resize2fs which could lead to resize2fs crashing or a 128 corrupted file system if the file system is almost completely full 129 when trying grow a file system and we need to allocate blocks to grow 130 the block group descriptors. 131 132 Fixed a bug in resize2fs which could cause it to get fooled trying to 133 determine the RAID array's stride when flex_bg is enabled. 134 135 Fix resize2fs bug that could leave block allocation bitmaps 136 uninitialized. 137 138 The dumpe2fs output has been improved so it is cleaner and always fits 139 within 80 columns. Also added a more easily machine-parsable output 140 of dumpe2fs. 141 142 The mke2fs program can now pre-populate a file system from a directory 143 hierarchy using the -d option. 144 145 The mke2fs program now skips zeroing inode table blocks if they were 146 already zeroed using the discard feature. 147 148 Check to make sure file system features which can not be supported by 149 HURD are not enabled if the file system is created to be 150 HURD-compatible. 151 152 Added a new e2fuzz command that will fuzz an ext4 image for testing 153 purposes. 154 155 The debugfs logdump command can now deal with 64-bit revoke tables 156 correctly. Also, "logdump -O" will print the old log contents (before 157 the journal was replayed). 158 159 The debugfs bmap command can now be used to set or allocate a physical 160 block. 161 162 Fixed a bug so "filefrag -B -e -v" does not return a separate entry 163 for each block. 164 165 The filefrag program now accounts for holes in sparse files created by 166 the file punch operation as an expected/optimal mapping. 167 168 The file I/O functions now correctly handle inodes containing 169 uninitialized blocks. 170 171 Fix a bug in tune2fs so that removing uninit_bg feature on a bigalloc 172 file system won't result in corrupted block bitmaps. 173 174 Updated/fixed various man pages. (Addresses Debian Bug: #798425) 175 176 177 Programmer's Notes 178 ------------------ 179 180 Fixed coverity, sparse, gcc -Wall, and clang warnings/nits. 181 182 Added Android build files so that e2fsprogs can be built in the 183 Android source tree. 184 185 Reduce the use of libc functions in libext2fs that may not be present 186 in the boot loader environment, at least for those functions that are 187 needed by boot loaders such as yaboot. 188 189 Developers can now override the debugging and optimization flags by 190 redefining the CFLAGS makefile macro. 191 192 The libext2fs library now has support for fallocate. 193 194 The mke2fs command will now ask the user for confirmation if block 195 device or image file contains an existing file system image, and 196 stdout and stdin are connected to a tty. 197 198 The libext2fs library now picks a more intelligent goal block when 199 doing block allocations. 200 201 The libext2fs library will now automatically set the BLOCK_UNINT flag 202 if all of the blocks in a block group are free, to speed up future 203 e2fsck and dumpe2fs operations on the file system. 204 205 Add two new functions ext2fs_new_range() and ext2fs_alloc_range() to 206 libext2fs. 207 208 The ext2fs_zero_blocks() command will use FALLOC_FL_ZERO_RANGE for 209 file-based images. 210 211 The ext2fs_bmap() function supports new flags BMAP_UNINIT and 212 BMAP_ZERO. 213 214 The ext2fs_new_block2() function will now call the alloc_block hook 215 before checking fs->block_map. 216 217 Support for the MMP feature can now be disabled at compile time. 218 219 Added support to manipulate extended attributes to libext2fs. 220 221 Added a lot of new regression tests. 222 223 Added endian annotations so it's possible to scan e2fsprogs for endian 224 problems using a static code analyzer. 225 226 Fixed memory leaks in libext2fs. 227 228 The e2fsck jbd2 handling code has been resynced with the 3.16 kernel. 229 There is now a script in the contrib directory which automates most of 230 the resync process. 231 232 The build system will now run cppcheck (a static code analysis tool) 233 via "make C=1" 234 235