CVE-2026-64164

btrfs: tracepoints: fix sleep while in atomic context in btrfs_sync_file()

State
Published
Severity
Not scored
Published
Jul 19, 2026
Updated
Jul 19, 2026
Reserved
Jul 19, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

btrfs: tracepoints: fix sleep while in atomic context in btrfs_sync_file()

The trace event btrfs_sync_file() is called in an atomic context (all trace events are) and its call to dput(), which is needed due to the call to dget_parent(), can sleep, triggering a kernel splat.

This can be reproduced by enabling the trace event and running btrfs/056 from fstests for example. The splat shown in dmesg is the following:

[53.919] BUG: sleeping function called from invalid context at fs/dcache.c:970 [53.947] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 32773, name: xfs_io [53.988] preempt_count: 2, expected: 0 [53.967] RCU nest depth: 0, expected: 0 [53.943] Preemption disabled at: [53.944] [<0000000000000000>] 0x0 [54.078] CPU: 0 UID: 0 PID: 32773 Comm: xfs_io Tainted: G W 7.1.0-rc1-btrfs-next-232+ #1 PREEMPT(full) [54.070] Tainted: [W]=WARN [54.071] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014 [54.072] Call Trace: [54.074] <TASK> [54.076] dump_stack_lvl+0x56/0x80 [54.079] __might_resched.cold+0xd6/0x10f [54.072] dput.part.0+0x24/0x110 [54.078] trace_event_raw_event_btrfs_sync_file+0x75/0x140 [btrfs] [54.089] btrfs_sync_file+0x1ed/0x530 [btrfs] [54.087] ? __handle_mm_fault+0x8ae/0xed0 [54.089] btrfs_do_write_iter+0x172/0x210 [btrfs] [54.091] vfs_write+0x21f/0x450 [54.094] __x64_sys_pwrite64+0x8d/0xc0 [54.096] ? do_user_addr_fault+0x20c/0x670 [54.099] do_syscall_64+0x60/0xf20 [54.092] ? clear_bhb_loop+0x60/0xb0 [54.094] entry_SYSCALL_64_after_hwframe+0x76/0x7e

So stop using dget_parent() and dput() and access the parent dentry directly as dentry->d_parent. This is also what ext4 is doing in its equivalent trace event ext4_sync_file_enter().

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 4a7bab35fad5251c8cb738161152578cd83b6b9c to before d78b0a80eac36879ef5478707135c446920e134bAffected
  • 520e8b4bcf872a534a7bf61ccf880047642df296 to before 4361954f0e158af0530caa1e57f12b531be4658fAffected
  • e252db8ca2a01f82d472091f35d549b313278636 to before 6279992c9ba2774901c9d4dd4a481162e2534714Affected
  • c09a7446aab5773f38d6abb25fce99b8e1dfbc97 to before 26b2290baaf6da6add0f782a100766e686a33f4fAffected
  • 32372781d664a9b03c40343e96c29d0a6139f97d to before 12a0487945c09760a5968d9333383014ea294117Affected
  • 2e4adfaec97ee053ad1bdfb5036845e66f7e0d8a to before c32a7e0e3c73c1c0768556a56bd78de9f7b83780Affected
  • a85b46db143fda5869e7d8df8f258ccef5fa1719 to before 0a96d9a85cd2240481297156b9bb72e10b7a8036Affected
  • a85b46db143fda5869e7d8df8f258ccef5fa1719 to before c73370c677646e86fc4b1780fb07027bdf847375Affected
  • d110d7cdb045715c0b45b0dfd974525bb38f653dAffected
  • 6.6.136 to before 6.6.142Affected
  • 6.12.83 to before 6.12.92Affected
  • 6.18.24 to before 6.18.34Affected
  • 6.19.14 to before 6.20Affected
LinuxLinux
  • 7.0Affected
  • before 7.0Not affected
  • 6.6.142 through 6.6.*Not affected
  • 6.12.92 through 6.12.*Not affected
  • 6.18.34 through 6.18.*Not affected
  • 7.0.11 through 7.0.*Not affected
  • 7.1 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.