2018-08-13 03:44:11

by Jia-Ju Bai

[permalink] [raw]
Subject: [BUG] fs: nfs: callback_proc: a possible sleep-in-atomic-context bug in nfs4_callback_sequence()

The kernel may sleep with holding a spinlock.

The function call paths (from bottom to top) in Linux-4.16 are:

[FUNC] schedule_timeout
fs/nfs/nfs4session.c, 223: schedule_timeout in nfs4_slot_wait_on_seqid
fs/nfs/callback_proc.c, 466: nfs4_slot_wait_on_seqid in
referring_call_exists
fs/nfs/callback_proc.c, 544: referring_call_exists in nfs4_callback_sequence
fs/nfs/callback_proc.c, 504: spin_lock in nfs4_callback_sequence

I do not find a good way to fix, so I only report.
This is found by my static analysis tool (DSAC).


Thanks,
Jia-Ju Bai