Changes between Initial Version and Version 3 of Ticket #1113


Ignore:
Timestamp:
Apr 14, 2017, 12:54:29 PM (8 years ago)
Author:
William Harrington
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1113

    • Property MilestoneCLFS Standard 3.1.0
    • Property Summary E2fsprogs 1.43E2fsprogs 1.43.4
    • Property VersionCLFS Standard GIT
  • Ticket #1113 – Description

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