|
Description
|
When SVM returns with an I/O error, the various sub-drivers call into md_devname() to get the name of the failing device.
This in turn calls to md_getdevname(), which tries to take a rwlock on the namespace.
All this is done in interrupt context, using the interrupt from the sd driver for the returning I/O.
If at the same time we have another I/O trying to update the namespace and holding the nm_lock as a writer, then this I/O will not be able to complete as the interrupt thread is blocked waiting on the same lock, and we are stuck.
|