diff options
author | Julia Lawall <Julia.Lawall@lip6.fr> | 2015-05-01 21:37:47 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-05-08 09:23:57 +0200 |
commit | 207e99c20f029b8ad9784fdb3b857e0a673db949 (patch) | |
tree | f278ab57a2dd0e3fbcd6b02bd7b6043281ae4af1 /drivers/staging/lustre | |
parent | 76372381dd6f5ed4b53fae0c00666e25680e21c5 (diff) |
staging: lustre: ptlrpc: service: remove unneeded null test before free
Kfree can cope with a null argument, so drop null tests.
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@ expression ptr; @@
- if (ptr != NULL)
kfree(ptr);
@@ expression ptr; @@
- if (ptr != NULL) {
kfree(ptr);
ptr = NULL;
- }
// </smpl>
In the first case, specific labels are introduced to free only what is needed.
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/lustre')
-rw-r--r-- | drivers/staging/lustre/lustre/ptlrpc/service.c | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/drivers/staging/lustre/lustre/ptlrpc/service.c b/drivers/staging/lustre/lustre/ptlrpc/service.c index d0758abfec9e..d85db067fc5a 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/service.c +++ b/drivers/staging/lustre/lustre/ptlrpc/service.c @@ -641,7 +641,7 @@ ptlrpc_service_part_init(struct ptlrpc_service *svc, OBD_CPT_ALLOC(array->paa_reqs_count, svc->srv_cptable, cpt, sizeof(__u32) * size); if (array->paa_reqs_count == NULL) - goto failed; + goto free_reqs_array; cfs_timer_init(&svcpt->scp_at_timer, ptlrpc_at_timer, svcpt); /* At SOW, service time should be quick; 10s seems generous. If client @@ -655,20 +655,16 @@ ptlrpc_service_part_init(struct ptlrpc_service *svc, /* We shouldn't be under memory pressure at startup, so * fail if we can't allocate all our buffers at this time. */ if (rc != 0) - goto failed; + goto free_reqs_count; return 0; - failed: - if (array->paa_reqs_count != NULL) { - kfree(array->paa_reqs_count); - array->paa_reqs_count = NULL; - } - - if (array->paa_reqs_array != NULL) { - kfree(array->paa_reqs_array); - array->paa_reqs_array = NULL; - } +free_reqs_count: + kfree(array->paa_reqs_count); + array->paa_reqs_count = NULL; +free_reqs_array: + kfree(array->paa_reqs_array); + array->paa_reqs_array = NULL; return -ENOMEM; } @@ -722,8 +718,7 @@ ptlrpc_register_service(struct ptlrpc_service_conf *conf, if (rc <= 0) { CERROR("%s: failed to parse CPT array %s: %d\n", conf->psc_name, cconf->cc_pattern, rc); - if (cpts != NULL) - kfree(cpts); + kfree(cpts); return ERR_PTR(rc < 0 ? rc : -EINVAL); } ncpts = rc; @@ -733,8 +728,7 @@ ptlrpc_register_service(struct ptlrpc_service_conf *conf, service = kzalloc(offsetof(struct ptlrpc_service, srv_parts[ncpts]), GFP_NOFS); if (service == NULL) { - if (cpts != NULL) - kfree(cpts); + kfree(cpts); return ERR_PTR(-ENOMEM); } @@ -2997,15 +2991,10 @@ ptlrpc_service_free(struct ptlrpc_service *svc) cfs_timer_disarm(&svcpt->scp_at_timer); array = &svcpt->scp_at_array; - if (array->paa_reqs_array != NULL) { - kfree(array->paa_reqs_array); - array->paa_reqs_array = NULL; - } - - if (array->paa_reqs_count != NULL) { - kfree(array->paa_reqs_count); - array->paa_reqs_count = NULL; - } + kfree(array->paa_reqs_array); + array->paa_reqs_array = NULL; + kfree(array->paa_reqs_count); + array->paa_reqs_count = NULL; } ptlrpc_service_for_each_part(svcpt, i, svc) |