CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's journal block device (jbd2) subsystem, specifically in the handling of busy checkpoint buffers during memory pressure scenarios. This flaw can lead to prolonged lock hold times on the journal's lock, potentially causing soft lockups or RCU stalls, which can degrade system performance. System administrators and developers managing Linux environments should prioritize addressing this issue to ensure system stability and responsiveness under load.
Original NVD 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.