prevent destroy request after get timeout in ptlrpc_queue_wait.
b=11674
i=green
i=wangdi
recorded as log2. Also remove some code duplication arising from
filter_tally_{read,write}.
+Severity : normal
+Bugzilla : 11674
+Frequency : rare, only in recovery.
+Description: ASSERTION(req->rq_type != LI_POISON) failed
+Details : imp_lock should be held while iterating over imp_sending_list for
+ prevent destroy request after get timeout in ptlrpc_queue_wait.
--------------------------------------------------------------------------------
spin_unlock(&imp->imp_lock);
RETURN(-1);
}
- spin_unlock(&imp->imp_lock);
list_for_each_entry_safe(req, next, &imp->imp_sending_list, rq_list) {
LASSERTF((long)req > CFS_PAGE_SIZE && req != LP_POISON,
if (!req->rq_no_resend)
ptlrpc_resend_req(req);
}
+ spin_unlock(&imp->imp_lock);
RETURN(0);
}