Debian Patches

Status for e2fsprogs/1.47.2-3~bpo12+1

Patch Description Author Forwarded Bugs Origin Last update
0001-e2fsck-fix-logic-bug-when-there-are-no-references-to.patch 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
Theodore Ts'o <tytso@mit.edu> no upstream, https://github.com/tytso/e2fsprogs/commit/92b6e93936d7a0f6d7ce7a9f142e2c0ee9afbeaf
0002-test-fix-expect-files-which-changed-after-EA-bugfix.patch 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.
Theodore Ts'o <tytso@mit.edu> no upstream, https://github.com/tytso/e2fsprogs/commit/ddd4f796d9dfdb80e5639ca8411e8e4891d3c7f1
0003-libext2fs-teach-ext2fs_extent_set_bmap-to-update-ext.patch 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
extent landing in two different leaf blocks:

2/ 2 1/ 1 2507128 - 2507128 640097 - 640097 1
2/ 2 1/135 2507128 - 2507128 389065080 - 389065080 1

This resulted a corrupted extent tree block and data loss.
Theodore Ts'o <tytso@mit.edu> no upstream, https://github.com/tytso/e2fsprogs/commit/ea825a53bcb214de7356c2ebd8a10d005613bec3
0004-e2image.8-add-missing-comma.patch e2image.8: add missing comma Jakub Wilk <jwilk@jwilk.net> no upstream, https://github.com/tytso/e2fsprogs/commit/5a6ec683252be78ccda7dec7dac530f2ebc46ce6
0005-debugfs-byteswap-dirsearch-dirent-buf-on-big-endian-.patch 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.
Brian Foster <bfoster@redhat.com> no upstream, https://github.com/tytso/e2fsprogs/commit/4be42019388d76c933e3b2ea80284aaf5b8eaecb
0006-fuse2fs-refuse-unsupported-features.patch fuse2fs: refuse unsupported features
Don't mount a filesystem with superblock features that we don't actually
know how to support.
"Darrick J. Wong" <djwong@kernel.org> no upstream, https://github.com/tytso/e2fsprogs/commit/ccbc6f24fed095b28f9faa7b575159e49787fae0
0007-fuse2fs-return-EOPNOTSUPP-when-we-don-t-recognize-a-.patch 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.
"Darrick J. Wong" <djwong@kernel.org> no upstream, https://github.com/tytso/e2fsprogs/commit/7775293c08d2255e90b1e003ee532d826af52d95
0008-fuse2fs-remove-posix-acl-translation.patch fuse2fs: remove posix acl translation
Remove the POSIX ACL format translation since libext2fs takes care of
that now.
"Darrick J. Wong" <djwong@kernel.org> no upstream, https://github.com/tytso/e2fsprogs/commit/0111bdb70a9c460052387111414a2e2dc8c06822
0009-fuse2fs-clamp-timestamps-that-are-being-written-to-d.patch 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.
"Darrick J. Wong" <djwong@kernel.org> no upstream, https://github.com/tytso/e2fsprogs/commit/e13395876d63cebf008101b934ee9e5cdaae0150
0010-fuse2fs-update-new-child-timestamps-during-mkdir-sym.patch 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.
"Darrick J. Wong" <djwong@kernel.org> no upstream, https://github.com/tytso/e2fsprogs/commit/f73fbf8e2cee1f2d49f4e7573eadb9f1cf141879
0011-fuse2fs-disable-renameat2.patch 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.
"Darrick J. Wong" <djwong@kernel.org> no upstream, https://github.com/tytso/e2fsprogs/commit/b431abbc8fe0fd1de4e414aae3520c4c19411048
0012-debugfs-abort-reading-a-file-on-failure-when-dumping.patch debugfs: abort reading a file on failure when dumping out a file
If ext2fs_file_read() fails --- perhaps due to a corrupted file
system, or an I/O error --- avoid looping forever in dump_file().

This issue was pointed out in [1] by Quentin Kaiser but the commit
description was too confusing and specific to the user's particular
situation.

[1] https://github.com/tytso/e2fsprogs/pull/149
Theodore Ts'o <tytso@mit.edu> no upstream, https://github.com/tytso/e2fsprogs/commit/51d68472456d22b6e64159244be63bce51473691
0013-mke2fs-disallow-O-verity-without-extents.patch 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.
Allison Karlitskaya <allison.karlitskaya@redhat.com> no upstream, https://github.com/tytso/e2fsprogs/commit/03fa1a5ee55d0653f5931cea3cab760599bab216
0014-e2fsck-fix-e2fsck-E-unshare_blocks-when-there-are-no.patch 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.
Theodore Ts'o <tytso@mit.edu> yes upstream upstream, https://github.com/tytso/e2fsprogs/commit/707af4359e132bc415c3f6339f4ced9f23b28c0b
0015-e2freefrag-require-that-the-chunksize-must-be-greate.patch 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.
Theodore Ts'o <tytso@mit.edu> no upstream, https://github.com/tytso/e2fsprogs/commit/3e059df08de94abde1ddd82008d0658584a35e5e
0016-mke2fs-add-range-checks-for-E-desc_size.patch mke2fs: add range checks for -E desc_size
Prevent the user from specifying group descriptor that result in
invalid/corrupted file systems.
Theodore Ts'o <tytso@mit.edu> no upstream, https://github.com/tytso/e2fsprogs/commit/326e8ab43503dd9f44338754c84cb03a725ecc49
0017-debugfs-return-after-printing-the-usage-message-in-t.patch debugfs: return after printing the usage message in the e2freefrag command Theodore Ts'o <tytso@mit.edu> no upstream, https://github.com/tytso/e2fsprogs/commit/0c675a67c5684252e3a228c824b0accb9f3ab5d7
0020-mke2fs-fix-a-misindentation-in-the-man-page.patch mke2fs: fix a misindentation in the man page
Problem existed since commit 3c22bf7e70 from twelve years ago.
Benno Schulenberg <bensberg@telfort.nl> no upstream, https://github.com/tytso/e2fsprogs/commit/4d6cfa2557de7d0878fed3203ac36d3e91df183f
0021-libext2fs-fix-a-extent-tree-corruption-bug-in-ext2fs.patch 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
is in a different extent tree block, the resulting extent tree can get
corrupted.

Fix this by removing the original logical block mapping before adding
the new logical block mapping. Per the warning in the comments before
ext2fs_extents_fix_parents():

Note a subtlety of this function -- if there happen to be two extents
mapping the same lblk and someone calls fix_parents on the second of
the two extents, the position of the extent handle after the call will
be the second extent if nothing happened, or the first extent if
something did. A caller in this situation must use
ext2fs_extent_goto() after calling this function. Or simply don't map
the same lblk with two extents, ever.
Theodore Ts'o <tytso@mit.edu> no upstream, https://github.com/tytso/e2fsprogs/commit/b914701223255c116745a11f30563652c9fdbb4b
0022-libext2fs-fix-integer-overflow-in-ext2fs_punch-when-.patch libext2fs: fix integer overflow in ext2fs_punch() when releasing more than 2**31 blocks Theodore Ts'o <tytso@mit.edu> no debian upstream, https://github.com/tytso/e2fsprogs/commit/34b2a4a1f9794498ca403393003cc5840c240d42

All known versions for source package 'e2fsprogs'

Links