Commit 45c98f5a authored by Yangtao Li's avatar Yangtao Li Committed by Jaegeuk Kim

f2fs: convert discard_wake and gc_wake to bool type

discard_wake and gc_wake have only two values, 0 or 1.
So there is no need to use int type to store them.

BTW, move discard_wake to the end of the
discard_cmd_control structure.

Before:

  - sizeof(struct discard_cmd_control): 8392

After move:

  - sizeof(struct discard_cmd_control): 8384
Signed-off-by: default avatarYangtao Li <frank.li@vivo.com>
Reviewed-by: default avatarChao Yu <chao@kernel.org>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent f08142bc
...@@ -402,7 +402,6 @@ struct discard_cmd_control { ...@@ -402,7 +402,6 @@ struct discard_cmd_control {
struct list_head wait_list; /* store on-flushing entries */ struct list_head wait_list; /* store on-flushing entries */
struct list_head fstrim_list; /* in-flight discard from fstrim */ struct list_head fstrim_list; /* in-flight discard from fstrim */
wait_queue_head_t discard_wait_queue; /* waiting queue for wake-up */ wait_queue_head_t discard_wait_queue; /* waiting queue for wake-up */
unsigned int discard_wake; /* to wake up discard thread */
struct mutex cmd_lock; struct mutex cmd_lock;
unsigned int nr_discards; /* # of discards in the list */ unsigned int nr_discards; /* # of discards in the list */
unsigned int max_discards; /* max. discards to be issued */ unsigned int max_discards; /* max. discards to be issued */
...@@ -420,6 +419,7 @@ struct discard_cmd_control { ...@@ -420,6 +419,7 @@ struct discard_cmd_control {
atomic_t discard_cmd_cnt; /* # of cached cmd count */ atomic_t discard_cmd_cnt; /* # of cached cmd count */
struct rb_root_cached root; /* root of discard rb-tree */ struct rb_root_cached root; /* root of discard rb-tree */
bool rbtree_check; /* config for consistence check */ bool rbtree_check; /* config for consistence check */
bool discard_wake; /* to wake up discard thread */
}; };
/* for the list of fsync inodes, used only during recovery */ /* for the list of fsync inodes, used only during recovery */
......
...@@ -57,7 +57,7 @@ static int gc_thread_func(void *data) ...@@ -57,7 +57,7 @@ static int gc_thread_func(void *data)
/* give it a try one time */ /* give it a try one time */
if (gc_th->gc_wake) if (gc_th->gc_wake)
gc_th->gc_wake = 0; gc_th->gc_wake = false;
if (try_to_freeze()) { if (try_to_freeze()) {
stat_other_skip_bggc_count(sbi); stat_other_skip_bggc_count(sbi);
...@@ -183,7 +183,7 @@ int f2fs_start_gc_thread(struct f2fs_sb_info *sbi) ...@@ -183,7 +183,7 @@ int f2fs_start_gc_thread(struct f2fs_sb_info *sbi)
gc_th->max_sleep_time = DEF_GC_THREAD_MAX_SLEEP_TIME; gc_th->max_sleep_time = DEF_GC_THREAD_MAX_SLEEP_TIME;
gc_th->no_gc_sleep_time = DEF_GC_THREAD_NOGC_SLEEP_TIME; gc_th->no_gc_sleep_time = DEF_GC_THREAD_NOGC_SLEEP_TIME;
gc_th->gc_wake = 0; gc_th->gc_wake = false;
sbi->gc_thread = gc_th; sbi->gc_thread = gc_th;
init_waitqueue_head(&sbi->gc_thread->gc_wait_queue_head); init_waitqueue_head(&sbi->gc_thread->gc_wait_queue_head);
......
...@@ -41,7 +41,7 @@ struct f2fs_gc_kthread { ...@@ -41,7 +41,7 @@ struct f2fs_gc_kthread {
unsigned int no_gc_sleep_time; unsigned int no_gc_sleep_time;
/* for changing gc mode */ /* for changing gc mode */
unsigned int gc_wake; bool gc_wake;
/* for GC_MERGE mount option */ /* for GC_MERGE mount option */
wait_queue_head_t fggc_wq; /* wait_queue_head_t fggc_wq; /*
......
...@@ -1696,7 +1696,7 @@ static int issue_discard_thread(void *data) ...@@ -1696,7 +1696,7 @@ static int issue_discard_thread(void *data)
dcc->discard_granularity); dcc->discard_granularity);
if (dcc->discard_wake) if (dcc->discard_wake)
dcc->discard_wake = 0; dcc->discard_wake = false;
/* clean up pending candidates before going to sleep */ /* clean up pending candidates before going to sleep */
if (atomic_read(&dcc->queued_discard)) if (atomic_read(&dcc->queued_discard))
......
...@@ -939,6 +939,6 @@ static inline void wake_up_discard_thread(struct f2fs_sb_info *sbi, bool force) ...@@ -939,6 +939,6 @@ static inline void wake_up_discard_thread(struct f2fs_sb_info *sbi, bool force)
if (!wakeup || !is_idle(sbi, DISCARD_TIME)) if (!wakeup || !is_idle(sbi, DISCARD_TIME))
return; return;
wake_up: wake_up:
dcc->discard_wake = 1; dcc->discard_wake = true;
wake_up_interruptible_all(&dcc->discard_wait_queue); wake_up_interruptible_all(&dcc->discard_wait_queue);
} }
...@@ -511,7 +511,7 @@ static ssize_t __sbi_store(struct f2fs_attr *a, ...@@ -511,7 +511,7 @@ static ssize_t __sbi_store(struct f2fs_attr *a,
} else if (t == 1) { } else if (t == 1) {
sbi->gc_mode = GC_URGENT_HIGH; sbi->gc_mode = GC_URGENT_HIGH;
if (sbi->gc_thread) { if (sbi->gc_thread) {
sbi->gc_thread->gc_wake = 1; sbi->gc_thread->gc_wake = true;
wake_up_interruptible_all( wake_up_interruptible_all(
&sbi->gc_thread->gc_wait_queue_head); &sbi->gc_thread->gc_wait_queue_head);
wake_up_discard_thread(sbi, true); wake_up_discard_thread(sbi, true);
...@@ -521,7 +521,7 @@ static ssize_t __sbi_store(struct f2fs_attr *a, ...@@ -521,7 +521,7 @@ static ssize_t __sbi_store(struct f2fs_attr *a,
} else if (t == 3) { } else if (t == 3) {
sbi->gc_mode = GC_URGENT_MID; sbi->gc_mode = GC_URGENT_MID;
if (sbi->gc_thread) { if (sbi->gc_thread) {
sbi->gc_thread->gc_wake = 1; sbi->gc_thread->gc_wake = true;
wake_up_interruptible_all( wake_up_interruptible_all(
&sbi->gc_thread->gc_wait_queue_head); &sbi->gc_thread->gc_wait_queue_head);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment