On Mon, May 13, 2019 at 05:11:47PM +0800, Yuyang Du wrote: > + * Note that we have an assumption that a lock class cannot ever be both > + * read and recursive-read.
We have such locks in the kernel... see: kernel/qrwlock.c:queued_read_lock_slowpath() And yes, that is somewhat unfortunate, but hard to get rid of due to hysterical raisins.