Whamcloud - gitweb
LU-9679 mdt: use OBD_ALLOC_PTR_ARRAY() and FREE 51/38251/2
authorMr NeilBrown <neilb@suse.de>
Thu, 14 Nov 2019 03:20:01 +0000 (14:20 +1100)
committerOleg Drokin <green@whamcloud.com>
Wed, 27 May 2020 05:03:35 +0000 (05:03 +0000)
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>
lustre/mdt/mdt_coordinator.c
lustre/mdt/mdt_handler.c
lustre/mdt/mdt_hsm_cdt_agent.c
lustre/mdt/mdt_hsm_cdt_requests.c
lustre/mdt/mdt_identity.c
lustre/mdt/mdt_io.c
lustre/mdt/mdt_open.c

index d666f2d..d19a592 100644 (file)
@@ -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)
        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);
index 2f069ff..949edee 100644 (file)
@@ -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;
                                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);
@@ -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]);
        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);
index 2bce139..bd0b1bf 100644 (file)
@@ -135,8 +135,7 @@ int mdt_hsm_agent_register(struct mdt_thread_info *mti,
 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:
@@ -165,7 +164,7 @@ int mdt_hsm_agent_register_mask(struct mdt_thread_info *mti,
        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);
 
@@ -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)
        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);
 }
 
        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)
                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);
index febca0e..7135334 100644 (file)
@@ -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++)
        }
        /* 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 */
 
        /* 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;
 
        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 */
        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);
 
@@ -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) {
                /* 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);
                }
 
index 4846345..246970c 100644 (file)
@@ -57,8 +57,7 @@ static void mdt_identity_entry_free(struct upcall_cache *cache,
 
        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;
        }
 }
index 4dc67be..75b6f81 100644 (file)
@@ -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;
 
        /* 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);
 
@@ -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:
 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);
index 6392580..bcb222a 100644 (file)
@@ -2233,7 +2233,7 @@ static int mdt_close_resync_done(struct mdt_thread_info *info,
                                           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);
 
@@ -2273,7 +2273,7 @@ out_unlock:
        }
 
        if (resync_ids)
        }
 
        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);
 
 out_reprocess:
        ldlm_reprocess_all(lease->l_resource, lease);