possible deadlock in nfsd_file_cache_shutdown

Status: upstream: reported on 2026/11/06 07:35
Subsystems: nfs
Labels: prio:low
[Documentation on labels]
Reported-by: syzbot+e6bb7c8bc275dfed69c1@syzkaller.appspotmail.com
First crash: 4d07h, last: 17h28m
✨ AI-generated root cause summary:

In drivers/block/nbd.c, nbd_genl_reconnect_sock_cb() incorrectly calls sk_set_memalloc(sock->sk) while holding the mutex nsock->tx_lock. sk_set_memalloc() invokes static_branch_inc(), which acquires cpus_read_lock() (cpu_hotplug_lock). Because nsock->tx_lock is acquired during block I/O request dispatch in nbd_queue_rq(), it is part of the direct memory reclaim (fs_reclaim) dependency chain. Acquiring cpu_hotplug_lock under nsock->tx_lock inverts the core MM locking hierarchy (cpu_hotplug_lock -> slab_mutex -> fs_reclaim), creating an ABBA circular locking dependency that can lead to system deadlock.

▶ ▼ ✨ Full AI root cause analysis
Based on kernel commit cb284914e749:

Technical Root Cause Analysis

1. Overview and Invariant Violation

The reported lockdep warning detects a circular locking dependency involving fs_reclaim, block layer queue locks, NBD socket transmit locks (&nsock->tx_lock), CPU hotplug lock (cpu_hotplug_lock), and SLAB allocator locks (slab_mutex).

The root cause resides in drivers/block/nbd.c within nbd_genl_reconnect_sock_cb(). The function invokes sk_set_memalloc(sock->sk) while holding the mutex &nsock->tx_lock.

Under the kernel's memory management locking hierarchy, locks held in the block I/O submission/dispatch path of devices that can be written to during direct memory reclaim are child dependencies of fs_reclaim. Calling sk_set_memalloc() under such a lock violates the locking hierarchy because sk_set_memalloc() internally takes cpus_read_lock() (cpu_hotplug_lock), which is an ancestor lock of fs_reclaim.


2. Key Components and Involved Entities


