Use:
OBD_ALLOC_PTR_ARRAY
OBD_FREE_PTR_ARRAY
for allocating and freeing arrays in mdt.
Test-Parameters: trivial
Signed-off-by: Mr NeilBrown <neilb@suse.de>
Change-Id: I5e69f03370fc42fdfe770a4c6fc72a994a6749f6
Reviewed-on: https://review.whamcloud.com/38251
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Mike Pershin <mpershin@whamcloud.com>
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
list_for_each_entry_safe(ha, tmp2, &cdt->cdt_agents, ha_list) {
list_del(&ha->ha_list);
if (ha->ha_archive_cnt != 0)
list_for_each_entry_safe(ha, tmp2, &cdt->cdt_agents, ha_list) {
list_del(&ha->ha_list);
if (ha->ha_archive_cnt != 0)
- OBD_FREE(ha->ha_archive_id, ha->ha_archive_cnt *
- sizeof(*ha->ha_archive_id));
+ OBD_FREE_PTR_ARRAY(ha->ha_archive_id,
+ ha->ha_archive_cnt);
OBD_FREE_PTR(ha);
}
up_write(&cdt->cdt_agent_lock);
OBD_FREE_PTR(ha);
}
up_write(&cdt->cdt_agent_lock);
exp_max_brw_size(tsi->tsi_exp));
rdpg->rp_npages = (rdpg->rp_count + PAGE_SIZE - 1) >>
PAGE_SHIFT;
exp_max_brw_size(tsi->tsi_exp));
rdpg->rp_npages = (rdpg->rp_count + PAGE_SIZE - 1) >>
PAGE_SHIFT;
- OBD_ALLOC(rdpg->rp_pages, rdpg->rp_npages * sizeof rdpg->rp_pages[0]);
- if (rdpg->rp_pages == NULL)
- RETURN(-ENOMEM);
+ 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) {
rdpg->rp_pages[i] = alloc_page(GFP_NOFS);
rdpg->rp_pages[i] = alloc_page(GFP_NOFS);
- if (rdpg->rp_pages[i] == NULL)
- GOTO(free_rdpg, rc = -ENOMEM);
- }
+ if (rdpg->rp_pages[i] == NULL)
+ GOTO(free_rdpg, rc = -ENOMEM);
+ }
- /* call lower layers to fill allocated pages with directory data */
+ /* call lower layers to fill allocated pages with directory data */
rc = mo_readpage(tsi->tsi_env, mdt_object_child(object), rdpg);
if (rc < 0)
GOTO(free_rdpg, rc);
rc = mo_readpage(tsi->tsi_env, mdt_object_child(object), rdpg);
if (rc < 0)
GOTO(free_rdpg, rc);
for (i = 0; i < rdpg->rp_npages; i++)
if (rdpg->rp_pages[i] != NULL)
__free_page(rdpg->rp_pages[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);
if (OBD_FAIL_CHECK(OBD_FAIL_MDS_SENDPAGE))
RETURN(0);
if (OBD_FAIL_CHECK(OBD_FAIL_MDS_SENDPAGE))
RETURN(0);
out_free:
if (ha != NULL && ha->ha_archive_id != NULL)
out_free:
if (ha != NULL && ha->ha_archive_id != NULL)
- OBD_FREE(ha->ha_archive_id,
- ha->ha_archive_cnt * sizeof(*ha->ha_archive_id));
+ OBD_FREE_PTR_ARRAY(ha->ha_archive_id, ha->ha_archive_cnt);
if (ha != NULL)
OBD_FREE_PTR(ha);
out:
if (ha != NULL)
OBD_FREE_PTR(ha);
out:
nr_archives = hweight32(archive_mask);
if (nr_archives != 0) {
nr_archives = hweight32(archive_mask);
if (nr_archives != 0) {
- OBD_ALLOC(archive_id, nr_archives * sizeof(*archive_id));
+ OBD_ALLOC_PTR_ARRAY(archive_id, nr_archives);
if (!archive_id)
RETURN(-ENOMEM);
if (!archive_id)
RETURN(-ENOMEM);
rc = mdt_hsm_agent_register(mti, uuid, nr_archives, archive_id);
if (archive_id != NULL)
rc = mdt_hsm_agent_register(mti, uuid, nr_archives, archive_id);
if (archive_id != NULL)
- OBD_FREE(archive_id, nr_archives * sizeof(*archive_id));
+ OBD_FREE_PTR_ARRAY(archive_id, nr_archives);
GOTO(out, rc = -ENOENT);
if (ha->ha_archive_cnt != 0)
GOTO(out, rc = -ENOENT);
if (ha->ha_archive_cnt != 0)
- OBD_FREE(ha->ha_archive_id,
- ha->ha_archive_cnt * sizeof(*ha->ha_archive_id));
+ OBD_FREE_PTR_ARRAY(ha->ha_archive_id, ha->ha_archive_cnt);
OBD_FREE_PTR(ha);
GOTO(out, rc = 0);
OBD_FREE_PTR(ha);
GOTO(out, rc = 0);
}
/* free all sub vectors */
for (i = 0 ; i <= crp->crp_max / NODE_VECTOR_SZ ; i++)
}
/* free all sub vectors */
for (i = 0 ; i <= crp->crp_max / NODE_VECTOR_SZ ; i++)
- OBD_FREE(crp->crp_node[i],
- NODE_VECTOR_SZ * sizeof(crp->crp_node[i][0]));
+ OBD_FREE_PTR_ARRAY(crp->crp_node[i], NODE_VECTOR_SZ);
- OBD_FREE(crp->crp_node,
- sizeof(crp->crp_node[0]) *
- (crp->crp_max / NODE_VECTOR_SZ + 1));
+ OBD_FREE_PTR_ARRAY(crp->crp_node,
+ (crp->crp_max / NODE_VECTOR_SZ + 1));
crp->crp_cnt = 0;
crp->crp_max = 0;
crp->crp_cnt = 0;
crp->crp_max = 0;
if (crp->crp_cnt >= crp->crp_max) {
/* no more room */
/* allocate a new vector */
if (crp->crp_cnt >= crp->crp_max) {
/* no more room */
/* allocate a new vector */
- OBD_ALLOC(v, NODE_VECTOR_SZ * sizeof(v[0]));
+ OBD_ALLOC_PTR_ARRAY(v, NODE_VECTOR_SZ);
if (v == NULL)
GOTO(out, rc = -ENOMEM);
if (v == NULL)
GOTO(out, rc = -ENOMEM);
/* increase main vector size */
OBD_ALLOC(new_vv, nsz);
if (new_vv == NULL) {
/* increase main vector size */
OBD_ALLOC(new_vv, nsz);
if (new_vv == NULL) {
- OBD_FREE(v, NODE_VECTOR_SZ * sizeof(v[0]));
+ OBD_FREE_PTR_ARRAY(v, NODE_VECTOR_SZ);
GOTO(out, rc = -ENOMEM);
}
GOTO(out, rc = -ENOMEM);
}
if (identity->mi_nperms) {
LASSERT(identity->mi_perms);
if (identity->mi_nperms) {
LASSERT(identity->mi_perms);
- OBD_FREE(identity->mi_perms,
- identity->mi_nperms * sizeof(struct md_perm));
+ OBD_FREE_PTR_ARRAY(identity->mi_perms, identity->mi_nperms);
identity->mi_nperms = 0;
}
}
identity->mi_nperms = 0;
}
}
/* parse remote buffers to local buffers and prepare the latter */
lnbs = (len >> PAGE_SHIFT) + 1;
/* parse remote buffers to local buffers and prepare the latter */
lnbs = (len >> PAGE_SHIFT) + 1;
- OBD_ALLOC(lnb, sizeof(*lnb) * lnbs);
+ OBD_ALLOC_PTR_ARRAY(lnb, lnbs);
if (lnb == NULL)
GOTO(unlock, rc = -ENOMEM);
if (lnb == NULL)
GOTO(unlock, rc = -ENOMEM);
buf_put:
dt_bufs_put(env, mo, lnb, nr_local);
free:
buf_put:
dt_bufs_put(env, mo, lnb, nr_local);
free:
- OBD_FREE(lnb, sizeof(*lnb) * lnbs);
+ OBD_FREE_PTR_ARRAY(lnb, lnbs);
unlock:
dt_read_unlock(env, mo);
lu_object_put(env, &mo->do_lu);
unlock:
dt_read_unlock(env, mo);
lu_object_put(env, &mo->do_lu);
RCL_CLIENT))
GOTO(out_unlock, rc = -EPROTO);
RCL_CLIENT))
GOTO(out_unlock, rc = -EPROTO);
- OBD_ALLOC(resync_ids, resync_count * sizeof(__u32));
+ OBD_ALLOC_PTR_ARRAY(resync_ids, resync_count);
if (!resync_ids)
GOTO(out_unlock, rc = -ENOMEM);
if (!resync_ids)
GOTO(out_unlock, rc = -ENOMEM);
- OBD_FREE(resync_ids, resync_count * sizeof(__u32));
+ OBD_FREE_PTR_ARRAY(resync_ids, resync_count);
out_reprocess:
ldlm_reprocess_all(lease->l_resource, lease);
out_reprocess:
ldlm_reprocess_all(lease->l_resource, lease);