forked from luck/tmp_suning_uos_patched
f2fs: use for_each_set_bit to simplify the code
This patch uses for_each_set_bit to simplify some codes in f2fs. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
497a0930bb
commit
b65ee14818
|
@ -186,7 +186,6 @@ static unsigned int get_max_cost(struct f2fs_sb_info *sbi,
|
|||
static unsigned int check_bg_victims(struct f2fs_sb_info *sbi)
|
||||
{
|
||||
struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
|
||||
unsigned int hint = 0;
|
||||
unsigned int secno;
|
||||
|
||||
/*
|
||||
|
@ -194,11 +193,9 @@ static unsigned int check_bg_victims(struct f2fs_sb_info *sbi)
|
|||
* selected by background GC before.
|
||||
* Those segments guarantee they have small valid blocks.
|
||||
*/
|
||||
next:
|
||||
secno = find_next_bit(dirty_i->victim_secmap, TOTAL_SECS(sbi), hint++);
|
||||
if (secno < TOTAL_SECS(sbi)) {
|
||||
for_each_set_bit(secno, dirty_i->victim_secmap, TOTAL_SECS(sbi)) {
|
||||
if (sec_usage_check(sbi, secno))
|
||||
goto next;
|
||||
continue;
|
||||
clear_bit(secno, dirty_i->victim_secmap);
|
||||
return secno * sbi->segs_per_sec;
|
||||
}
|
||||
|
|
|
@ -439,17 +439,12 @@ static void add_discard_addrs(struct f2fs_sb_info *sbi,
|
|||
static void set_prefree_as_free_segments(struct f2fs_sb_info *sbi)
|
||||
{
|
||||
struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
|
||||
unsigned int segno = -1;
|
||||
unsigned int segno;
|
||||
unsigned int total_segs = TOTAL_SEGS(sbi);
|
||||
|
||||
mutex_lock(&dirty_i->seglist_lock);
|
||||
while (1) {
|
||||
segno = find_next_bit(dirty_i->dirty_segmap[PRE], total_segs,
|
||||
segno + 1);
|
||||
if (segno >= total_segs)
|
||||
break;
|
||||
for_each_set_bit(segno, dirty_i->dirty_segmap[PRE], total_segs)
|
||||
__set_test_and_free(sbi, segno);
|
||||
}
|
||||
mutex_unlock(&dirty_i->seglist_lock);
|
||||
}
|
||||
|
||||
|
@ -1531,7 +1526,7 @@ void flush_sit_entries(struct f2fs_sb_info *sbi)
|
|||
struct page *page = NULL;
|
||||
struct f2fs_sit_block *raw_sit = NULL;
|
||||
unsigned int start = 0, end = 0;
|
||||
unsigned int segno = -1;
|
||||
unsigned int segno;
|
||||
bool flushed;
|
||||
|
||||
mutex_lock(&curseg->curseg_mutex);
|
||||
|
@ -1543,7 +1538,7 @@ void flush_sit_entries(struct f2fs_sb_info *sbi)
|
|||
*/
|
||||
flushed = flush_sits_in_journal(sbi);
|
||||
|
||||
while ((segno = find_next_bit(bitmap, nsegs, segno + 1)) < nsegs) {
|
||||
for_each_set_bit(segno, bitmap, nsegs) {
|
||||
struct seg_entry *se = get_seg_entry(sbi, segno);
|
||||
int sit_offset, offset;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user