|
@@ -1582,13 +1582,13 @@ static void init_dirty_segmap(struct f2fs_sb_info *sbi)
|
|
|
{
|
|
|
struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
|
|
|
struct free_segmap_info *free_i = FREE_I(sbi);
|
|
|
- unsigned int segno = 0, offset = 0;
|
|
|
+ unsigned int segno = 0, offset = 0, total_segs = TOTAL_SEGS(sbi);
|
|
|
unsigned short valid_blocks;
|
|
|
|
|
|
- while (segno < TOTAL_SEGS(sbi)) {
|
|
|
+ while (1) {
|
|
|
/* find dirty segment based on free segmap */
|
|
|
- segno = find_next_inuse(free_i, TOTAL_SEGS(sbi), offset);
|
|
|
- if (segno >= TOTAL_SEGS(sbi))
|
|
|
+ segno = find_next_inuse(free_i, total_segs, offset);
|
|
|
+ if (segno >= total_segs)
|
|
|
break;
|
|
|
offset = segno + 1;
|
|
|
valid_blocks = get_valid_blocks(sbi, segno, 0);
|