commit:     8135eb51ae1cfe31e282a77d159d0df1bb14e49b
Author:     Florian Schmaus <flow <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 20 13:15:19 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Dec 20 21:57:14 2025 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=8135eb51

Scheduler: Only check free inode count on certain filesystems

The 'favail' value may be zero, or another made-up value, on
filesystems which allocate inodes dynamically (e.g., btrfs). Checking
for a certain number of free inodes is hence only sensible on
filesystems with a static inode count.

Thanks to dol-sen for reporting this.

Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>
Part-of: https://github.com/gentoo/portage/pull/1532
Closes: https://github.com/gentoo/portage/pull/1532
Signed-off-by: Sam James <sam <AT> gentoo.org>

 lib/_emerge/Scheduler.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/_emerge/Scheduler.py b/lib/_emerge/Scheduler.py
index baf139ddfd..41c75db9de 100644
--- a/lib/_emerge/Scheduler.py
+++ b/lib/_emerge/Scheduler.py
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 from collections import deque
@@ -27,7 +27,7 @@ from portage._sets import SETPREFIX
 from portage._sets.base import InternalPackageSet
 from portage.util import ensure_dirs, writemsg, writemsg_level
 from portage.util.futures import asyncio
-from portage.util.path import first_existing
+from portage.util.path import first_existing, get_fs_type_cached
 from portage.util.SlotObject import SlotObject
 from portage.util._async.SchedulerInterface import SchedulerInterface
 from portage.package.ebuild.digestcheck import digestcheck
@@ -1899,6 +1899,8 @@ class Scheduler(PollScheduler):
                     if (
                         self._jobs_tmpdir_require_free_kilo_inodes
                         and self._jobs_tmpdir_require_free_kilo_inodes != 0
+                        # Only check free inode count on filesystems with a 
static inode count
+                        and get_fs_type_cached(tmpdir) in ("ext4", "ext3", 
"ext2")
                     ):
                         required_free_inodes = (
                             self._jobs_tmpdir_require_free_kilo_inodes * 1000

Reply via email to