]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ocfs2: less function calls in ocfs2_convert_inline_data_to_extents() after error...
authorMarkus Elfring <elfring@users.sourceforge.net>
Tue, 7 Apr 2015 23:43:51 +0000 (09:43 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Tue, 7 Apr 2015 23:43:51 +0000 (09:43 +1000)
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>
fs/ocfs2/alloc.c

index fdab27c9be999e387b984f18d732fa1b72202d0d..bf806e58b1cb19f73560e71f437272a7fc8f1a6f 100644 (file)
@@ -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;
 }