f2fs: clean up {in,de}create_sleep_time

Use pointer parameter @wait to pass result in {in,de}create_sleep_time for
cleanup.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
Chao Yu 2015-01-26 20:24:21 +08:00 committed by Jaegeuk Kim
parent feeb0debfb
commit 88dd893419
2 changed files with 18 additions and 18 deletions

View File

@ -44,7 +44,7 @@ static int gc_thread_func(void *data)
break;
if (sbi->sb->s_writers.frozen >= SB_FREEZE_WRITE) {
wait_ms = increase_sleep_time(gc_th, wait_ms);
increase_sleep_time(gc_th, &wait_ms);
continue;
}
@ -65,15 +65,15 @@ static int gc_thread_func(void *data)
continue;
if (!is_idle(sbi)) {
wait_ms = increase_sleep_time(gc_th, wait_ms);
increase_sleep_time(gc_th, &wait_ms);
mutex_unlock(&sbi->gc_mutex);
continue;
}
if (has_enough_invalid_blocks(sbi))
wait_ms = decrease_sleep_time(gc_th, wait_ms);
decrease_sleep_time(gc_th, &wait_ms);
else
wait_ms = increase_sleep_time(gc_th, wait_ms);
increase_sleep_time(gc_th, &wait_ms);
stat_inc_bggc_count(sbi);

View File

@ -66,26 +66,26 @@ static inline block_t limit_free_user_blocks(struct f2fs_sb_info *sbi)
return (long)(reclaimable_user_blocks * LIMIT_FREE_BLOCK) / 100;
}
static inline long increase_sleep_time(struct f2fs_gc_kthread *gc_th, long wait)
static inline void increase_sleep_time(struct f2fs_gc_kthread *gc_th,
long *wait)
{
if (wait == gc_th->no_gc_sleep_time)
return wait;
if (*wait == gc_th->no_gc_sleep_time)
return;
wait += gc_th->min_sleep_time;
if (wait > gc_th->max_sleep_time)
wait = gc_th->max_sleep_time;
return wait;
*wait += gc_th->min_sleep_time;
if (*wait > gc_th->max_sleep_time)
*wait = gc_th->max_sleep_time;
}
static inline long decrease_sleep_time(struct f2fs_gc_kthread *gc_th, long wait)
static inline void decrease_sleep_time(struct f2fs_gc_kthread *gc_th,
long *wait)
{
if (wait == gc_th->no_gc_sleep_time)
wait = gc_th->max_sleep_time;
if (*wait == gc_th->no_gc_sleep_time)
*wait = gc_th->max_sleep_time;
wait -= gc_th->min_sleep_time;
if (wait <= gc_th->min_sleep_time)
wait = gc_th->min_sleep_time;
return wait;
*wait -= gc_th->min_sleep_time;
if (*wait <= gc_th->min_sleep_time)
*wait = gc_th->min_sleep_time;
}
static inline bool has_enough_invalid_blocks(struct f2fs_sb_info *sbi)