• Lorenzo Bianconi's avatar
    NFSD: grab nfsd_mutex in nfsd_nl_rpc_status_get_dumpit() · da2c8fef
    Lorenzo Bianconi authored
    Grab nfsd_mutex lock in nfsd_nl_rpc_status_get_dumpit routine and remove
    nfsd_nl_rpc_status_get_start() and nfsd_nl_rpc_status_get_done(). This
    patch fix the syzbot log reported below:
    
    INFO: task syz-executor.1:17770 blocked for more than 143 seconds.
          Not tainted 6.10.0-rc3-syzkaller-00022-gcea2a265 #0
    "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    task:syz-executor.1  state:D stack:23800 pid:17770 tgid:17767 ppid:11381  flags:0x00000006
    Call Trace:
     <TASK>
     context_switch kernel/sched/core.c:5408 [inline]
     __schedule+0x17e8/0x4a20 kernel/sched/core.c:6745
     __schedule_loop kernel/sched/core.c:6822 [inline]
     schedule+0x14b/0x320 kernel/sched/core.c:6837
     schedule_preempt_disabled+0x13/0x30 kernel/sched/core.c:6894
     __mutex_lock_common kernel/locking/mutex.c:684 [inline]
     __mutex_lock+0x6a4/0xd70 kernel/locking/mutex.c:752
     nfsd_nl_listener_get_doit+0x115/0x5d0 fs/nfsd/nfsctl.c:2124
     genl_family_rcv_msg_doit net/netlink/genetlink.c:1115 [inline]
     genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]
     genl_rcv_msg+0xb16/0xec0 net/netlink/genetlink.c:1210
     netlink_rcv_skb+0x1e5/0x430 net/netlink/af_netlink.c:2564
     genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219
     netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
     netlink_unicast+0x7ec/0x980 net/netlink/af_netlink.c:1361
     netlink_sendmsg+0x8db/0xcb0 net/netlink/af_netlink.c:1905
     sock_sendmsg_nosec net/socket.c:730 [inline]
     __sock_sendmsg+0x223/0x270 net/socket.c:745
     ____sys_sendmsg+0x525/0x7d0 net/socket.c:2585
     ___sys_sendmsg net/socket.c:2639 [inline]
     __sys_sendmsg+0x2b0/0x3a0 net/socket.c:2668
     do_syscall_x64 arch/x86/entry/common.c:52 [inline]
     do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    RIP: 0033:0x7f24ed27cea9
    RSP: 002b:00007f24ee0080c8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 00007f24ed3b3f80 RCX: 00007f24ed27cea9
    RDX: 0000000000000000 RSI: 0000000020000100 RDI: 0000000000000005
    RBP: 00007f24ed2ebff4 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
    
    Fixes: 1bd773b4 ("nfsd: hold nfsd_mutex across entire netlink operation")
    Fixes: bd9d6a3e ("NFSD: add rpc_status netlink support")
    Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
    Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    da2c8fef
netlink.h 1.13 KB