Hi Chao,
Thanks for your reply.
> On 2017/12/9 14:29, hsiangkao--- via Linux-f2fs-devel wrote:
>> Hi Jaegeuk and Chao,
>> I have a minor question about the following code snippet in
>> find_next_free_block recently
>> if (se->valid_blocks == 0 && !(segno % sbi->segs_per_sec)) {
>> struct seg_entry *se2;
>> unsigned int i;
>>
>> for (i = 1; i < sbi->segs_per_sec; i++) {
>> se2 = get_seg_entry(sbi, segno + i);
>> if (se2->valid_blocks)
>> break;
>> }
>> if (i == sbi->segs_per_sec)
>> return 0;
>> }
>> What does it do if a section has 2 or more segments?
>
> It intends to use free section prior to used one?It is still hard for me to
> understand. :(
I guess if some section doesn't satisfy the above condition (means if some
segment was used in the section), we just skip those free sections and fail in
the worst case rather than fall back again in the case that SSR approach cannot
allocate any block?
>
>> It seems that it succeeds only if the section is totally free? if not,
>> do SSR instead? I have no idea about that. :(
>> And the code mainly for SSR follows, but I am confused when I associate
>> that with the above...
>> if (se->type == type &&
>> !f2fs_test_bit(offset, (const char *)se->cur_valid_map))
>> return 0;
>> Does that indicate segments of a section should have the same type?
>> but I could not find any mechanism to keep segments of a section in
>> the same type..
>
> I'm afraid there is no guarantee.
Hmm... I have no idea...
>
>>
>> And I could not understand what the commit message("fsck.f2fs: LFS
>> alloc_type must have free segment after blkoff") means...
>> Why should the last of segment have no valid block in LFS mode?
>
> LFS tries to do allocation from the first block to the last one in opened
> segment,
> so if there is any valid block in that segment, there will be collision
> anyway.
>
Yes, I could understand the LFS policy you explained.
However, the commit message says "LFS alloc_type must have free segment after
blkoff" instead of "must have free blocks followed by blkoff".
That is what I'm confused. :(
Thanks.
> Thanks,
>
>>
>> Could you take some time and give me some clues on it... :D
>>
>> Thanks a lot.
>>
>> Gao Xiang
>> hsiangkao@...
>> ------------------------------------------------------------------------------
>> 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@...
>> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
>>
------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel