Fix: e2fsprogs: online resize fails

Resolves: RHEL-76095

Signed-off-by: Pavel Reichl <preichl@redhat.com>
This commit is contained in:
Pavel Reichl 2025-01-24 19:20:23 +01:00
parent 132b345c4b
commit 771c894927
2 changed files with 46 additions and 3 deletions

View File

@ -0,0 +1,37 @@
From 43a498e938887956f393b5e45ea6ac79cc5f4b84 Mon Sep 17 00:00:00 2001
From: Theodore Ts'o <tytso@mit.edu>
Date: Thu, 15 Jun 2023 00:17:01 -0400
Subject: [PATCH] resize2fs: use Direct I/O when reading the superblock for
online resizes
If the file system is mounted, the superblock can be changing while
resize2fs is trying to read the superblock, resulting in checksum
failures. One way of avoiding this problem is read the superblock
using Direct I/O, since the kernel makes sure that what gets written
to disk is self-consistent.
Suggested-by: Krister Johansen <kjlx@templeofstupid.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Pavel Reichl <preichl@redhat.com>
---
resize/main.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/resize/main.c b/resize/main.c
index 94f5ec6d..f914c050 100644
--- a/resize/main.c
+++ b/resize/main.c
@@ -401,7 +401,9 @@
#endif
io_ptr = unix_io_manager;
- if (!(mount_flags & EXT2_MF_MOUNTED))
+ if ((mount_flags & EXT2_MF_MOUNTED))
+ io_flags |= EXT2_FLAG_DIRECT_IO;
+ else
io_flags = EXT2_FLAG_RW | EXT2_FLAG_EXCLUSIVE;
io_flags |= EXT2_FLAG_64BITS | EXT2_FLAG_THREADS;
--
2.48.1

View File

@ -1,7 +1,7 @@
Summary: Utilities for managing ext2, ext3, and ext4 file systems
Name: e2fsprogs
Version: 1.46.5
Release: 6%{?dist}
Release: 7%{?dist}
# License tags based on COPYING file distinctions for various components
License: GPLv2
@ -46,6 +46,7 @@ Patch1: 0002-man-Add-note-about-RHEL9-supported-features-and-moun.patch
Patch2: 0003-mke2fs.conf-Introduce-rhel6-rhel7-and-rhel8-fs_type.patch
Patch3: e2fsprogs-libext2fs-add-sanity-check-to-extent-manipulation.patch
Patch4: e2fsprogs-1.46.6-Change-the-xattr-entry-hash-to-use-an-unsighed-char-.patch
Patch5: e2fsprogs-1.47.1-resize2fs-use-Direct-I-O-when-reading-the-superblock.patch
%description
The e2fsprogs package contains a number of utilities for creating,
@ -180,6 +181,7 @@ xzcat '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
# Remove flawed tests
rm -rf tests/m_rootdir_acl
@ -352,7 +354,11 @@ make PRINT_FAILED=yes fullcheck
%{_udevdir}/96-e2scrub.rules
%changelog
* Fri Dec 13 2024 Pavel Reichl <preichl@redhat.com>
* Fri Jan 24 2025 Pavel Reichl <preichl@redhat.com> - 1.46.5-7
- Fix: e2fsprogs: online resize fails
- Related: RHEL-76095
* Fri Dec 13 2024 Pavel Reichl <preichl@redhat.com> - 1.46.5-6
- Bump release to perform build verification for gating changes
- Related: RHEL-71250
@ -360,7 +366,7 @@ make PRINT_FAILED=yes fullcheck
- rebuild to incorporate libss-devel package
- Related: RHEL-19059
* Wed Oct 17 2023 Carlos Maiolino <cmaiolino@redhat.com> - 1.46.5-4
* Tue Oct 17 2023 Carlos Maiolino <cmaiolino@redhat.com> - 1.46.5-4
- Change the xattr entry hash to use an unsighed char by default
- Related: RHEL-10467