CVEvulnerability
CVE-2026-89566
- Status
- Received
- Published
- 2026-09-11
- Last modified
- 2026-10-21
- Assigner
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Description
In the Linux kernel, the following vulnerability has been resolved:
jbd2: check need_resched() when skipping busy checkpoint buffers
journal_shrink_one_cp_list() skips busy checkpoint buffers when called
with JBD2_SHRINK_BUSY_SKIP. The continue statement on this path also
skips the need_resched() check at the end of the loop body.
Consequently, when a checkpoint list contains mostly busy buffers, the
shrinker can walk the entire list while holding journal->j_list_lock,
even when a reschedule has been requested. Large checkpoint lists under
memory pressure can therefore cause long lock hold times and leave other
CPUs spinning on j_list_lock, resulting in soft lockups or RCU stalls.
Route the busy-buffer path through the need_resched() check so that the
shrinker can release j_list_lock and reschedule promptly, restoring
parity with the clean-buffer path, which already checks need_resched().
This does not change which checkpoint buffers are eligible for removal.
References
- https://git.kernel.org/stable/c/595cac7f1b32d009b97f83dd2b2d6a1a445e9bb4 git.kernel.org
- https://git.kernel.org/stable/c/dc7ece0b827fe3b748db685fb85cd2fc3710c3f9 git.kernel.org
- https://git.kernel.org/stable/c/f213e12ff5c9590b1034ae8da0e6d09665c772d0 git.kernel.org
- https://git.kernel.org/stable/c/f83c23286e54180cdc83a36463a60003534cc290 git.kernel.org
- https://git.kernel.org/stable/c/f9182a85991a0ad5cd2940df6db75f40ad90028c git.kernel.org