mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-12 21:44:06 +08:00
ocfs2: less function calls in ocfs2_figure_merge_contig_type() after error detection
ocfs2_free_path() was called in some cases by ocfs2_figure_merge_contig_type() during error handling even if the passed variables "left_path" and "right_path" contained still a null pointer. Corresponding implementation details could be improved by adjustments for jump labels according to the current Linux coding style convention. 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>
This commit is contained in:
parent
3cc79b795b
commit
06a269ccdf
@ -4332,17 +4332,17 @@ ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et,
|
||||
} else if (path->p_tree_depth > 0) {
|
||||
status = ocfs2_find_cpos_for_left_leaf(sb, path, &left_cpos);
|
||||
if (status)
|
||||
goto out;
|
||||
goto exit;
|
||||
|
||||
if (left_cpos != 0) {
|
||||
left_path = ocfs2_new_path_from_path(path);
|
||||
if (!left_path)
|
||||
goto out;
|
||||
goto exit;
|
||||
|
||||
status = ocfs2_find_path(et->et_ci, left_path,
|
||||
left_cpos);
|
||||
if (status)
|
||||
goto out;
|
||||
goto free_left_path;
|
||||
|
||||
new_el = path_leaf_el(left_path);
|
||||
|
||||
@ -4359,7 +4359,7 @@ ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et,
|
||||
le16_to_cpu(new_el->l_next_free_rec),
|
||||
le16_to_cpu(new_el->l_count));
|
||||
status = -EINVAL;
|
||||
goto out;
|
||||
goto free_left_path;
|
||||
}
|
||||
rec = &new_el->l_recs[
|
||||
le16_to_cpu(new_el->l_next_free_rec) - 1];
|
||||
@ -4386,18 +4386,18 @@ ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et,
|
||||
path->p_tree_depth > 0) {
|
||||
status = ocfs2_find_cpos_for_right_leaf(sb, path, &right_cpos);
|
||||
if (status)
|
||||
goto out;
|
||||
goto free_left_path;
|
||||
|
||||
if (right_cpos == 0)
|
||||
goto out;
|
||||
goto free_left_path;
|
||||
|
||||
right_path = ocfs2_new_path_from_path(path);
|
||||
if (!right_path)
|
||||
goto out;
|
||||
goto free_left_path;
|
||||
|
||||
status = ocfs2_find_path(et->et_ci, right_path, right_cpos);
|
||||
if (status)
|
||||
goto out;
|
||||
goto free_right_path;
|
||||
|
||||
new_el = path_leaf_el(right_path);
|
||||
rec = &new_el->l_recs[0];
|
||||
@ -4411,7 +4411,7 @@ ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et,
|
||||
(unsigned long long)le64_to_cpu(eb->h_blkno),
|
||||
le16_to_cpu(new_el->l_next_free_rec));
|
||||
status = -EINVAL;
|
||||
goto out;
|
||||
goto free_right_path;
|
||||
}
|
||||
rec = &new_el->l_recs[1];
|
||||
}
|
||||
@ -4428,9 +4428,11 @@ ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et,
|
||||
ret = contig_type;
|
||||
}
|
||||
|
||||
out:
|
||||
ocfs2_free_path(left_path);
|
||||
free_right_path:
|
||||
ocfs2_free_path(right_path);
|
||||
free_left_path:
|
||||
ocfs2_free_path(left_path);
|
||||
exit:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user