Package: e2fsprogs / 1.47.2-3~bpo12+1
Metadata
Package | Version | Patches format |
---|---|---|
e2fsprogs | 1.47.2-3~bpo12+1 | 3.0 (quilt) |
Patch series
view the series filePatch | File delta | Description |
---|---|---|
0001 e2fsck fix logic bug when there are no references to.patch | (download) |
e2fsck/pass4.c |
2 1 + 1 - 0 ! |
e2fsck: fix logic bug when there are no references to an ea inode There was a boolean logic error which, among other things, could cause an attempt to modify an inode in e2fsck -n mode: e2fsck 1.47.2 (1-Jan-2025) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts ext2fs_write_inode: Attempt to write to filesystem opened read-only while writing inode 14 in pass4 e2fsck: aborted Fixes: 849a9e6e133a ("e2fsck: add more checks for ea inode consistency") |
0002 test fix expect files which changed after EA bugfix.patch | (download) |
tests/f_ea_inode_disconnected/expect.1 |
2 2 + 0 - 0 ! |
test: fix expect files which changed after ea bugfix The logic bug which was fixed in commit 92b6e93936d7 ("e2fsck: fix logic bug when there are no references...") resulted in some silent fixes that were never logged, and in some cases, corruption that was not cleaned up. Fix the tests so that they pass as expected. Fixes: 92b6e93936d7 ("e2fsck: fix logic bug when there are no references..." |
0003 libext2fs teach ext2fs_extent_set_bmap to update ext.patch | (download) |
lib/ext2fs/extent.c |
25 24 + 1 - 0 ! |
libext2fs: teach ext2fs_extent_set_bmap() to update extents more optimally When programs like resize2fs or e2fsck relocates all of the blocks in an extent one at a time, the ext2fs_extent_set_bmap() works by initially adding a new extent and then moving mapping from the old extent to the new extent. For example: t=1 EXTENTS: (0-2) 1152-1154 t=2 EXTENTS: (0) 1136, (1-2) 1153-1154 t=3 EXTENTS: (0-1) 1136-1137, (2) 1154 Unfortunately, previously, when the last block is updated, the resulting extent tree will have two extents instead of one, like this: t=4 EXTENTS: (0-1) 1136-1137, (2) 1138 With this commit, the resulting extent tree will be more optimally represented with a single extent: t=4 EXTENTS: (0-2) 1136-1138 The optimization in this commit solves the prolem reproted at: https://github.com/tytso/e2fsprogs/issues/146 In that case, the file had a very large, complex (fragmented) extent tree, and resize2fs needed to relcate all of its blocks as part of a off-line shrink, the lack of the optimization led to an extent block overflowing, resulting in the old extent (the one which originally mapped logical block 2507128 to physical block 389065080) and the new |
0004 e2image.8 add missing comma.patch | (download) |
misc/e2image.8.in |
2 1 + 1 - 0 ! |
e2image.8: add missing comma |
0005 debugfs byteswap dirsearch dirent buf on big endian .patch | (download) |
debugfs/htree.c |
6 6 + 0 - 0 ! |
debugfs: byteswap dirsearch dirent buf on big endian systems fstests test ext4/048 fails on big endian systems due to broken debugfs dirsearch functionality. On an s390x system and 4k block size, the dirsearch command seems to hang indefinitely. On the same system with a 1k block size, the command fails to locate an existing entry and causes the test to fail due to unexpected results. The cause of the dirsearch failure is lack of byte swapping of the on-disk (little endian) dirent buffer before attempting to iterate entries in the given block. This leads to garbage record and name length values, for example. To resolve this problem, byte swap the directory buffer on big endian systems. |
0006 fuse2fs refuse unsupported features.patch | (download) |
misc/fuse2fs.c |
20 20 + 0 - 0 ! |
fuse2fs: refuse unsupported features Don't mount a filesystem with superblock features that we don't actually know how to support. |
0007 fuse2fs return EOPNOTSUPP when we don t recognize a .patch | (download) |
misc/fuse2fs.c |
2 1 + 1 - 0 ! |
fuse2fs: return -eopnotsupp when we don't recognize a fallocate mode If we don't recognize a set bit in the mode parameter to fallocate, return EOPNOTSUPP to communicate that we don't support that mode instead of EINVAL. This avoids unnecessary failures in generic/521. |
0008 fuse2fs remove posix acl translation.patch | (download) |
misc/fuse2fs.c |
267 4 + 263 - 0 ! |
fuse2fs: remove posix acl translation Remove the POSIX ACL format translation since libext2fs takes care of that now. Fixes: 0ee1eaf70c257e ("libext2fs: translate internal ext4 acl to Posix ACL in ext2fs_xattr_[sg]et()") |
0009 fuse2fs clamp timestamps that are being written to d.patch | (download) |
lib/ext2fs/ext2_fs.h |
4 4 + 0 - 0 ! |
fuse2fs: clamp timestamps that are being written to disk Clamp the timestamps that we write to disk to the minimum and maximum values permitted given the ondisk format. This fixes y2038 support, as tested by generic/402. |
0010 fuse2fs update new child timestamps during mkdir sym.patch | (download) |
misc/fuse2fs.c |
2 2 + 0 - 0 ! |
fuse2fs: update new child timestamps during mkdir/symlink These two file creation functions fail to update the timestamps of the new child file, unlike the others (mknod/creat). Fix that. |
0011 fuse2fs disable renameat2.patch | (download) |
misc/fuse2fs.c |
6 6 + 0 - 0 ! |
fuse2fs: disable renameat2 Apparently fuse munged rename and renameat2 together into the same upcall, so we actually have to filter out nonzero flags because otherwise we do a regular rename for a RENAME_EXCHANGE/WHITEOUT, which is not what the user asked for. |
0012 debugfs abort reading a file on failure when dumping.patch | (download) |
debugfs/dump.c |
4 3 + 1 - 0 ! |
debugfs: abort reading a file on failure when dumping out a file If ext2fs_file_read() fails |
0013 mke2fs disallow O verity without extents.patch | (download) |
misc/mke2fs.c |
8 8 + 0 - 0 ! |
mke2fs: disallow -o verity without extents Similar to 64-bit support, fs-verity support requires extents, so don't allow to create a filesystem that has -O verity unless it also supports extents. |
0014 e2fsck fix e2fsck E unshare_blocks when there are no.patch | (download) |
e2fsck/pass1.c |
5 5 + 0 - 0 ! |
e2fsck: fix e2fsck -e unshare_blocks when there are no shared blocks If there are no shared blocks in a ext4 file system, e2fsck -E unshare_blocks will not actually clear the shared_blocks feature flag since e2fsck_pass1_dupblocks() is never called. Fix this by adding a check in e2fsck_pass1() to clear the shared blocks flag. Bug: https://github.com/tytso/e2fsprogs/issues/218 |
0015 e2freefrag require that the chunksize must be greate.patch | (download) |
misc/e2freefrag.c |
2 1 + 1 - 0 ! |
e2freefrag: require that the chunksize must be greater than 0 "e2freefrag -c 0" doesn't make much sense, so abort with an error message if the user specifies a zero chunksize. Addresses-Coverity-Bug: 1633767 |
0016 mke2fs add range checks for E desc_size.patch | (download) |
misc/mke2fs.c |
5 4 + 1 - 0 ! |
mke2fs: add range checks for -e desc_size Prevent the user from specifying group descriptor that result in invalid/corrupted file systems. |
0017 debugfs return after printing the usage message in t.patch | (download) |
misc/e2freefrag.c |
9 9 + 0 - 0 ! |
debugfs: return after printing the usage message in the e2freefrag command |
0020 mke2fs fix a misindentation in the man page.patch | (download) |
misc/mke2fs.8.in |
2 1 + 1 - 0 ! |
mke2fs: fix a misindentation in the man page Problem existed since commit 3c22bf7e70 from twelve years ago. |
0021 libext2fs fix a extent tree corruption bug in ext2fs.patch | (download) |
lib/ext2fs/extent.c |
18 9 + 9 - 0 ! |
libext2fs: fix a extent tree corruption bug in ext2fs_extent_set_bmap() In the case where we are moving a particular logical block mapping from a particular extent tree entry, to the immediately precending entry (when the physical block or uninitialized flag is changing so it can be coalesced with the precending entry) and the precending entry |
0022 libext2fs fix integer overflow in ext2fs_punch when .patch | (download) |
lib/ext2fs/punch.c |
8 4 + 4 - 0 ! |
libext2fs: fix integer overflow in ext2fs_punch() when releasing more than 2**31 blocks |