summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Elfring <elfring@users.sourceforge.net>2015-04-14 15:42:45 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2015-04-14 16:48:56 -0700
commit3cc79b795b53a9a04aa1bcc1a943379f06324bb6 (patch)
treec328de57c1813a81617a76fbbf1c9874b110a62a
parentfd90d4dfb94a8c0d626c0c85ca7dcfb905f81a65 (diff)
downloadlinux-3cc79b795b53a9a04aa1bcc1a943379f06324bb6.tar.bz2
ocfs2: less function calls in ocfs2_convert_inline_data_to_extents() after error detection
kfree() was called in a few cases by ocfs2_convert_inline_data_to_extents() 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> Cc: Mark Fasheh <mfasheh@suse.com> Cc: Joel Becker <jlbec@evilplan.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--fs/ocfs2/alloc.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
index fdab27c9be99..bf806e58b1cb 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;
}