Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 88dd8934 authored by Chao Yu's avatar Chao Yu Committed by Jaegeuk Kim
Browse files

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: default avatarChao Yu <chao2.yu@samsung.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent feeb0deb
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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);

+14 −14
Original line number Diff line number Diff line
@@ -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)