int idx, bool add)
{
struct qmt_pool_info *pos, *pool;
- int rc;
+ int rc = 0;
ENTRY;
down_read(&qmt->qmt_pool_lock);
if (idx >= 0 && !qmt_sarr_check_idx(pos, idx)) {
rc = qti_pools_add(env, pos);
if (rc)
- GOTO(out_err, rc);
+ break;
continue;
}
if (add) {
rc = qti_pools_add(env, pos);
if (rc)
- GOTO(out_err, rc);
+ break;
} else {
qpi_getref(pool);
}
}
up_read(&qmt->qmt_pool_lock);
+ if (rc)
+ GOTO(out_err, rc);
+
if (idx >= 0 && qti_pools_cnt(env))
pool = qti_pools_env(env)[0];
out_err:
CERROR("%s: cannot add pool %s: err = %d\n",
qmt->qmt_svname, pos->qpi_name, rc);
- RETURN(ERR_PTR(rc));
+ return ERR_PTR(rc);
}
/*