Description
In the Linux kernel, the following vulnerability has been resolved: xfs: don't hold buffer locks across sync transaction commit in xfs_sync_sb_buf xfs_sync_sb_buf() holds sb/rtsb buffer locks across a synchronous xfs_trans_commit(), which flushes the CIL push workqueue internally. If shutdown occurs during the CIL push, xfs_buf_item_unpin() needs to lock these buffers to fail them, causing a deadlock: setlabel: holds buf lock -> flush_workqueue(xfs-cil) CIL push worker: xfs_buf_item_unpin -> xfs_buf_lock(same buf) Remove the xfs_trans_bhold() calls so that commit releases the buffer locks normally. After the sync commit, re-acquire the buffers via mp->m_sb_bp / mp->m_rtsb_bp for the on-disk writeback.
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
f7664b31975bd893190708e76b2c424328f0c49b to < 16468281da17263095bd1906cf2d16a972f10791affectedf7664b31975bd893190708e76b2c424328f0c49b to < 45f124f3902bfae6a366d124db04f707264176fbaffectedf7664b31975bd893190708e76b2c424328f0c49b to < d900946853c2d183fa0e199bae9ddbcd21795a18affectedf7664b31975bd893190708e76b2c424328f0c49b to < 83b2e511cf9ba22904b167e00fcbd85169b50b2caffectedf7664b31975bd893190708e76b2c424328f0c49b to < acd7f2f9b822b6e126f3e3c99c173e62aa315b6faffectedf7664b31975bd893190708e76b2c424328f0c49b to < e5456dec79c71c8ef8f9f9adb77d320f113b34dbaffectedf7664b31975bd893190708e76b2c424328f0c49b to < 6353e5cd8c43d6e805cacbfbfecf4103571a7ff8affectedf7664b31975bd893190708e76b2c424328f0c49b to < 41a28c865d1d5843f8cb9e0af17a8f4d9e2961ffaffected
Linux Linux
Default version status: affected
4.18affected0 to < 4.18unaffected5.10.273 to ≤ 5.10.*unaffected5.15.224 to ≤ 5.15.*unaffected6.1.191 to ≤ 6.1.*unaffected6.6.161 to ≤ 6.6.*unaffected6.12.115 to ≤ 6.12.*unaffected6.18.59 to ≤ 6.18.*unaffected7.2.13 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/16468281da17263095bd1906cf2d16a972f10791 ↗
- https://git.kernel.org/stable/c/45f124f3902bfae6a366d124db04f707264176fb ↗
- https://git.kernel.org/stable/c/d900946853c2d183fa0e199bae9ddbcd21795a18 ↗
- https://git.kernel.org/stable/c/83b2e511cf9ba22904b167e00fcbd85169b50b2c ↗
- https://git.kernel.org/stable/c/acd7f2f9b822b6e126f3e3c99c173e62aa315b6f ↗
- https://git.kernel.org/stable/c/e5456dec79c71c8ef8f9f9adb77d320f113b34db ↗
- https://git.kernel.org/stable/c/6353e5cd8c43d6e805cacbfbfecf4103571a7ff8 ↗
- https://git.kernel.org/stable/c/41a28c865d1d5843f8cb9e0af17a8f4d9e2961ff ↗