From: Mr NeilBrown Date: Thu, 14 Nov 2019 03:20:01 +0000 (+1100) Subject: LU-9679 mdt: use OBD_ALLOC_PTR_ARRAY() and FREE X-Git-Tag: 2.13.54~34 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=6329c1f148ebf4ea5439e5b66af640ef5de7934c LU-9679 mdt: use OBD_ALLOC_PTR_ARRAY() and FREE Use: OBD_ALLOC_PTR_ARRAY OBD_FREE_PTR_ARRAY for allocating and freeing arrays in mdt. Test-Parameters: trivial Signed-off-by: Mr NeilBrown Change-Id: I5e69f03370fc42fdfe770a4c6fc72a994a6749f6 Reviewed-on: https://review.whamcloud.com/38251 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Mike Pershin Reviewed-by: Yang Sheng Reviewed-by: James Simmons Reviewed-by: Oleg Drokin --- diff --git a/lustre/mdt/mdt_coordinator.c b/lustre/mdt/mdt_coordinator.c index d666f2d..d19a592 100644 --- a/lustre/mdt/mdt_coordinator.c +++ b/lustre/mdt/mdt_coordinator.c @@ -467,8 +467,8 @@ static void mdt_hsm_cdt_cleanup(struct mdt_device *mdt) 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); diff --git a/lustre/mdt/mdt_handler.c b/lustre/mdt/mdt_handler.c index 2f069ff..949edee 100644 --- a/lustre/mdt/mdt_handler.c +++ b/lustre/mdt/mdt_handler.c @@ -2380,17 +2380,17 @@ static int mdt_readpage(struct tgt_session_info *tsi) 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); - 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); @@ -2404,7 +2404,7 @@ free_rdpg: 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); diff --git a/lustre/mdt/mdt_hsm_cdt_agent.c b/lustre/mdt/mdt_hsm_cdt_agent.c index 2bce139..bd0b1bf 100644 --- a/lustre/mdt/mdt_hsm_cdt_agent.c +++ b/lustre/mdt/mdt_hsm_cdt_agent.c @@ -135,8 +135,7 @@ int mdt_hsm_agent_register(struct mdt_thread_info *mti, 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: @@ -165,7 +164,7 @@ int mdt_hsm_agent_register_mask(struct mdt_thread_info *mti, 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); @@ -181,7 +180,7 @@ int mdt_hsm_agent_register_mask(struct mdt_thread_info *mti, 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); RETURN(rc); } @@ -217,8 +216,7 @@ int mdt_hsm_agent_unregister(struct mdt_thread_info *mti, 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); diff --git a/lustre/mdt/mdt_hsm_cdt_requests.c b/lustre/mdt/mdt_hsm_cdt_requests.c index febca0e..7135334 100644 --- a/lustre/mdt/mdt_hsm_cdt_requests.c +++ b/lustre/mdt/mdt_hsm_cdt_requests.c @@ -184,13 +184,11 @@ static void mdt_cdt_free_request_tree(struct cdt_req_progress *crp) } /* 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); /* free main vector */ - 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; @@ -221,7 +219,7 @@ static int hsm_update_work(struct cdt_req_progress *crp, 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); @@ -235,7 +233,7 @@ static int hsm_update_work(struct cdt_req_progress *crp, /* 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); } diff --git a/lustre/mdt/mdt_identity.c b/lustre/mdt/mdt_identity.c index 4846345..246970c 100644 --- a/lustre/mdt/mdt_identity.c +++ b/lustre/mdt/mdt_identity.c @@ -57,8 +57,7 @@ static void mdt_identity_entry_free(struct upcall_cache *cache, 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; } } diff --git a/lustre/mdt/mdt_io.c b/lustre/mdt/mdt_io.c index 4dc67be..75b6f81 100644 --- a/lustre/mdt/mdt_io.c +++ b/lustre/mdt/mdt_io.c @@ -1532,7 +1532,7 @@ int mdt_dom_read_on_open(struct mdt_thread_info *mti, struct mdt_device *mdt, /* 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); @@ -1573,7 +1573,7 @@ int mdt_dom_read_on_open(struct mdt_thread_info *mti, struct mdt_device *mdt, 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); diff --git a/lustre/mdt/mdt_open.c b/lustre/mdt/mdt_open.c index 6392580..bcb222a 100644 --- a/lustre/mdt/mdt_open.c +++ b/lustre/mdt/mdt_open.c @@ -2233,7 +2233,7 @@ static int mdt_close_resync_done(struct mdt_thread_info *info, 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); @@ -2273,7 +2273,7 @@ out_unlock: } if (resync_ids) - 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);