3. Chain of Dependencies Leading to the Circular Deadlock

  1. fs_reclaim $\to$ &nsock->tx_lock (Lockdep links #0 through #5):

    • When any GFP flag allowing direct reclaim (such as GFP_KERNEL or GFP_FS) triggers memory reclaim, fs_reclaim is acquired.
    • Reclaiming memory can write out dirty pages or swap blocks using block devices, including NBD.
    • The block layer request queue and dispatch logic (blk_mq_dispatch_rq_list $\to$ nbd_queue_rq $\to$ nbd_handle_cmd) acquires the request lock &cmd->lock and then &nsock->tx_lock.
    • This establishes the dependency: fs_reclaim $\to$ ... $\to$ &nsock->tx_lock.
  2. &nsock->tx_lock $\to$ cpu_hotplug_lock (Lockdep link #6):

    • In nbd_genl_reconnect_sock_cb():
      mutex_lock(&nsock->tx_lock);
      ...
      sk_set_memalloc(sock->sk);
      
    • sk_set_memalloc() in net/core/sock.c calls:
      static_branch_inc(&memalloc_socks_key);
      
    • Incrementing a static key (static_key_slow_inc()) executes jump-label patching, which calls cpus_read_lock() to protect CPU patching state.
    • This introduces the locking dependency: &nsock->tx_lock $\to$ cpu_hotplug_lock.
  3. cpu_hotplug_lock $\to$ slab_mutex (Lockdep link #7):

    • kmem_cache_destroy() in mm/slab_common.c calls:
      cpus_read_lock();
      mutex_lock(&slab_mutex);
      
    • This sets up the dependency: cpu_hotplug_lock $\to$ slab_mutex.
  4. slab_mutex $\to$ fs_reclaim (Trigger site at #0):

    • When creating a slab cache (e.g. kmem_cache_create()), __kmem_cache_create_args() takes mutex_lock(&slab_mutex).
    • Under slab_mutex, create_cache() calls kmem_cache_zalloc(kmem_cache, GFP_KERNEL).
    • The GFP_KERNEL allocation invokes might_alloc() and attempts to acquire fs_reclaim.
    • Since fs_reclaim already depends on cpu_hotplug_lock via nsock->tx_lock, attempting to acquire fs_reclaim while holding slab_mutex closes the circular cycle: $$\text{fs_reclaim} \to \text{nsock->tx_lock} \to \text{cpu_hotplug_lock} \to \text{slab_mutex} \to \text{fs_reclaim}$$

4. Remediation

In nbd_genl_reconnect_sock_cb(), sock is a newly provided socket that has not yet been attached to nsock. Calling sk_set_memalloc(sock->sk) and setting socket timeout attributes does not require holding &nsock->tx_lock. Moving sk_set_memalloc(sock->sk) outside of mutex_lock(&nsock->tx_lock) (similar to how nbd_start_device() configures sockets without taking tx_lock) eliminates the dependency between &nsock->tx_lock and cpu_hotplug_lock.

▶ ▼ ✨ AI Jobs (2)
ID Workflow Result Correct Bug Created Started Finished Revision
0245bec7 repro-c Reproduced: ✅ ❓ possible deadlock in nfsd_file_cache_shutdown 2026/11/05 12:50 2026/11/05 12:50 2026/11/05 18:18 5cecaf1f
7ce57c70 assessment-security DenialOfService: ✅ Exploitable: ❌ FilesystemTrigger: ❌ FuzzingArtifact: ❌ MemoryCorruption: ❌ NetworkNeedsSetup: ❌ NetworkTrigger: ❌ PeripheralTrigger: ❌ RemoteTrigger: ❌ Unprivileged: ❌ UserNamespace: ❌ VMGuestTrigger: ❌ VMHostTrigger: ❌ ❓ possible deadlock in nfsd_file_cache_shutdown 2026/11/02 07:34 2026/11/02 07:34 2026/11/02 08:31 25a0ae84
▶ ▼ Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [nfs?] possible deadlock in nfsd_file_cache_shutdown 0 (1) 2026/11/06 07:35
▶ ▼ Last patch testing requests (1)
Created Duration User Patch Repo Result
2026/11/05 19:05 18m retest repro git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 6c1c41effa342a94221e5d92c2a5aae8fe7d1c04 report job log log

Sample crash report:
======================================================
WARNING: possible circular locking dependency detected
syzkaller #0 Not tainted
------------------------------------------------------
syz.4.1718/12980 is trying to acquire lock:
ffffffff90094cc0 (fs_reclaim){+.+.}-{0:0}, at: might_alloc include/linux/sched/mm.h:316 [inline]
ffffffff90094cc0 (fs_reclaim){+.+.}-{0:0}, at: slab_pre_alloc_hook mm/slub.c:4673 [inline]
ffffffff90094cc0 (fs_reclaim){+.+.}-{0:0}, at: slab_alloc_node mm/slub.c:5011 [inline]
ffffffff90094cc0 (fs_reclaim){+.+.}-{0:0}, at: kmem_cache_alloc_noprof+0x5f/0x600 mm/slub.c:5047

but task is already holding lock:
ffffffff900771b8 (slab_mutex){+.+.}-{4:4}, at: __kmem_cache_create_args+0x59/0x470 mm/slab_common.c:350

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #7 (slab_mutex){+.+.}-{4:4}:
       __mutex_lock_common kernel/locking/mutex.c:646 [inline]
       __mutex_lock+0x197/0x15a0 kernel/locking/mutex.c:821
       kmem_cache_destroy+0x73/0x180 mm/slab_common.c:565
       nfsd_file_cache_shutdown+0x126/0x370 fs/nfsd/filecache.c:1063
       nfsd_shutdown_generic fs/nfsd/nfssvc.c:293 [inline]
       nfsd_startup_net fs/nfsd/nfssvc.c:411 [inline]
       nfsd_svc+0x539/0x710 fs/nfsd/nfssvc.c:788
       nfsd_nl_threads_set_doit+0xa6c/0xc30 fs/nfsd/nfsctl.c:1780
       genl_family_rcv_msg_doit+0x233/0x340 net/netlink/genetlink.c:1114
       genl_family_rcv_msg net/netlink/genetlink.c:1194 [inline]
       genl_rcv_msg+0x614/0x7a0 net/netlink/genetlink.c:1209
       netlink_rcv_skb+0x226/0x4a0 net/netlink/af_netlink.c:2584
       genl_rcv+0x28/0x40 net/netlink/genetlink.c:1218
       netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
       netlink_unicast+0x8ef/0xa80 net/netlink/af_netlink.c:1361
       netlink_sendmsg+0x7f0/0xb20 net/netlink/af_netlink.c:1920
       sock_sendmsg_nosec+0x14e/0x190 net/socket.c:800
       __sock_sendmsg net/socket.c:818 [inline]
       ____sys_sendmsg+0x54e/0x850 net/socket.c:2715
       ___sys_sendmsg+0x2a5/0x360 net/socket.c:2769
       __sys_sendmsg net/socket.c:2801 [inline]
       __do_sys_sendmsg net/socket.c:2806 [inline]
       __se_sys_sendmsg net/socket.c:2804 [inline]
       __x64_sys_sendmsg+0x1b1/0x290 net/socket.c:2804
       do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
       do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84
       entry_SYSCALL_64_after_hwframe+0x77/0x7f

-> #6 (cpu_hotplug_lock){++++}-{0:0}:
       percpu_down_read_internal include/linux/percpu-rwsem.h:53 [inline]
       percpu_down_read include/linux/percpu-rwsem.h:77 [inline]
       cpus_read_lock+0x3d/0x160 kernel/cpu.c:490
       static_key_slow_inc+0x12/0x30 kernel/jump_label.c:190
       nbd_genl_reconnect_sock_cb+0x69a/0xbb0 drivers/block/nbd.c:1377
       nbd_genl_foreach_sock+0x265/0x450 drivers/block/nbd.c:2152
       nbd_genl_reconfigure+0xbbb/0x1040 drivers/block/nbd.c:2477
       genl_family_rcv_msg_doit+0x233/0x340 net/netlink/genetlink.c:1114
       genl_family_rcv_msg net/netlink/genetlink.c:1194 [inline]
       genl_rcv_msg+0x614/0x7a0 net/netlink/genetlink.c:1209
       netlink_rcv_skb+0x226/0x4a0 net/netlink/af_netlink.c:2584
       genl_rcv+0x28/0x40 net/netlink/genetlink.c:1218
       netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
       netlink_unicast+0x8ef/0xa80 net/netlink/af_netlink.c:1361
       netlink_sendmsg+0x7f0/0xb20 net/netlink/af_netlink.c:1920
       sock_sendmsg_nosec+0x14e/0x190 net/socket.c:800
       __sock_sendmsg net/socket.c:818 [inline]
       ____sys_sendmsg+0x54e/0x850 net/socket.c:2715
       ___sys_sendmsg+0x2a5/0x360 net/socket.c:2769
       __sys_sendmsg net/socket.c:2801 [inline]
       __do_sys_sendmsg net/socket.c:2806 [inline]
       __se_sys_sendmsg net/socket.c:2804 [inline]
       __x64_sys_sendmsg+0x1b1/0x290 net/socket.c:2804
       do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
       do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84
       entry_SYSCALL_64_after_hwframe+0x77/0x7f

-> #5 (&nsock->tx_lock){+.+.}-{4:4}:
       __mutex_lock_common kernel/locking/mutex.c:646 [inline]
       __mutex_lock+0x197/0x15a0 kernel/locking/mutex.c:821
       nbd_handle_cmd drivers/block/nbd.c:1143 [inline]
       nbd_queue_rq+0x373/0xff0 drivers/block/nbd.c:1207
       blk_mq_dispatch_rq_list+0x499/0x1990 block/blk-mq.c:2131
       __blk_mq_do_dispatch_sched block/blk-mq-sched.c:168 [inline]
       blk_mq_do_dispatch_sched block/blk-mq-sched.c:182 [inline]
       __blk_mq_sched_dispatch_requests+0xd36/0x1580 block/blk-mq-sched.c:307
       blk_mq_sched_dispatch_requests+0xd7/0x190 block/blk-mq-sched.c:329
       blk_mq_run_work_fn+0x167/0x2f0 block/blk-mq.c:2546
       process_one_work kernel/workqueue.c:3495 [inline]
       process_scheduled_works+0xc3d/0x1630 kernel/workqueue.c:3578
       worker_thread+0xa47/0xfb0 kernel/workqueue.c:3659
       kthread+0x38b/0x480 kernel/kthread.c:436
       ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
       ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

-> #4 (&cmd->lock){+.+.}-{4:4}:
       __mutex_lock_common kernel/locking/mutex.c:646 [inline]
       __mutex_lock+0x197/0x15a0 kernel/locking/mutex.c:821
       nbd_queue_rq+0xc1/0xff0 drivers/block/nbd.c:1199
       blk_mq_dispatch_rq_list+0x499/0x1990 block/blk-mq.c:2131
       __blk_mq_do_dispatch_sched block/blk-mq-sched.c:168 [inline]
       blk_mq_do_dispatch_sched block/blk-mq-sched.c:182 [inline]
       __blk_mq_sched_dispatch_requests+0xd36/0x1580 block/blk-mq-sched.c:307
       blk_mq_sched_dispatch_requests+0xd7/0x190 block/blk-mq-sched.c:329
       blk_mq_run_work_fn+0x167/0x2f0 block/blk-mq.c:2546
       process_one_work kernel/workqueue.c:3495 [inline]
       process_scheduled_works+0xc3d/0x1630 kernel/workqueue.c:3578
       worker_thread+0xa47/0xfb0 kernel/workqueue.c:3659
       kthread+0x38b/0x480 kernel/kthread.c:436
       ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
       ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

-> #3 (set->srcu){.+.+}-{0:0}:
       srcu_lock_sync include/linux/srcu.h:225 [inline]
       __synchronize_srcu+0xca/0x2f0 kernel/rcu/srcutree.c:1662
       elevator_switch+0x1e8/0x7b0 block/elevator.c:576
       elevator_change+0x2fa/0x480 block/elevator.c:681
       elevator_set_default+0x375/0x440 block/elevator.c:754
       blk_register_queue+0x404/0x4f0 block/blk-sysfs.c:992
       __add_disk+0x6b8/0xdb0 block/genhd.c:531
       add_disk_fwnode+0x100/0x3a0 block/genhd.c:600
       add_disk include/linux/blkdev.h:801 [inline]
       nbd_dev_add+0x733/0xb60 drivers/block/nbd.c:2026
       nbd_init+0x168/0x1f0 drivers/block/nbd.c:2743
       do_one_initcall+0x250/0x870 init/main.c:1419
       do_initcall_level+0x10a/0x1a0 init/main.c:1481
       do_initcalls+0x59/0xa0 init/main.c:1497
       kernel_init_freeable+0x29d/0x3e0 init/main.c:1732
       kernel_init+0x22/0x1d0 init/main.c:1622
       ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
       ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

-> #2 (&q->elevator_lock){+.+.}-{4:4}:
       __mutex_lock_common kernel/locking/mutex.c:646 [inline]
       __mutex_lock+0x197/0x15a0 kernel/locking/mutex.c:821
       elevator_change+0x1af/0x480 block/elevator.c:679
       elevator_set_none+0xb5/0x140 block/elevator.c:769
       blk_mq_elv_switch_none block/blk-mq.c:5114 [inline]
       __blk_mq_update_nr_hw_queues block/blk-mq.c:5159 [inline]
       blk_mq_update_nr_hw_queues+0x5ef/0x19e0 block/blk-mq.c:5224
       nbd_start_device+0x189/0xb30 drivers/block/nbd.c:1530
       nbd_genl_connect+0x167d/0x1cd0 drivers/block/nbd.c:2310
       genl_family_rcv_msg_doit+0x233/0x340 net/netlink/genetlink.c:1114
       genl_family_rcv_msg net/netlink/genetlink.c:1194 [inline]
       genl_rcv_msg+0x614/0x7a0 net/netlink/genetlink.c:1209
       netlink_rcv_skb+0x226/0x4a0 net/netlink/af_netlink.c:2584
       genl_rcv+0x28/0x40 net/netlink/genetlink.c:1218
       netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
       netlink_unicast+0x8ef/0xa80 net/netlink/af_netlink.c:1361
       netlink_sendmsg+0x7f0/0xb20 net/netlink/af_netlink.c:1920
       sock_sendmsg_nosec+0x14e/0x190 net/socket.c:800
       __sock_sendmsg net/socket.c:818 [inline]
       ____sys_sendmsg+0x54e/0x850 net/socket.c:2715
       ___sys_sendmsg+0x2a5/0x360 net/socket.c:2769
       __sys_sendmsg net/socket.c:2801 [inline]
       __do_sys_sendmsg net/socket.c:2806 [inline]
       __se_sys_sendmsg net/socket.c:2804 [inline]
       __x64_sys_sendmsg+0x1b1/0x290 net/socket.c:2804
       do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
       do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84
       entry_SYSCALL_64_after_hwframe+0x77/0x7f

-> #1 (&q->q_usage_counter(io)#49){++++}-{0:0}:
       blk_alloc_queue+0x544/0x690 block/blk-core.c:505
       blk_mq_alloc_queue block/blk-mq.c:4439 [inline]
       __blk_mq_alloc_disk+0x194/0x390 block/blk-mq.c:4486
       nbd_dev_add+0x494/0xb60 drivers/block/nbd.c:1996
       nbd_init+0x168/0x1f0 drivers/block/nbd.c:2743
       do_one_initcall+0x250/0x870 init/main.c:1419
       do_initcall_level+0x10a/0x1a0 init/main.c:1481
       do_initcalls+0x59/0xa0 init/main.c:1497
       kernel_init_freeable+0x29d/0x3e0 init/main.c:1732
       kernel_init+0x22/0x1d0 init/main.c:1622
       ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
       ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

-> #0 (fs_reclaim){+.+.}-{0:0}:
       check_prev_add kernel/locking/lockdep.c:3209 [inline]
       check_prevs_add kernel/locking/lockdep.c:3328 [inline]
       validate_chain kernel/locking/lockdep.c:3952 [inline]
       __lock_acquire+0x164c/0x2de0 kernel/locking/lockdep.c:5288
       lock_acquire+0x115/0x350 kernel/locking/lockdep.c:5942
       __fs_reclaim_acquire mm/page_alloc.c:4360 [inline]
       fs_reclaim_acquire+0x71/0x100 mm/page_alloc.c:4374
       might_alloc include/linux/sched/mm.h:316 [inline]
       slab_pre_alloc_hook mm/slub.c:4673 [inline]
       slab_alloc_node mm/slub.c:5011 [inline]
       kmem_cache_alloc_noprof+0x5f/0x600 mm/slub.c:5047
       create_cache mm/slab_common.c:249 [inline]
       __kmem_cache_create_args+0x30c/0x470 mm/slab_common.c:387
       __kmem_cache_create include/linux/slab.h:402 [inline]
       ieee80211s_init net/mac80211/mesh.c:28 [inline]
       ieee80211_mesh_init_sdata+0x371/0x620 net/mac80211/mesh.c:1784
       ieee80211_setup_sdata+0x858/0xc10 net/mac80211/iface.c:1980
       ieee80211_if_change_type+0x141/0x940 net/mac80211/iface.c:2125
       ieee80211_change_iface+0xdc/0x4b0 net/mac80211/cfg.c:275
       rdev_change_virtual_intf net/wireless/rdev-ops.h:74 [inline]
       cfg80211_change_iface+0x40f/0x9c0 net/wireless/util.c:1368
       nl80211_set_interface+0x78e/0xaa0 net/wireless/nl80211.c:5252
       genl_family_rcv_msg_doit+0x233/0x340 net/netlink/genetlink.c:1114
       genl_family_rcv_msg net/netlink/genetlink.c:1194 [inline]
       genl_rcv_msg+0x614/0x7a0 net/netlink/genetlink.c:1209
       netlink_rcv_skb+0x226/0x4a0 net/netlink/af_netlink.c:2584
       genl_rcv+0x28/0x40 net/netlink/genetlink.c:1218
       netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
       netlink_unicast+0x8ef/0xa80 net/netlink/af_netlink.c:1361
       netlink_sendmsg+0x7f0/0xb20 net/netlink/af_netlink.c:1920
       sock_sendmsg_nosec+0x14e/0x190 net/socket.c:800
       __sock_sendmsg net/socket.c:818 [inline]
       ____sys_sendmsg+0x54e/0x850 net/socket.c:2715
       ___sys_sendmsg+0x2a5/0x360 net/socket.c:2769
       __sys_sendmsg net/socket.c:2801 [inline]
       __do_sys_sendmsg net/socket.c:2806 [inline]
       __se_sys_sendmsg net/socket.c:2804 [inline]
       __x64_sys_sendmsg+0x1b1/0x290 net/socket.c:2804
       do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
       do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84
       entry_SYSCALL_64_after_hwframe+0x77/0x7f

other info that might help us debug this:

Chain exists of:
  fs_reclaim --> cpu_hotplug_lock --> slab_mutex

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(slab_mutex);
                               lock(cpu_hotplug_lock);
                               lock(slab_mutex);
  lock(fs_reclaim);

 *** DEADLOCK ***

locks held by syz.4.1718/12980: 4, last CPU#0:
 #0: ffffffff914f05a8 (cb_lock){++++}-{4:4}, at: genl_rcv+0x19/0x40 net/netlink/genetlink.c:1217
 #1: ffffffff9148c2a0 (rtnl_mutex){+.+.}-{4:4}, at: nl80211_pre_doit+0x117/0xfa0 net/wireless/nl80211.c:20140
 #2: ffff888067180800 (&rdev->wiphy.mtx){+.+.}-{4:4}, at: wiphy_lock include/net/cfg80211.h:6974 [inline]
 #2: ffff888067180800 (&rdev->wiphy.mtx){+.+.}-{4:4}, at: nl80211_pre_doit+0x6b2/0xfa0 net/wireless/nl80211.c:20189
 #3: ffffffff900771b8 (slab_mutex){+.+.}-{4:4}, at: __kmem_cache_create_args+0x59/0x470 mm/slab_common.c:350

stack backtrace:
CPU: 0 UID: 0 PID: 12980 Comm: syz.4.1718 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/07/2026
Call Trace:
 <TASK>
 dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
 print_circular_bug+0x2e2/0x300 kernel/locking/lockdep.c:2087
 check_noncircular+0x12f/0x150 kernel/locking/lockdep.c:2219
 check_prev_add kernel/locking/lockdep.c:3209 [inline]
 check_prevs_add kernel/locking/lockdep.c:3328 [inline]
 validate_chain kernel/locking/lockdep.c:3952 [inline]
 __lock_acquire+0x164c/0x2de0 kernel/locking/lockdep.c:5288
 lock_acquire+0x115/0x350 kernel/locking/lockdep.c:5942
 __fs_reclaim_acquire mm/page_alloc.c:4360 [inline]
 fs_reclaim_acquire+0x71/0x100 mm/page_alloc.c:4374
 might_alloc include/linux/sched/mm.h:316 [inline]
 slab_pre_alloc_hook mm/slub.c:4673 [inline]
 slab_alloc_node mm/slub.c:5011 [inline]
 kmem_cache_alloc_noprof+0x5f/0x600 mm/slub.c:5047
 create_cache mm/slab_common.c:249 [inline]
 __kmem_cache_create_args+0x30c/0x470 mm/slab_common.c:387
 __kmem_cache_create include/linux/slab.h:402 [inline]
 ieee80211s_init net/mac80211/mesh.c:28 [inline]
 ieee80211_mesh_init_sdata+0x371/0x620 net/mac80211/mesh.c:1784
 ieee80211_setup_sdata+0x858/0xc10 net/mac80211/iface.c:1980
 ieee80211_if_change_type+0x141/0x940 net/mac80211/iface.c:2125
 ieee80211_change_iface+0xdc/0x4b0 net/mac80211/cfg.c:275
 rdev_change_virtual_intf net/wireless/rdev-ops.h:74 [inline]
 cfg80211_change_iface+0x40f/0x9c0 net/wireless/util.c:1368
 nl80211_set_interface+0x78e/0xaa0 net/wireless/nl80211.c:5252
 genl_family_rcv_msg_doit+0x233/0x340 net/netlink/genetlink.c:1114
 genl_family_rcv_msg net/netlink/genetlink.c:1194 [inline]
 genl_rcv_msg+0x614/0x7a0 net/netlink/genetlink.c:1209
 netlink_rcv_skb+0x226/0x4a0 net/netlink/af_netlink.c:2584
 genl_rcv+0x28/0x40 net/netlink/genetlink.c:1218
 netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
 netlink_unicast+0x8ef/0xa80 net/netlink/af_netlink.c:1361
 netlink_sendmsg+0x7f0/0xb20 net/netlink/af_netlink.c:1920
 sock_sendmsg_nosec+0x14e/0x190 net/socket.c:800
 __sock_sendmsg net/socket.c:818 [inline]
 ____sys_sendmsg+0x54e/0x850 net/socket.c:2715
 ___sys_sendmsg+0x2a5/0x360 net/socket.c:2769
 __sys_sendmsg net/socket.c:2801 [inline]
 __do_sys_sendmsg net/socket.c:2806 [inline]
 __se_sys_sendmsg net/socket.c:2804 [inline]
 __x64_sys_sendmsg+0x1b1/0x290 net/socket.c:2804
 do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
 do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f0223f9fb19
Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f0224f20028 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
RAX: ffffffffffffffda RBX: 00007f0224226090 RCX: 00007f0223f9fb19
RDX: 0000000000000000 RSI: 0000200000000500 RDI: 0000000000000080
RBP: 00007f0224037b70 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f0224226128 R14: 00007f0224226090 R15: 00007ffe4f069ef8
 </TASK>

Crashes (6):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/11/02 17:47 net c4ba1716853d 0a94d799 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-net-this-kasan-gce possible deadlock in nfsd_file_cache_shutdown
2026/11/02 09:46 net c4ba1716853d 25a0ae84 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-net-this-kasan-gce possible deadlock in nfsd_file_cache_shutdown
2026/11/02 07:33 net cb284914e749 25a0ae84 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-net-this-kasan-gce possible deadlock in nfsd_file_cache_shutdown
2026/11/05 21:55 net-next 4bca33ba24db 5cecaf1f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-net-kasan-gce possible deadlock in nfsd_file_cache_shutdown
2026/11/04 15:40 net-next 7b6ab4dbc156 5af5b6c6 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-net-kasan-gce possible deadlock in nfsd_file_cache_shutdown
2026/11/02 14:24 net-next 4dd16e31135e 0a94d799 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-net-kasan-gce possible deadlock in nfsd_file_cache_shutdown
* Struck through repros no longer work on HEAD.