CDEBUG(D_MGC, "dropping config log %s\n", cld->cld_logname);
- if (cld->cld_barrier)
- config_log_put(cld->cld_barrier);
- if (cld->cld_recover)
- config_log_put(cld->cld_recover);
- if (cld->cld_params)
- config_log_put(cld->cld_params);
- if (cld->cld_nodemap)
- config_log_put(cld->cld_nodemap);
- if (cld->cld_sptlrpc)
- config_log_put(cld->cld_sptlrpc);
+ config_log_put(cld->cld_barrier);
+ config_log_put(cld->cld_recover);
+ config_log_put(cld->cld_params);
+ config_log_put(cld->cld_nodemap);
+ config_log_put(cld->cld_sptlrpc);
if (cld_is_sptlrpc(cld))
sptlrpc_conf_log_stop(cld->cld_logname);
static inline void config_mark_cld_stop(struct config_llog_data *cld)
{
- mutex_lock(&cld->cld_lock);
- spin_lock(&config_list_lock);
- cld->cld_stopping = 1;
- spin_unlock(&config_list_lock);
- mutex_unlock(&cld->cld_lock);
+ if (cld) {
+ mutex_lock(&cld->cld_lock);
+ spin_lock(&config_list_lock);
+ cld->cld_stopping = 1;
+ spin_unlock(&config_list_lock);
+ mutex_unlock(&cld->cld_lock);
+ }
}
/** Stop watching for updates on this log.
cld->cld_sptlrpc = NULL;
mutex_unlock(&cld->cld_lock);
- if (cld_recover) {
- config_mark_cld_stop(cld_recover);
- config_log_put(cld_recover);
- }
+ config_mark_cld_stop(cld_recover);
+ config_log_put(cld_recover);
- if (cld_params) {
- config_mark_cld_stop(cld_params);
- config_log_put(cld_params);
- }
+ config_mark_cld_stop(cld_params);
+ config_log_put(cld_params);
/* don't set cld_stopping on nm lock as other targets may be active */
- if (cld_nodemap)
- config_log_put(cld_nodemap);
+ config_log_put(cld_nodemap);
if (cld_barrier) {
mutex_lock(&cld_barrier->cld_lock);
config_log_put(cld_barrier);
}
- if (cld_sptlrpc)
- config_log_put(cld_sptlrpc);
+ config_log_put(cld_sptlrpc);
/* drop the ref from the find */
config_log_put(cld);
cld->cld_lostlock = 0;
spin_unlock(&config_list_lock);
- if (cld_prev)
- config_log_put(cld_prev);
+ config_log_put(cld_prev);
cld_prev = cld;
if (likely(!(rq_state & RQ_STOP))) {
}
}
spin_unlock(&config_list_lock);
- if (cld_prev)
- config_log_put(cld_prev);
+ config_log_put(cld_prev);
/* Wait a bit to see if anyone else needs a requeue */
lwi = (struct l_wait_info) { 0 };