[PATCH 2/7] ocfs2: Less function calls in ocfs2_convert_inline_data_to_extents() after error detection

SF Markus Elfring
2015-02-21T19:43:31Z

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sat, 21 Feb 2015 18:19:04 +0100

The kfree() function was called in a few cases by the
ocfs2_convert_inline_data_to_extents() function during error handling
even if the passed variable "pages" contained a null pointer.

* Return from this implementation directly after failure detection for
the function call "kcalloc".

* Corresponding details could be improved by the introduction of another
jump label.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
fs/ocfs2/alloc.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
index fdab27c..bf806e5 100644
--- a/fs/ocfs2/alloc.c
+++ b/fs/ocfs2/alloc.c
@@ -6853,13 +6853,13 @@ int ocfs2_convert_inline_data_to_extents(struct inode *inode,
if (pages == NULL) {
ret = -ENOMEM;
mlog_errno(ret);
- goto out;
+ return ret;
}

ret = ocfs2_reserve_clusters(osb, 1, &data_ac);
if (ret) {
mlog_errno(ret);
- goto out;
+ goto free_pages;
}
}

@@ -6991,6 +6991,7 @@ out_commit:
out:
if (data_ac)
ocfs2_free_alloc_context(data_ac);
+free_pages:
kfree(pages);
return ret;
}
--
2.3.0