From 647d9d34be28e53d72606030461d8516979e8590 Mon Sep 17 00:00:00 2001 From: Emoly Liu Date: Wed, 8 Feb 2017 14:21:09 +0800 Subject: [PATCH] LU-9750 nrs: some code cleanup in NRS policies This patch does some code cleanup in NRS CRR and ORR polices, including: - remove the useless NULL checks - handle errors properly by multiple labels instead of a single one Signed-off-by: Emoly Liu Change-Id: Iafe86ac94042547e83c69e4b46ff7bf1ca31f073 Reviewed-on: https://review.whamcloud.com/25319 Tested-by: Jenkins Reviewed-by: John L. Hammond Tested-by: Maloo Reviewed-by: Bobi Jam Reviewed-by: Oleg Drokin --- lustre/ptlrpc/nrs_crr.c | 11 +++++------ lustre/ptlrpc/nrs_orr.c | 17 ++++++++--------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/lustre/ptlrpc/nrs_crr.c b/lustre/ptlrpc/nrs_crr.c index b9f87d6..6a54fa0 100644 --- a/lustre/ptlrpc/nrs_crr.c +++ b/lustre/ptlrpc/nrs_crr.c @@ -194,7 +194,7 @@ static int nrs_crrn_start(struct ptlrpc_nrs_policy *policy, char *arg) nrs_pol2cptab(policy), nrs_pol2cptid(policy)); if (net->cn_binheap == NULL) - GOTO(failed, rc = -ENOMEM); + GOTO(out_net, rc = -ENOMEM); net->cn_cli_hash = cfs_hash_create("nrs_crrn_nid_hash", NRS_NID_BITS, NRS_NID_BITS, @@ -204,7 +204,7 @@ static int nrs_crrn_start(struct ptlrpc_nrs_policy *policy, char *arg) &nrs_crrn_hash_ops, CFS_HASH_RW_BKTLOCK); if (net->cn_cli_hash == NULL) - GOTO(failed, rc = -ENOMEM); + GOTO(out_binheap, rc = -ENOMEM); /** * Set default quantum value to max_rpcs_in_flight for non-MDS OSCs; @@ -223,10 +223,9 @@ static int nrs_crrn_start(struct ptlrpc_nrs_policy *policy, char *arg) RETURN(rc); -failed: - if (net->cn_binheap != NULL) - cfs_binheap_destroy(net->cn_binheap); - +out_binheap: + cfs_binheap_destroy(net->cn_binheap); +out_net: OBD_FREE_PTR(net); RETURN(rc); diff --git a/lustre/ptlrpc/nrs_orr.c b/lustre/ptlrpc/nrs_orr.c index 284f81f..857b333 100644 --- a/lustre/ptlrpc/nrs_orr.c +++ b/lustre/ptlrpc/nrs_orr.c @@ -638,7 +638,7 @@ static int nrs_orr_start(struct ptlrpc_nrs_policy *policy, char *arg) nrs_pol2cptab(policy), nrs_pol2cptid(policy)); if (orrd->od_binheap == NULL) - GOTO(failed, rc = -ENOMEM); + GOTO(out_orrd, rc = -ENOMEM); nrs_orr_genobjname(policy, orrd->od_objname); @@ -649,7 +649,7 @@ static int nrs_orr_start(struct ptlrpc_nrs_policy *policy, char *arg) sizeof(struct nrs_orr_object), 0, 0, NULL); if (orrd->od_cache == NULL) - GOTO(failed, rc = -ENOMEM); + GOTO(out_binheap, rc = -ENOMEM); if (strncmp(policy->pol_desc->pd_name, NRS_POL_NAME_ORR, NRS_POL_NAME_MAX) == 0) { @@ -677,7 +677,7 @@ static int nrs_orr_start(struct ptlrpc_nrs_policy *policy, char *arg) CFS_HASH_MIN_THETA, CFS_HASH_MAX_THETA, ops, flags); if (orrd->od_obj_hash == NULL) - GOTO(failed, rc = -ENOMEM); + GOTO(out_cache, rc = -ENOMEM); /* XXX: Fields accessed unlocked */ orrd->od_quantum = NRS_ORR_QUANTUM_DFLT; @@ -693,12 +693,11 @@ static int nrs_orr_start(struct ptlrpc_nrs_policy *policy, char *arg) RETURN(rc); -failed: - if (orrd->od_cache) - kmem_cache_destroy(orrd->od_cache); - if (orrd->od_binheap != NULL) - cfs_binheap_destroy(orrd->od_binheap); - +out_cache: + kmem_cache_destroy(orrd->od_cache); +out_binheap: + cfs_binheap_destroy(orrd->od_binheap); +out_orrd: OBD_FREE_PTR(orrd); RETURN(rc); -- 1.8.3.1