>-----Original Message-----
>From: Yuchao (T)
>Sent: Wednesday, March 28, 2018 9:41 AM
>To: heyunlei; jaeg...@kernel.org; linux-f2fs-devel@lists.sourceforge.net
>Cc: Wangbintian
>Subject: Re: [f2fs-dev][PATCH v2] f2fs: rebuild get_node_path function
>
>On 2018/3/22 11:31, Yunlei He wrote:
>> This patch rebuild get_node_path function, no logic changes.
>>
>> v1->v2: '<' has higher priority than '-='
>
>It looks that after the cleanup, the code logic would not be more 
>understandable
>than before, since we'd better to avoid doing calculation inside if condition.
>

Here I just refer to code in function ext2_block_to_path

Thanks,

>Thanks,
>
>>
>> Signed-off-by: Yunlei He <heyun...@huawei.com>
>> ---
>>  fs/f2fs/node.c | 28 ++++++----------------------
>>  1 file changed, 6 insertions(+), 22 deletions(-)
>>
>> diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
>> index c511ef6..b8f2577 100644
>> --- a/fs/f2fs/node.c
>> +++ b/fs/f2fs/node.c
>> @@ -526,46 +526,31 @@ static int get_node_path(struct inode *inode, long 
>> block,
>>
>>      if (block < direct_index) {
>>              offset[n] = block;
>> -            goto got;
>> -    }
>> -    block -= direct_index;
>> -    if (block < direct_blks) {
>> +    } else if ((block -= direct_index) < direct_blks) {
>>              offset[n++] = NODE_DIR1_BLOCK;
>>              noffset[n] = 1;
>>              offset[n] = block;
>>              level = 1;
>> -            goto got;
>> -    }
>> -    block -= direct_blks;
>> -    if (block < direct_blks) {
>> +    } else if ((block -= direct_blks) < direct_blks) {
>>              offset[n++] = NODE_DIR2_BLOCK;
>>              noffset[n] = 2;
>>              offset[n] = block;
>>              level = 1;
>> -            goto got;
>> -    }
>> -    block -= direct_blks;
>> -    if (block < indirect_blks) {
>> +    } else if ((block -= direct_blks) < indirect_blks) {
>>              offset[n++] = NODE_IND1_BLOCK;
>>              noffset[n] = 3;
>>              offset[n++] = block / direct_blks;
>>              noffset[n] = 4 + offset[n - 1];
>>              offset[n] = block % direct_blks;
>>              level = 2;
>> -            goto got;
>> -    }
>> -    block -= indirect_blks;
>> -    if (block < indirect_blks) {
>> +    } else if ((block -= indirect_blks) < indirect_blks) {
>>              offset[n++] = NODE_IND2_BLOCK;
>>              noffset[n] = 4 + dptrs_per_blk;
>>              offset[n++] = block / direct_blks;
>>              noffset[n] = 5 + dptrs_per_blk + offset[n - 1];
>>              offset[n] = block % direct_blks;
>>              level = 2;
>> -            goto got;
>> -    }
>> -    block -= indirect_blks;
>> -    if (block < dindirect_blks) {
>> +    } else if ((block -= indirect_blks) < dindirect_blks) {
>>              offset[n++] = NODE_DIND_BLOCK;
>>              noffset[n] = 5 + (dptrs_per_blk * 2);
>>              offset[n++] = block / indirect_blks;
>> @@ -577,11 +562,10 @@ static int get_node_path(struct inode *inode, long 
>> block,
>>                            offset[n - 1];
>>              offset[n] = block % direct_blks;
>>              level = 3;
>> -            goto got;
>>      } else {
>>              return -E2BIG;
>>      }
>> -got:
>> +
>>      return level;
>>  }
>>
>>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to