return 0;
}
+static DEFINE_MUTEX(libcfs_debug_dumplog_lock);
+
void libcfs_debug_dumplog(void)
{
struct task_struct *dumper;
ENTRY;
+
+ if (mutex_trylock(&libcfs_debug_dumplog_lock) == 0)
+ return;
+
/* If a previous call was interrupted, debug_complete->done
* might be elevated, and so we won't actually wait here.
* So we reinit the completion to ensure we wait for
PTR_ERR(dumper));
else
wait_for_completion_interruptible(&debug_complete);
+
+ mutex_unlock(&libcfs_debug_dumplog_lock);
}
EXPORT_SYMBOL(libcfs_debug_dumplog);