Commit e6b9a3b2 authored by Julia Lawall's avatar Julia Lawall Committed by Greg Kroah-Hartman

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: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 57876fd8
...@@ -2109,8 +2109,7 @@ static int ll_swap_layouts(struct file *file1, struct file *file2, ...@@ -2109,8 +2109,7 @@ static int ll_swap_layouts(struct file *file1, struct file *file2,
} }
free: free:
if (llss != NULL) kfree(llss);
kfree(llss);
return rc; return rc;
} }
...@@ -2152,22 +2151,20 @@ static int ll_hsm_import(struct inode *inode, struct file *file, ...@@ -2152,22 +2151,20 @@ static int ll_hsm_import(struct inode *inode, struct file *file,
/* set HSM flags */ /* set HSM flags */
hss = kzalloc(sizeof(*hss), GFP_NOFS); hss = kzalloc(sizeof(*hss), GFP_NOFS);
if (!hss) { if (!hss)
rc = -ENOMEM; return -ENOMEM;
goto out;
}
hss->hss_valid = HSS_SETMASK | HSS_ARCHIVE_ID; hss->hss_valid = HSS_SETMASK | HSS_ARCHIVE_ID;
hss->hss_archive_id = hui->hui_archive_id; hss->hss_archive_id = hui->hui_archive_id;
hss->hss_setmask = HS_ARCHIVED | HS_EXISTS | HS_RELEASED; hss->hss_setmask = HS_ARCHIVED | HS_EXISTS | HS_RELEASED;
rc = ll_hsm_state_set(inode, hss); rc = ll_hsm_state_set(inode, hss);
if (rc != 0) if (rc != 0)
goto out; goto free_hss;
attr = kzalloc(sizeof(*attr), GFP_NOFS); attr = kzalloc(sizeof(*attr), GFP_NOFS);
if (!attr) { if (!attr) {
rc = -ENOMEM; rc = -ENOMEM;
goto out; goto free_hss;
} }
attr->ia_mode = hui->hui_mode & (S_IRWXU | S_IRWXG | S_IRWXO); 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, ...@@ -2193,13 +2190,9 @@ static int ll_hsm_import(struct inode *inode, struct file *file,
mutex_unlock(&inode->i_mutex); mutex_unlock(&inode->i_mutex);
out: kfree(attr);
if (hss != NULL) free_hss:
kfree(hss); kfree(hss);
if (attr != NULL)
kfree(attr);
return rc; return rc;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment