b=18154
i=alexey.lyashkov (shadow)
i=johann
always calls ptlrpc_import_recovery_state_machine() in
invalidate_import_thread() because otherwise threads sleeping on
the import's imp_recovery_waitq could be never woken up.
static int ptlrpc_invalidate_import_thread(void *data)
{
struct obd_import *imp = data;
- int disconnect;
ENTRY;
ptlrpc_invalidate_import(imp);
- /* is client_disconnect_export in flight ? */
- spin_lock(&imp->imp_lock);
- disconnect = imp->imp_deactive;
- spin_unlock(&imp->imp_lock);
- if (disconnect)
- GOTO(out, 0 );
-
if (obd_dump_on_eviction) {
CERROR("dump the log upon eviction\n");
libcfs_debug_dumplog();
IMPORT_SET_STATE(imp, LUSTRE_IMP_RECOVER);
ptlrpc_import_recovery_state_machine(imp);
-out:
class_import_put(imp);
RETURN(0);
}