aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulia Lawall <Julia.Lawall@lip6.fr>2015-05-01 21:38:01 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-05-08 09:23:52 +0200
commite6b9a3b225b804a2683bc173c1261a9ce4a561a0 (patch)
treeca0ba954588d6eea03e480c77ab102cfa3a037ea
parentStaging: lustre: llite: dir: remove unneeded null test before free (diff)
Staging: lustre: llite: file: remove unneeded null test before free
Kfree can cope with a null argument, so drop null tests. The semantic patch that finds this issue is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // </smpl> In the first case, llss can never be null at the point of the kfree anyway. In the second set of changes, the gotos are either eliminated, when no freeing is needed (hss failure case), or rewritten so that there is no call to free on data that has not yet been allocated (free_hss goto case). There is no goto at which attr is not null, so the out label is simply dropped. Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/lustre/lustre/llite/file.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c
index 6e50b3554e33..702f62d44430 100644
--- a/drivers/staging/lustre/lustre/llite/file.c
+++ b/drivers/staging/lustre/lustre/llite/file.c
@@ -2109,8 +2109,7 @@ putgl:
}
free:
- if (llss != NULL)
- kfree(llss);
+ kfree(llss);
return rc;
}
@@ -2152,22 +2151,20 @@ static int ll_hsm_import(struct inode *inode, struct file *file,
/* set HSM flags */
hss = kzalloc(sizeof(*hss), GFP_NOFS);
- if (!hss) {
- rc = -ENOMEM;
- goto out;
- }
+ if (!hss)
+ return -ENOMEM;
hss->hss_valid = HSS_SETMASK | HSS_ARCHIVE_ID;
hss->hss_archive_id = hui->hui_archive_id;
hss->hss_setmask = HS_ARCHIVED | HS_EXISTS | HS_RELEASED;
rc = ll_hsm_state_set(inode, hss);
if (rc != 0)
- goto out;
+ goto free_hss;
attr = kzalloc(sizeof(*attr), GFP_NOFS);
if (!attr) {
rc = -ENOMEM;
- goto out;
+ goto free_hss;
}
attr->ia_mode = hui->hui_mode & (S_IRWXU | S_IRWXG | S_IRWXO);
@@ -2193,13 +2190,9 @@ static int ll_hsm_import(struct inode *inode, struct file *file,
mutex_unlock(&inode->i_mutex);
-out:
- if (hss != NULL)
- kfree(hss);
-
- if (attr != NULL)
- kfree(attr);
-
+ kfree(attr);
+free_hss:
+ kfree(hss);
return rc;
}