btrfs: fix deadlock in wait_current_trans() due to ignored transaction type
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix deadlock in wait_current_trans() due to ignored transaction type When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans(). This can lead to a deadlock scenario involving two transactions and pending ordered extents: 1. Transaction A is in TRANS_STATE_COMMIT_DOING state 2. A worker processing an ordered extent calls start_transaction() with TRANS_JOIN 3. join_transaction() returns -EBUSY because Transaction A is in TRANS_STATE_COMMIT_DOING 4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes 5. A new Transaction B is created (TRANS_STATE_RUNNING) 6. The ordered extent from step 2 is added to Transaction B's pending ordered extents 7. Transaction B immediately starts commit by another task and enters TRANS_STATE_COMMIT_START 8. The worker finally reaches wait_current_trans(), sees Transaction B in TRANS_STATE_COMMIT_START (a blocked state), and waits unconditionally 9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START according to btrfs_blocked_trans_types[] 10. Transaction B is waiting for pending ordered extents to complete 11. Deadlock: Tra
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 5.10.249, 5.15.199, 6.1.162, 6.12.67, 6.18.7, 6.6.122
- CVEs
- CVE-2025-71194
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 6 Nov 2026, 01:30 UTC · Revision 1
Source evidence
btrfs: fix deadlock in wait_current_trans() due to ignored transaction type
core-osv · Original sourcePublished 4 Feb 2026, 16:04 UTC
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix deadlock in wait_current_trans() due to ignored transaction type When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans(). This can lead to a deadlock scenario involving two transactions and pending ordered extents: 1. Transaction A is in TRANS_STATE_COMMIT_DOING state 2. A worker processing an ordered extent calls start_transaction() with TRANS_JOIN 3. join_transaction() returns -EBUSY because Transaction A is in TRANS_STATE_COMMIT_DOING 4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes 5. A new Transaction B is created (TRANS_STATE_RUNNING) 6. The ordered extent from step 2 is added to Transaction B's pending ordered extents 7. Transaction B immediately starts commit by another task and enters TRANS_STATE_COMMIT_START 8. The worker finally reaches wait_current_trans(), sees Transaction B in TRANS_STATE_COMMIT_START (a blocked state), and waits unconditionally 9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START according to btrfs_blocked_trans_types[] 10. Transaction B is waiting for pending ordered extents to complete 11. Deadlock: Tra
osv:CVE-2025-71194
Kernel
Fixed versions: 5.10.249, 5.15.199, 6.1.162, 6.6.122, 6.12.67, 6.18.7
Complete source record
{
"id": "a700494a465f8d04a82b2065eec7b2dc747c5fdb90b9400d0632bea7bdc57761",
"url": "https://osv.dev/vulnerability/CVE-2025-71194",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "btrfs: fix deadlock in wait_current_trans() due to ignored transaction type",
"summary": "In the Linux kernel, the following vulnerability has been resolved: btrfs: fix deadlock in wait_current_trans() due to ignored transaction type When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans(). This can lead to a deadlock scenario involving two transactions and pending ordered extents: 1. Transaction A is in TRANS_STATE_COMMIT_DOING state 2. A worker processing an ordered extent calls start_transaction() with TRANS_JOIN 3. join_transaction() returns -EBUSY because Transaction A is in TRANS_STATE_COMMIT_DOING 4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes 5. A new Transaction B is created (TRANS_STATE_RUNNING) 6. The ordered extent from step 2 is added to Transaction B's pending ordered extents 7. Transaction B immediately starts commit by another task and enters TRANS_STATE_COMMIT_START 8. The worker finally reaches wait_current_trans(), sees Transaction B in TRANS_STATE_COMMIT_START (a blocked state), and waits unconditionally 9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START according to btrfs_blocked_trans_types[] 10. Transaction B is waiting for pending ordered extents to complete 11. Deadlock: Tra",
"evidence": "osv:CVE-2025-71194",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "5.10.249",
"evidence": "/affected/1/ranges"
},
{
"value": "5.15.199",
"evidence": "/affected/1/ranges"
},
{
"value": "6.1.162",
"evidence": "/affected/1/ranges"
},
{
"value": "6.6.122",
"evidence": "/affected/1/ranges"
},
{
"value": "6.12.67",
"evidence": "/affected/1/ranges"
},
{
"value": "6.18.7",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CVE-2025-71194",
"aliases": [
"CVE-2025-71194"
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "4a9d8bdee368de78ace8b36da4eb2186afea162d"
},
{
"fixed": "e563f59395981fcd69d130761290929806e728d6"
},
{
"fixed": "dc84036c173cff6a432d9ab926298850b1d2a659"
},
{
"fixed": "d7b04b40ac8e6d814e35202a0e1568809b818295"
},
{
"fixed": "99da896614d17e8a84aeb2b2d464ac046cc8633d"
},
{
"fixed": "8b0bb145d3bc264360f525c9717653be3522e528"
},
{
"fixed": "9ac63333d600732a56b35ee1fa46836da671eb50"
},
{
"fixed": "5037b342825df7094a4906d1e2a9674baab50cb2"
}
]
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-71194.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "3.11.0"
},
{
"fixed": "5.10.249"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.11.0"
},
{
"fixed": "5.15.199"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.16.0"
},
{
"fixed": "6.1.162"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.2.0"
},
{
"fixed": "6.6.122"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.7.0"
},
{
"fixed": "6.12.67"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.13.0"
},
{
"fixed": "6.18.7"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-71194.json"
}
}
],
"modified": "2026-10-28T02:30:45.680494131Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/5037b342825df7094a4906d1e2a9674baab50cb2",
"https://git.kernel.org/stable/c/8b0bb145d3bc264360f525c9717653be3522e528",
"https://git.kernel.org/stable/c/99da896614d17e8a84aeb2b2d464ac046cc8633d",
"https://git.kernel.org/stable/c/9ac63333d600732a56b35ee1fa46836da671eb50",
"https://git.kernel.org/stable/c/d7b04b40ac8e6d814e35202a0e1568809b818295",
"https://git.kernel.org/stable/c/dc84036c173cff6a432d9ab926298850b1d2a659",
"https://git.kernel.org/stable/c/e563f59395981fcd69d130761290929806e728d6",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/71xxx/CVE-2025-71194.json",
"https://nvd.nist.gov/vuln/detail/CVE-2025-71194",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/71xxx/CVE-2025-71194.json"
}
},
"related_cves": [
{
"value": "CVE-2025-71194",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 513872,
"published_at": "2026-02-04T16:04:15.389+00:00"
}