• Fan Li's avatar
    f2fs: avoid unnecessary search while finding victim in gc · 688159b6
    Fan Li authored
    variable nsearched in get_victim_by_default() indicates the number of
    dirty segments we already checked. There are 2 problems about the way
    it updates:
    1. When p.ofs_unit is greater than 1, the victim we find consists
       of multiple segments, possibly more than 1 dirty segment.
       But nsearched always increases by 1.
    2. If segments have been found but not been chosen, nsearched won't
       increase. So even we have checked all dirty segments, nsearched
       may still less than p.max_search.
    All these problems could cause unnecessary search after all dirty
    segments have already been checked.
    Signed-off-by: default avatarFan li <fanofcode.li@samsung.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    688159b6
gc.c 22.4 KB