xfs: stop reclaim before pushing AIL during unmount
Published Apr 22, 2026
7.8
HIGHCVSS 3.1
EPSS 0.17%
Description
The unmount sequence in xfs_unmount_flush_inodes() pushed the AIL while background reclaim and inodegc are still running. This is broken independently of any use-after-free issues - background reclaim and inodegc should not be running while the AIL is being pushed during unmount, as inodegc can dirty and insert inodes into the AIL during the flush, and background reclaim can race to abort and free dirty inodes.
Reorder xfs_unmount_flush_inodes() to stop inodegc and cancel background reclaim before pushing the AIL. Stop inodegc before cancelling m_reclaim_work because the inodegc worker can re-queue m_reclaim_work via xfs_inodegc_set_reclaimable.
Affected products
-
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version
-
- Version 5.9StatusaffectedConstraints-
- Version 0StatusunaffectedConstraints<5.9
- Version 5.10.253StatusunaffectedConstraints<=5.10.*
- Version 5.15.203StatusunaffectedConstraints<=5.15.*
- Version 6.1.168StatusunaffectedConstraints<=6.1.*
- Version 6.12.80StatusunaffectedConstraints<=6.12.*
- Version 6.18.21StatusunaffectedConstraints<=6.18.*
- Version 6.19.11StatusunaffectedConstraints<=6.19.*
- Version 6.6.131StatusunaffectedConstraints<=6.6.*
- Version 7.0StatusunaffectedConstraints<=*
- Version
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Linux | Linux | unaffected |
| |||||||||||||||||||||||||||||||||
| Linux | Linux | affected |
|
- ≥ 5.9 · < 5.10.253
- ≥ 5.11 · < 5.15.203
- ≥ 5.16 · < 6.1.168
- ≥ 6.2 · < 6.6.131
- ≥ 6.7 · < 6.12.80
- ≥ 6.13 · < 6.18.21
- ≥ 6.19 · < 6.19.11
- 7.0
- 7.0
- 7.0
- 7.0
- 7.0
- 7.0
No data.
Red Hat Enterprise Linux 10
kernel
Fix deferred
Red Hat Enterprise Linux 6
kernel
Out of support scope
Red Hat Enterprise Linux 7
kernel
Not affected
Red Hat Enterprise Linux 7
kernel-rt
Not affected
Red Hat Enterprise Linux 8
kernel
Fix deferred
Red Hat Enterprise Linux 8
kernel-rt
Fix deferred
Red Hat Enterprise Linux 9
kernel
Fix deferred
Red Hat Enterprise Linux 9
kernel-rt
Fix deferred
| Product | Package | State | Advisory |
|---|---|---|---|
| Red Hat Enterprise Linux 10 | kernel | Fix deferred | n/a |
| Red Hat Enterprise Linux 6 | kernel | Out of support scope | n/a |
| Red Hat Enterprise Linux 7 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 7 | kernel-rt | Not affected | n/a |
| Red Hat Enterprise Linux 8 | kernel | Fix deferred | n/a |
| Red Hat Enterprise Linux 8 | kernel-rt | Fix deferred | n/a |
| Red Hat Enterprise Linux 9 | kernel | Fix deferred | n/a |
| Red Hat Enterprise Linux 9 | kernel-rt | Fix deferred | n/a |
No package ranges for this CVE.
Remediation
No remediation recorded yet.
References (13)
- https://access.redhat.com/security/cve/CVE-2026-31455 Vendor Advisory
- https://bugzilla.redhat.com/show_bug.cgi?id=2460673 Issue Tracking
- https://git.kernel.org/stable/c/239d734c00644072862fa833805c4471573b1445 Patch
- https://git.kernel.org/stable/c/4f24a767e3d64a5f58c595b5c29b6063a201f1e3 Patch
- https://git.kernel.org/stable/c/558e3275d8a3b101be18a7fe7d1634053e9d9b07 Patch
- https://git.kernel.org/stable/c/8147e304d7d32fd5c3e943babc296ce2873dc279 Patch
- https://git.kernel.org/stable/c/a89434a6188d8430ea31120da96e3e4cefb58686 Patch
- https://git.kernel.org/stable/c/bda27fc0b4eb3a425d9a18475c4cb94fbe862c60 Patch
- https://git.kernel.org/stable/c/d38135af04a3ad8a585c899d176efc8e97853115 Patch
- https://git.kernel.org/stable/c/e6cc490048f78b009259a5f032acead9f789c34c Patch
- https://lore.kernel.org/linux-cve-announce/2026042249-CVE-2026-31455-1c26@gregkh/T
- https://nvd.nist.gov/vuln/detail/CVE-2026-31455
- https://www.cve.org/CVERecord?id=CVE-2026-31455
Change history (0)
No recorded changes yet.