Description
In the Linux kernel, the following vulnerability has been resolved: jbd2: bound shrinker scans by examined checkpoint buffers The jbd2 shrinker currently accounts only checkpoint buffers that it successfully releases against nr_to_scan. Busy buffers therefore do not consume the scan budget. If a checkpoint transaction contains mostly busy buffers, the shrinker can scan its entire checkpoint list while holding journal->j_list_lock. Large checkpoint lists can result in excessive lock hold times and leave other CPUs spinning on j_list_lock, causing soft lockups or RCU stalls. Pass nr_to_scan into journal_shrink_one_cp_list() and decrement it for every buffer examined, including busy buffers. Pass NULL from checkpoint cleanup paths so their existing full-list behavior is preserved. This restores the scan-budget semantics that existed before journal_shrink_one_cp_list() was changed to always scan a complete checkpoint list.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
b98dba273a0e47dbfade89c9af73c5b012a4eabb to < 6b5366ba63a58819396045ab146bd37ff9e503c6affectedb98dba273a0e47dbfade89c9af73c5b012a4eabb to < edf5fcd0469b7467bd5b37a79502c8d9c3257dbbaffectedb98dba273a0e47dbfade89c9af73c5b012a4eabb to < 71c6b872c746465fa4b5def239cb296173ca8216affectedb98dba273a0e47dbfade89c9af73c5b012a4eabb to < c2c0fb364685b8996c357d3b050394959b29d6e0affectedb98dba273a0e47dbfade89c9af73c5b012a4eabb to < 15cb16496446b94e67f7abcb049b8e2c75cd3d02affected9c31bb2684f8035beca0275349d19d679b679ffbaffected5fda50e262e65bd553ff777c4b280afd1495a18baffected557fda9ed70ebf8eda2620ba3d746215285a1303affected5.15.129 to < 5.16affected6.1.50 to < 6.2affected6.4.13 to < 6.5affected
Linux Linux
Default version status: affected
6.5affected0 to < 6.5unaffected6.6.160 to ≤ 6.6.*unaffected6.12.109 to ≤ 6.12.*unaffected6.18.50 to ≤ 6.18.*unaffected7.2.4 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/6b5366ba63a58819396045ab146bd37ff9e503c6 ↗
- https://git.kernel.org/stable/c/edf5fcd0469b7467bd5b37a79502c8d9c3257dbb ↗
- https://git.kernel.org/stable/c/71c6b872c746465fa4b5def239cb296173ca8216 ↗
- https://git.kernel.org/stable/c/c2c0fb364685b8996c357d3b050394959b29d6e0 ↗
- https://git.kernel.org/stable/c/15cb16496446b94e67f7abcb049b8e2c75cd3d02 ↗