ocfs2: return error while ocfs2_figure_merge_contig_type failing
PATCH 1/1 ocfs2: return error while ocfs2_figure_merge_contig_type failing
Now function ocfs2_figure_merge_contig_type() still return CONTIG_NONE when some error occurs which will cause unpredictable error. So return error while ocfs2_figure_merge_contig_type failing.
--- fs/ocfs2/alloc.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-)
fs/ocfs2/alloc.c +15 -7
@@ -4313,11 +4313,11 @@ out:return ret; } -static enum ocfs2_contig_type -ocfs2_figure_merge_contig_type (struct ocfs2_extent_tree *et, +int ocfs2_figure_merge_contig_type (struct ocfs2_extent_tree *et,struct ocfs2_path *path,struct ocfs2_extent_list *el,int index, -struct ocfs2_extent_rec *split_rec) +struct ocfs2_extent_rec *split_rec, +struct ocfs2_merge_ctxt *ctxt) {int status;enum ocfs2_contig_type ret =CONTIG_NONE ;
@@ -4431,12 +4431,15 @@ ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et, } out: +if (status ==0 ) + ctxt->c_contig_type = ret; +if (left_path)ocfs2_free_path (left_path);if (right_path)ocfs2_free_path (right_path); -return ret; +return status; } static void ocfs2_figure_contig_type(struct ocfs2_extent_tree *et,
@@ -5042,9 +5045,14 @@ int ocfs2_split_extent(handle_t *handle, goto out; } - ctxt.c_contig_type =ocfs2_figure_merge_contig_type (et, path, el, - split_index, - split_rec); + ret =ocfs2_figure_merge_contig_type (et, path, el, + split_index, + split_rec, + &ctxt); +if (ret) { +mlog_errno (ret); + goto out; + }/* * The core merge / split code wants to know how much room is
Signature · 1 line
1.8.4.3
PATCH 1/1 ocfs2: return error while ocfs2_figure_merge_contig_type failing
Quoted 14 lines · Xue jiufei
Now function
ocfs2_figure_merge_contig_type()still returnCONTIG_NONEwhen some error occurs which will cause unpredictable error. So return error whileocfs2_figure_merge_contig_typefailing.Signed-off-by joyce.xue <[email protected]>--- fs/ocfs2/alloc.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-)fs/ocfs2/alloc.c +0
-0
fs/ocfs2/alloc.c out: · line 4316
Quoted 6 lines
fs/ocfs2/alloc.c +1
-2@@ -4313,11 +4313,11 @@ out:return ret; } -static enum ocfs2_contig_type -ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et, +int ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et,
It can still be static.
Quoted 44 lines
fs/ocfs2/alloc.c +14
-5struct ocfs2_path *path, struct ocfs2_extent_list *el, int index, - struct ocfs2_extent_rec *split_rec) + struct ocfs2_extent_rec *split_rec, + struct ocfs2_merge_ctxt *ctxt) { int status;enum ocfs2_contig_type ret =CONTIG_NONE ;@@ -4431,12 +4431,15 @@ ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et, } out: +if (status ==0 ) + ctxt->c_contig_type = ret; +if (left_path)ocfs2_free_path (left_path);if (right_path)ocfs2_free_path (right_path); -return ret; +return status; } static void ocfs2_figure_contig_type(struct ocfs2_extent_tree *et,@@ -5042,9 +5045,14 @@ int ocfs2_split_extent(handle_t *handle, goto out; } - ctxt.c_contig_type =ocfs2_figure_merge_contig_type (et, path, el, - split_index, - split_rec); + ret =ocfs2_figure_merge_contig_type (et, path, el, + split_index, + split_rec, + &ctxt); +if (ret) { +mlog_errno (ret); + goto out; + }/* * The core merge / split code wants to know how much room is
PATCH 1/1 ocfs2: return error while ocfs2_figure_merge_contig_type failing
Quoted 18 lines · Joseph Qi
Quoted 17 lines · Xue jiufei
Now function
ocfs2_figure_merge_contig_type()still returnCONTIG_NONEwhen some error occurs which will cause unpredictable error. So return error whileocfs2_figure_merge_contig_typefailing.Signed-off-by joyce.xue <[email protected]>--- fs/ocfs2/alloc.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-)fs/ocfs2/alloc.c +0
-0@@ -4313,11 +4313,11 @@ out:return ret; }
Quoted 4 lines
fs/ocfs2/alloc.c out: · line 4316
Quoted 3 lines
fs/ocfs2/alloc.c +1
-2-static enum ocfs2_contig_type -ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et, +int ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et,It can still be static.
yes, that's right. Thanks for your advice. I will send version 2 later.
Quoted 50 lines
Quoted 35 lines
fs/ocfs2/alloc.c +7
-5struct ocfs2_path *path, struct ocfs2_extent_list *el, int index, - struct ocfs2_extent_rec *split_rec) + struct ocfs2_extent_rec *split_rec, + struct ocfs2_merge_ctxt *ctxt) { int status;enum ocfs2_contig_type ret =CONTIG_NONE ;@@ -4431,12 +4431,15 @@ ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et, } out: +if (status ==0 ) + ctxt->c_contig_type = ret; +if (left_path)ocfs2_free_path (left_path);if (right_path)ocfs2_free_path (right_path); -return ret; +return status; } static void ocfs2_figure_contig_type(struct ocfs2_extent_tree *et,@@ -5042,9 +5045,14 @@ int ocfs2_split_extent(handle_t *handle, goto out; } - ctxt.c_contig_type =ocfs2_figure_merge_contig_type (et, path, el, - split_index, - split_rec); + ret = ocfs2_figure_merge_contig_type(et, path, el,fs/ocfs2/alloc.c int ocfs2_split_extent(handle_t *handle, · line 5058
Quoted 10 lines
fs/ocfs2/alloc.c +7
-0+ split_index, + split_rec, + &ctxt); +if (ret) { +mlog_errno (ret); + goto out; + }/* * The core merge / split code wants to know how much room is .