Skip to content

Commit c1a2691

Browse files
committed
Merge tag 'v1.47.3-rc2' into debian/experimental
v1.47.3-rc2
2 parents 53c186a + 8f46874 commit c1a2691

File tree

26 files changed

+5976
-5255
lines changed

26 files changed

+5976
-5255
lines changed

debian/changelog

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
e2fsprogs (1.47.3~rc2-1) experimental; urgency=medium
2+
3+
* Add a lockfile command-line option to fuse2fs which is useful for
4+
scripts that need to know when fuse2fs is done modifying the file system
5+
after it is unmounted.
6+
* Fix mke2fs -d when importing large directories (Closes: #1106854)
7+
* Fix indention problem in the man page for mke2fs
8+
* Fix a (hard to reproduce) extent tree corruption bug which could be
9+
triggered by resize2fs or fuse2fs if the extent tree was especially complex
10+
* Fix error path handling in fuse2fs when servicing an op_create request.
11+
* Fix spurious warnings from fuse2fs while servicing an op_fallocate request.
12+
* Fix fuse2fs to correctly translate system errors from libext2fs to the
13+
negative error codes expected by the FUSE kernel driver.
14+
* Update Czech, Chinese, Dutch, French, Portuguese, Polish, Romainian,
15+
Serbian, Spanish, Swedish, and Ukrainian translations.
16+
17+
-- Theodore Y. Ts'o <tytso@mit.edu> Fri, 13 Jun 2025 14:24:46 -0400
18+
119
e2fsprogs (1.47.3~rc1-1) experimental; urgency=medium
220

321
* Mke2fs -d can now copy the fs-verity metadata and chattr flags
@@ -62,6 +80,55 @@ e2fsprogs (1.47.3~rc1-1) experimental; urgency=medium
6280

6381
-- Theodore Y. Ts'o <tytso@mit.edu> Wed, 28 May 2025 08:50:19 -0400
6482

83+
e2fsprogs (1.47.2-3) unstable; urgency=medium
84+
85+
* Fix a typo in fuse2fs.postrm which breaks /usr-move mitigation
86+
(Closes: #1107595)
87+
88+
-- Theodore Y. Ts'o <tytso@mit.edu> Tue, 10 Jun 2025 14:59:29 -0400
89+
90+
e2fsprogs (1.47.2-2) unstable; urgency=medium
91+
92+
* Fix integer overflow bug which resulted in fuse2fs failing to delete
93+
very large files (Closes: #1106241)
94+
* Fix an extent corruption bug which in very rare cases could result in
95+
data loss when resizing a file system or when fuse2fs is operating on
96+
that file system
97+
* Various man page cleanups
98+
* Add a Built-Using field to the e2fsck-static man page to honor a LGPL
99+
requirement documenting which version of glibc was used to build the
100+
e2fsck.static binary (Closes: #1106799)
101+
* Remove the physical address of the FSF from the debian/copyright
102+
file, addressing a Lintian warning.
103+
* Fix bug in debugfs when user passes invalid arguments to the
104+
e2freefrag command
105+
* Add range checks to "mke2fs -E <desc_size>"
106+
* Check to make the invalid value of 0 is not passed to "e2freefrag -c"
107+
* Fix "e2fsck -E unshare_blocks" to clear the shared_blocks flag when
108+
there are no shared blocks to clear
109+
* Fix mke2fs to disallow the verity feature without extents
110+
* Fix fuse2fs to reject renameat2 RENAME_EXCHANGE/RENAME_WHITEOUT
111+
instead of treating the request (wrongly) as a normal rename
112+
* Fix fuse2fs to set the timestamps for the new inode created by a mkdir
113+
or symlink request
114+
* Fix fuse2fs to clamp the timestamps written to the file system to fix
115+
a Y2038 bug as tested by fstests generic/402
116+
* Fix fuse2fs to handle the encoding of POSIX acl's correctly
117+
* Fix fuse2fs to return EOPNOTSUPP when a fallocate(2) mode is not supported
118+
* Fix fuse2fs to refuse mounting a file system with file system features
119+
that it doesn't know how to handle
120+
* Fix debugfs's dump and rdump commands to avoid looping forever when
121+
it runs across an I/O error or corupt filesystem metadata.
122+
* Fix debugfs's dirsearch command on big-endian systems.
123+
* Optimize ext2fs_extent_set_bmap() to avoid fragmenting the extent
124+
tree. This fixes a problem where resize2fs is trying to relocate
125+
all of the blocks in a file leading to the extent tree doubling in
126+
size, and potentially leading to a corrupted extent tree.
127+
* Fix "e2fsck -n" to not abort when it trips across an EA inode which
128+
is not referenced by any inodes in the file system.
129+
130+
-- Theodore Y. Ts'o <tytso@mit.edu> Mon, 09 Jun 2025 20:49:10 -0400
131+
65132
e2fsprogs (1.47.2-1) unstable; urgency=medium
66133

67134
* New upstream version

debian/control

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ Description: save the output of a command in a log file
4646

4747
Package: e2fsck-static
4848
Build-Profiles: <!pkg.e2fsprogs.no-static>
49+
Built-Using: ${misc:Built-Using}
4950
Priority: optional
5051
Depends: ${misc:Depends}
5152
Recommends: sash | bash-static | zsh-static | busybox-static

debian/copyright

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -375,9 +375,7 @@ License: GPL-2+ with Texinfo exception
375375
General Public License for more details.
376376
.
377377
You should have received a copy of the GNU General Public License
378-
along with this texinfo.tex file; see the file COPYING. If not, write
379-
to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
380-
Boston, MA 02110-1301, USA.
378+
along with this program. If not, see <https://www.gnu.org/licenses/>.
381379
.
382380
As a special exception, when this file is read by TeX when processing
383381
a Texinfo source document, you may use the result without
@@ -492,9 +490,7 @@ License: GPL-2+
492490
GNU General Public License for more details.
493491
.
494492
You should have received a copy of the GNU General Public License
495-
along with this program (in the main directory of the fuse-ext2
496-
distribution in the file COPYING); if not, write to the Free Software
497-
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
493+
along with this program. If not, see <https://www.gnu.org/licenses/>.
498494
Comment:
499495
On Debian systems, the complete text of the GNU General
500496
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".

debian/fuse2fs.postrm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
set -e
44

55
# begin-remove-after: released:trixie
6-
if test "$1" = remove || test "$1" = upgrade -o "$1" = failed-upgrade - o "$1" = abort-install -o "$1" = abort-upgrade && dpkg --compare-versions "$2" lt 1.47.2~rc1-1~; then
6+
if test "$1" = remove || test "$1" = upgrade -o "$1" = failed-upgrade -o "$1" = abort-install -o "$1" = abort-upgrade && dpkg --compare-versions "$2" lt 1.47.2~rc1-1~; then
77
# DEP17 P1 mitigation.
88
for cmd in /sbin/mount.fuse-ext2 /sbin/mount.fuseext2; do
99
dpkg-divert --package fuse2fs --no-rename --divert "$cmd.usr-is-merged" --remove "$cmd"

debian/rules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ endif
195195
override_dh_gencontrol:
196196
dh_gencontrol -pcomerr-dev -- -v${COMERR_VERSION}-${DEB_VERSION} -VmainBinary=${DEB_VERSION}
197197
dh_gencontrol -pss-dev -- -v${SS_VERSION}-${DEB_VERSION} -VmainBinary=${DEB_VERSION}
198-
dh_gencontrol --remaining-packages
198+
dh_gencontrol --remaining-packages -- -Vmisc:Built-Using="$(shell dpkg-query -f '$${source:Package} (= $${source:Version})' -W libc-dev-bin)"
199199

200200
override_dh_auto_test:
201201
ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))

doc/RelNotes/v1.47.3.txt

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
E2fsprogs 1.47.3 (May 28, 2025)
2-
===============================
1+
E2fsprogs 1.47.3 (June 12, 2025)
2+
================================
33

44
Updates/Fixes since v1.47.2:
55

@@ -19,6 +19,10 @@ including support for nanosecond timestamps.
1919

2020
Add support to fuse2fs to set newer chattr flags.
2121

22+
Add a lockfile command-line option to fuse2fs which is useful for
23+
scripts that need to know when fuse2fs is done modifying the file system
24+
after it is unmounted.
25+
2226
Add mke2fs.conf knobs to control whether the RAID stripe or stride sizes
2327
from the storage device information depending on whether the storage
2428
device is a rotational or non-rotational device. By default don't set
@@ -47,6 +51,13 @@ correctly after the mkdir(2) and symlink(2) operations.
4751
Fix fuse2fs's error code handling for fallocate(), truncate() and
4852
removexattr().
4953

54+
Fix an integer overflow bug which resulted in fuse2fs failing to delete
55+
very large files. (Addresses Debian Bug: #1106241)
56+
57+
Fix a (hard to reproduce) extent tree corruption bug which could be
58+
triggered by resize2fs or fuse2fs if the extent tree was especially
59+
complex
60+
5061
Improve fuse2fs's handling of corrupted file systems.
5162

5263
Fuse2fs doesn't support renameat2()'s RENAME_EXCHANGE or RENAME_WHITEOUT
@@ -68,6 +79,15 @@ control decisions to the kernel.
6879
Prevent fuse2fs from mounting file systems which have features that
6980
fuse2fs can't deal with.
7081

82+
Fix error path handling in fuse2fs when servicing an op_create request.
83+
84+
Fix spurious warnings from fuse2fs while servicing an op_fallocate request.
85+
86+
Fix fuse2fs to correctly translate system errors from libext2fs to the
87+
negative error codes expected by the FUSE kernel driver. There aren't
88+
many; but in some cases, when the file system is corrupted, libext2fs
89+
will return EOVERFLOW and we sent a nonsense error to the kernel.
90+
7191
Optimize ext2fs_extent_set_bmap() to avoid fragmenting the extent tree.
7292
This fixes a problem where resize2fs is trying to relocate all of the
7393
blocks in a file leading to the extent tree doubling in size, and
@@ -125,4 +145,8 @@ Fixed potention races in the Makefiles which could show up when using
125145

126146
Fixed build failures when libarchive is not available.
127147

128-
Update Dutch, Malay, Portuguese, and Serbian translations.
148+
Fixed various Debian packaging issues. (Addresses Debian Bugs:
149+
#1106799, #1107595)
150+
151+
Update Czech, Chinese, Dutch, French, Malay, Portuguese, Polish,
152+
Romainian, Serbian, Spanish, Swedish, and Ukrainian translations.

doc/libext2fs.texinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ by the author.
6161
@title The EXT2FS Library
6262
@subtitle The EXT2FS Library
6363
@subtitle Version 1.47.3
64-
@subtitle May 2025
64+
@subtitle June 2025
6565

6666
@author by Theodore Ts'o
6767

lib/ext2fs/extent.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1531,6 +1531,15 @@ errcode_t ext2fs_extent_set_bmap(ext2_extent_handle_t handle,
15311531
#ifdef DEBUG
15321532
printf("(re/un)mapping first block in extent\n");
15331533
#endif
1534+
extent.e_pblk++;
1535+
extent.e_lblk++;
1536+
extent.e_len--;
1537+
retval = ext2fs_extent_replace(handle, 0, &extent);
1538+
if (retval)
1539+
goto done;
1540+
retval = ext2fs_extent_fix_parents(handle);
1541+
if (retval)
1542+
goto done;
15341543
if (physical) {
15351544
if (has_prev &&
15361545
(logical == (prev_extent.e_lblk +
@@ -1560,15 +1569,6 @@ errcode_t ext2fs_extent_set_bmap(ext2_extent_handle_t handle,
15601569
if (retval)
15611570
goto done;
15621571
}
1563-
extent.e_pblk++;
1564-
extent.e_lblk++;
1565-
extent.e_len--;
1566-
retval = ext2fs_extent_replace(handle, 0, &extent);
1567-
if (retval)
1568-
goto done;
1569-
retval = ext2fs_extent_fix_parents(handle);
1570-
if (retval)
1571-
goto done;
15721572
} else {
15731573
__u32 save_length;
15741574
blk64_t save_lblk;

lib/ext2fs/fallocate.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,11 @@ static errcode_t ext_falloc_helper(ext2_filsys fs,
276276
max_uninit_len : max_init_len))
277277
goto try_left;
278278

279+
/* Would they even be physically contiguous if merged? */
280+
if (left_ext->e_pblk + left_ext->e_len + range_len !=
281+
right_ext->e_pblk)
282+
goto try_left;
283+
279284
err = ext2fs_extent_goto(handle, left_ext->e_lblk);
280285
if (err)
281286
goto try_left;

lib/ext2fs/link.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ errcode_t ext2fs_link(ext2_filsys fs, ext2_ino_t dir, const char *name,
641641
struct dir_context ctx;
642642

643643
lblk = (inode.i_size / fs->blocksize) - 1;
644-
retval = ext2fs_bmap2(fs, ino, &inode, NULL, 0, lblk,
644+
retval = ext2fs_bmap2(fs, dir, &inode, NULL, 0, lblk,
645645
NULL, &pblk);
646646
if (retval)
647647
return retval;

0 commit comments

Comments
 (0)