2018-08-13 03:47:35

by Jia-Ju Bai

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

The kernel may sleep with holding a spinlock.

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

[FUNC] mutex_lock_nested
fs/nfs/write.c, 1045: mutex_lock_nested in nfs_scan_commit_list
fs/nfs/pnfs_nfs.c, 145: nfs_scan_commit_list in
pnfs_generic_recover_commit_reqs
fs/nfs/pnfs_nfs.c, 154: spin_lock in pnfs_generic_recover_commit_reqs

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