提交 25c0a6e5 编写于 作者: N Namjae Jeon 提交者: Jaegeuk Kim

f2fs: avoid extra ++ while returning from get_node_path

In all the breaking conditions in get_node_path, 'n' is used to
track index in offset[] array, but while breaking out also, in all
paths n++ is done.
So, remove the ++ from breaking paths. Also, avoid
reset of 'level=0' in first case.
Signed-off-by: NNamjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: NAmit Sahrawat <a.sahrawat@samsung.com>
Signed-off-by: NJaegeuk Kim <jaegeuk.kim@samsung.com>
上级 5a20d339
...@@ -320,15 +320,14 @@ static int get_node_path(long block, int offset[4], unsigned int noffset[4]) ...@@ -320,15 +320,14 @@ static int get_node_path(long block, int offset[4], unsigned int noffset[4])
noffset[0] = 0; noffset[0] = 0;
if (block < direct_index) { if (block < direct_index) {
offset[n++] = block; offset[n] = block;
level = 0;
goto got; goto got;
} }
block -= direct_index; block -= direct_index;
if (block < direct_blks) { if (block < direct_blks) {
offset[n++] = NODE_DIR1_BLOCK; offset[n++] = NODE_DIR1_BLOCK;
noffset[n] = 1; noffset[n] = 1;
offset[n++] = block; offset[n] = block;
level = 1; level = 1;
goto got; goto got;
} }
...@@ -336,7 +335,7 @@ static int get_node_path(long block, int offset[4], unsigned int noffset[4]) ...@@ -336,7 +335,7 @@ static int get_node_path(long block, int offset[4], unsigned int noffset[4])
if (block < direct_blks) { if (block < direct_blks) {
offset[n++] = NODE_DIR2_BLOCK; offset[n++] = NODE_DIR2_BLOCK;
noffset[n] = 2; noffset[n] = 2;
offset[n++] = block; offset[n] = block;
level = 1; level = 1;
goto got; goto got;
} }
...@@ -346,7 +345,7 @@ static int get_node_path(long block, int offset[4], unsigned int noffset[4]) ...@@ -346,7 +345,7 @@ static int get_node_path(long block, int offset[4], unsigned int noffset[4])
noffset[n] = 3; noffset[n] = 3;
offset[n++] = block / direct_blks; offset[n++] = block / direct_blks;
noffset[n] = 4 + offset[n - 1]; noffset[n] = 4 + offset[n - 1];
offset[n++] = block % direct_blks; offset[n] = block % direct_blks;
level = 2; level = 2;
goto got; goto got;
} }
...@@ -356,7 +355,7 @@ static int get_node_path(long block, int offset[4], unsigned int noffset[4]) ...@@ -356,7 +355,7 @@ static int get_node_path(long block, int offset[4], unsigned int noffset[4])
noffset[n] = 4 + dptrs_per_blk; noffset[n] = 4 + dptrs_per_blk;
offset[n++] = block / direct_blks; offset[n++] = block / direct_blks;
noffset[n] = 5 + dptrs_per_blk + offset[n - 1]; noffset[n] = 5 + dptrs_per_blk + offset[n - 1];
offset[n++] = block % direct_blks; offset[n] = block % direct_blks;
level = 2; level = 2;
goto got; goto got;
} }
...@@ -371,7 +370,7 @@ static int get_node_path(long block, int offset[4], unsigned int noffset[4]) ...@@ -371,7 +370,7 @@ static int get_node_path(long block, int offset[4], unsigned int noffset[4])
noffset[n] = 7 + (dptrs_per_blk * 2) + noffset[n] = 7 + (dptrs_per_blk * 2) +
offset[n - 2] * (dptrs_per_blk + 1) + offset[n - 2] * (dptrs_per_blk + 1) +
offset[n - 1]; offset[n - 1];
offset[n++] = block % direct_blks; offset[n] = block % direct_blks;
level = 3; level = 3;
goto got; goto got;
} else { } else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册