Dump log from current process when required

When dumping a debug log first check that it is safe to create
a new thread and block waiting for it.  If we are in an atomic
context or irqs and disabled it is not safe to sleep and we
must write out of the debug log from the current process.
This commit is contained in:
Brian Behlendorf 2010-04-23 15:55:02 -07:00
parent d05ec4b45f
commit 97f8f6d789

View File

@ -1112,6 +1112,9 @@ void spl_debug_bug(char *file, const char *func, const int line, int flags)
/* not reached */
}
if (in_atomic() || irqs_disabled())
flags |= DL_NOTHREAD;
/* Ensure all debug pages and dumped by current cpu */
if (spl_debug_panic_on_bug)
spl_panic_in_progress = 1;