num_pols = svc->srv_parts[0]->scp_nrs_reg.nrs_num_pols;
spin_unlock(&nrs->nrs_lock);
- OBD_ALLOC(infos, num_pols * sizeof(*infos));
+ OBD_ALLOC_PTR_ARRAY(infos, num_pols);
if (infos == NULL)
GOTO(out, rc = -ENOMEM);
again:
out:
if (infos)
- OBD_FREE(infos, num_pols * sizeof(*infos));
+ OBD_FREE_PTR_ARRAY(infos, num_pols);
mutex_unlock(&nrs_core.nrs_mutex);
body->mcb_name, rdpg.rp_count);
/* allocate pages to store the containers */
- OBD_ALLOC(rdpg.rp_pages, sizeof(*rdpg.rp_pages) * rdpg.rp_npages);
+ OBD_ALLOC_PTR_ARRAY(rdpg.rp_pages, rdpg.rp_npages);
if (rdpg.rp_pages == NULL)
RETURN(-ENOMEM);
for (i = 0; i < rdpg.rp_npages; i++) {
for (i = 0; i < rdpg.rp_npages; i++)
if (rdpg.rp_pages[i] != NULL)
__free_page(rdpg.rp_pages[i]);
- OBD_FREE(rdpg.rp_pages,
- rdpg.rp_npages * sizeof(rdpg.rp_pages[0]));
+ OBD_FREE_PTR_ARRAY(rdpg.rp_pages, rdpg.rp_npages);
}
return rc;
}
if (pc->pc_npartners > 0) {
LASSERT(pc->pc_partners != NULL);
- OBD_FREE(pc->pc_partners,
- sizeof(struct ptlrpcd_ctl *) * pc->pc_npartners);
+ OBD_FREE_PTR_ARRAY(pc->pc_partners, pc->pc_npartners);
pc->pc_partners = NULL;
}
pc->pc_npartners = 0;
OBD_FREE(ptlrpcds[i], ptlrpcds[i]->pd_size);
ptlrpcds[i] = NULL;
}
- OBD_FREE(ptlrpcds, sizeof(ptlrpcds[0]) * ptlrpcds_num);
+ OBD_FREE_PTR_ARRAY(ptlrpcds, ptlrpcds_num);
}
ptlrpcds_num = 0;
if (ptlrpcds_cpt_idx != NULL) {
ncpts = cfs_cpt_number(cfs_cpt_tab);
- OBD_FREE(ptlrpcds_cpt_idx, ncpts * sizeof(ptlrpcds_cpt_idx[0]));
+ OBD_FREE_PTR_ARRAY(ptlrpcds_cpt_idx, ncpts);
ptlrpcds_cpt_idx = NULL;
}
page_pools.epp_st_grows++;
npools = npages_to_npools(npages);
- OBD_ALLOC(pools, npools * sizeof(*pools));
+ OBD_ALLOC_PTR_ARRAY(pools, npools);
if (pools == NULL)
goto out;
out_pools:
enc_pools_cleanup(pools, npools);
- OBD_FREE(pools, npools * sizeof(*pools));
+ OBD_FREE_PTR_ARRAY(pools, npools);
out:
if (rc) {
page_pools.epp_st_grow_fails++;
void sptlrpc_rule_set_free(struct sptlrpc_rule_set *rset)
{
- LASSERT(rset->srs_nslot ||
- (rset->srs_nrule == 0 && rset->srs_rules == NULL));
+ LASSERT(rset->srs_nslot ||
+ (rset->srs_nrule == 0 && rset->srs_rules == NULL));
- if (rset->srs_nslot) {
- OBD_FREE(rset->srs_rules,
- rset->srs_nslot * sizeof(*rset->srs_rules));
- sptlrpc_rule_set_init(rset);
- }
+ if (rset->srs_nslot) {
+ OBD_FREE_PTR_ARRAY(rset->srs_rules, rset->srs_nslot);
+ sptlrpc_rule_set_init(rset);
+ }
}
EXPORT_SYMBOL(sptlrpc_rule_set_free);
nslot = rset->srs_nslot + 8;
- /* better use realloc() if available */
- OBD_ALLOC(rules, nslot * sizeof(*rset->srs_rules));
- if (rules == NULL)
- return -ENOMEM;
+ /* better use realloc() if available */
+ OBD_ALLOC_PTR_ARRAY(rules, nslot);
+ if (rules == NULL)
+ return -ENOMEM;
- if (rset->srs_nrule) {
- LASSERT(rset->srs_nslot && rset->srs_rules);
- memcpy(rules, rset->srs_rules,
- rset->srs_nrule * sizeof(*rset->srs_rules));
+ if (rset->srs_nrule) {
+ LASSERT(rset->srs_nslot && rset->srs_rules);
+ memcpy(rules, rset->srs_rules,
+ rset->srs_nrule * sizeof(*rset->srs_rules));
- OBD_FREE(rset->srs_rules,
- rset->srs_nslot * sizeof(*rset->srs_rules));
- }
+ OBD_FREE_PTR_ARRAY(rset->srs_rules, rset->srs_nslot);
+ }
rset->srs_rules = rules;
rset->srs_nslot = nslot;
failed:
if (array->paa_reqs_count != NULL) {
- OBD_FREE(array->paa_reqs_count, sizeof(__u32) * size);
+ OBD_FREE_PTR_ARRAY(array->paa_reqs_count, size);
array->paa_reqs_count = NULL;
}
if (array->paa_reqs_array != NULL) {
- OBD_FREE(array->paa_reqs_array,
- sizeof(struct list_head) * array->paa_size);
+ OBD_FREE_PTR_ARRAY(array->paa_reqs_array, array->paa_size);
array->paa_reqs_array = NULL;
}
CERROR("%s: failed to parse CPT array %s: %d\n",
conf->psc_name, cconf->cc_pattern, rc);
if (cpts != NULL)
- OBD_FREE(cpts, sizeof(*cpts) * ncpts);
+ OBD_FREE_PTR_ARRAY(cpts, ncpts);
RETURN(ERR_PTR(rc < 0 ? rc : -EINVAL));
}
ncpts = rc;
OBD_ALLOC(service, offsetof(struct ptlrpc_service, srv_parts[ncpts]));
if (service == NULL) {
if (cpts != NULL)
- OBD_FREE(cpts, sizeof(*cpts) * ncpts);
+ OBD_FREE_PTR_ARRAY(cpts, ncpts);
RETURN(ERR_PTR(-ENOMEM));
}
ptlrpc_stop_hr_threads();
cfs_percpt_for_each(hrp, cpt, ptlrpc_hr.hr_partitions) {
- if (hrp->hrp_thrs != NULL) {
- OBD_FREE(hrp->hrp_thrs,
- hrp->hrp_nthrs * sizeof(hrp->hrp_thrs[0]));
- }
+ if (hrp->hrp_thrs)
+ OBD_FREE_PTR_ARRAY(hrp->hrp_thrs, hrp->hrp_nthrs);
}
cfs_percpt_free(ptlrpc_hr.hr_partitions);
array = &svcpt->scp_at_array;
if (array->paa_reqs_array != NULL) {
- OBD_FREE(array->paa_reqs_array,
- sizeof(struct list_head) * array->paa_size);
+ OBD_FREE_PTR_ARRAY(array->paa_reqs_array,
+ array->paa_size);
array->paa_reqs_array = NULL;
}
if (array->paa_reqs_count != NULL) {
- OBD_FREE(array->paa_reqs_count,
- sizeof(__u32) * array->paa_size);
+ OBD_FREE_PTR_ARRAY(array->paa_reqs_count,
+ array->paa_size);
array->paa_reqs_count = NULL;
}
}