ext2fs: make sure we have at least EXT2_FIRST_INO + 1 inodes
Resolves: RHEL-101758 Signed-off-by: Pavel Reichl <preichl@redhat.com>
This commit is contained in:
parent
771c894927
commit
e34b390a71
@ -0,0 +1,63 @@
|
|||||||
|
From 196cd1224ccaf5ca76540fc0a6238695d4476ca9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Li Dongyang <dongyangli@ddn.com>
|
||||||
|
Date: Thu, 20 Jul 2023 22:50:12 +1000
|
||||||
|
Subject: [PATCH] ext2fs: make sure we have at least EXT2_FIRST_INO + 1 inodes
|
||||||
|
|
||||||
|
When creating a small fs with 100 1k blocks, mke2fs fails with:
|
||||||
|
|
||||||
|
Creating filesystem with 100 1k blocks and 8 inodes
|
||||||
|
|
||||||
|
Allocating group tables: done
|
||||||
|
Writing inode tables: done
|
||||||
|
ext2fs_mkdir: Could not allocate inode in ext2 filesystem while creating /lost+found
|
||||||
|
|
||||||
|
Increase s_inodes_per_group with a step of 8 to make
|
||||||
|
sure we have at least EXT2_FIRST_INO + 1 inodes.
|
||||||
|
|
||||||
|
Change-Id: Ib885735641dfa0ed9c6f6a4a1f9afec291673126
|
||||||
|
Signed-off-by: Li Dongyang <dongyangli@ddn.com>
|
||||||
|
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
|
||||||
|
Link: https://lore.kernel.org/r/20230720125012.641504-1-dongyangli@ddn.com
|
||||||
|
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
||||||
|
Signed-off-by: Pavel Reichl <preichl@redhat.com>
|
||||||
|
---
|
||||||
|
lib/ext2fs/initialize.c | 16 +++++++++-------
|
||||||
|
1 file changed, 9 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/ext2fs/initialize.c b/lib/ext2fs/initialize.c
|
||||||
|
index edd692bb..e96f3cab 100644
|
||||||
|
--- a/lib/ext2fs/initialize.c
|
||||||
|
+++ b/lib/ext2fs/initialize.c
|
||||||
|
@@ -307,13 +307,6 @@ retry:
|
||||||
|
else
|
||||||
|
set_field(s_inodes_count, ext2fs_blocks_count(super) / i);
|
||||||
|
|
||||||
|
- /*
|
||||||
|
- * Make sure we have at least EXT2_FIRST_INO + 1 inodes, so
|
||||||
|
- * that we have enough inodes for the filesystem(!)
|
||||||
|
- */
|
||||||
|
- if (super->s_inodes_count < EXT2_FIRST_INODE(super)+1)
|
||||||
|
- super->s_inodes_count = EXT2_FIRST_INODE(super)+1;
|
||||||
|
-
|
||||||
|
/*
|
||||||
|
* There should be at least as many inodes as the user
|
||||||
|
* requested. Figure out how many inodes per group that
|
||||||
|
@@ -375,6 +368,15 @@ ipg_retry:
|
||||||
|
}
|
||||||
|
super->s_inodes_count = super->s_inodes_per_group *
|
||||||
|
fs->group_desc_count;
|
||||||
|
+ /*
|
||||||
|
+ * Make sure we have at least EXT2_FIRST_INO + 1 inodes, so
|
||||||
|
+ * that we have enough inodes for the filesystem(!)
|
||||||
|
+ */
|
||||||
|
+ if (super->s_inodes_count < EXT2_FIRST_INODE(super)+1) {
|
||||||
|
+ ipg += 8;
|
||||||
|
+ goto ipg_retry;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
super->s_free_inodes_count = super->s_inodes_count;
|
||||||
|
|
||||||
|
/*
|
||||||
|
--
|
||||||
|
2.50.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
Summary: Utilities for managing ext2, ext3, and ext4 file systems
|
Summary: Utilities for managing ext2, ext3, and ext4 file systems
|
||||||
Name: e2fsprogs
|
Name: e2fsprogs
|
||||||
Version: 1.46.5
|
Version: 1.46.5
|
||||||
Release: 7%{?dist}
|
Release: 8%{?dist}
|
||||||
|
|
||||||
# License tags based on COPYING file distinctions for various components
|
# License tags based on COPYING file distinctions for various components
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
@ -47,6 +47,7 @@ Patch2: 0003-mke2fs.conf-Introduce-rhel6-rhel7-and-rhel8-fs_type.patch
|
|||||||
Patch3: e2fsprogs-libext2fs-add-sanity-check-to-extent-manipulation.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
|
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
|
Patch5: e2fsprogs-1.47.1-resize2fs-use-Direct-I-O-when-reading-the-superblock.patch
|
||||||
|
Patch6: e2fsprogs-1.47.1-ext2fs-make-sure-we-have-at-least-EXT2_FIRST_INO-1-i.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
The e2fsprogs package contains a number of utilities for creating,
|
The e2fsprogs package contains a number of utilities for creating,
|
||||||
@ -176,12 +177,13 @@ managed device with some free space available in respective volume group.
|
|||||||
xzcat '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data=-
|
xzcat '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data=-
|
||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
%patch0 -p1
|
%patch -p1 0
|
||||||
%patch1 -p1
|
%patch -p1 1
|
||||||
%patch2 -p1
|
%patch -p1 2
|
||||||
%patch3 -p1
|
%patch -p1 3
|
||||||
%patch4 -p1
|
%patch -p1 4
|
||||||
%patch5 -p1
|
%patch -p1 5
|
||||||
|
%patch -p1 6
|
||||||
|
|
||||||
# Remove flawed tests
|
# Remove flawed tests
|
||||||
rm -rf tests/m_rootdir_acl
|
rm -rf tests/m_rootdir_acl
|
||||||
@ -354,6 +356,9 @@ make PRINT_FAILED=yes fullcheck
|
|||||||
%{_udevdir}/96-e2scrub.rules
|
%{_udevdir}/96-e2scrub.rules
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jul 04 2025 Pavel Reichl <preichl@redhat.com>
|
||||||
|
- ext2fs: make sure we have at least EXT2_FIRST_INO + 1 inodes
|
||||||
|
|
||||||
* Fri Jan 24 2025 Pavel Reichl <preichl@redhat.com> - 1.46.5-7
|
* Fri Jan 24 2025 Pavel Reichl <preichl@redhat.com> - 1.46.5-7
|
||||||
- Fix: e2fsprogs: online resize fails
|
- Fix: e2fsprogs: online resize fails
|
||||||
- Related: RHEL-76095
|
- Related: RHEL-76095
|
||||||
|
Loading…
Reference in New Issue
Block a user