diff options
-rw-r--r-- | fs/f2fs/f2fs.h | 8 | ||||
-rw-r--r-- | fs/f2fs/segment.c | 24 |
2 files changed, 16 insertions, 16 deletions
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index ee7d6105a7a5..c1faf6d35a8d 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h | |||
@@ -220,12 +220,12 @@ struct discard_cmd { | |||
220 | 220 | ||
221 | struct discard_cmd_control { | 221 | struct discard_cmd_control { |
222 | struct task_struct *f2fs_issue_discard; /* discard thread */ | 222 | struct task_struct *f2fs_issue_discard; /* discard thread */ |
223 | struct list_head discard_entry_list; /* 4KB discard entry list */ | 223 | struct list_head entry_list; /* 4KB discard entry list */ |
224 | int nr_discards; /* # of discards in the list */ | 224 | struct list_head pend_list; /* store pending entries */ |
225 | struct list_head discard_pend_list; /* store pending entries */ | 225 | struct list_head wait_list; /* store on-flushing entries */ |
226 | struct list_head discard_wait_list; /* store on-flushing entries */ | ||
227 | wait_queue_head_t discard_wait_queue; /* waiting queue for wake-up */ | 226 | wait_queue_head_t discard_wait_queue; /* waiting queue for wake-up */ |
228 | struct mutex cmd_lock; | 227 | struct mutex cmd_lock; |
228 | int nr_discards; /* # of discards in the list */ | ||
229 | int max_discards; /* max. discards to be issued */ | 229 | int max_discards; /* max. discards to be issued */ |
230 | atomic_t issued_discard; /* # of issued discard */ | 230 | atomic_t issued_discard; /* # of issued discard */ |
231 | atomic_t issing_discard; /* # of issing discard */ | 231 | atomic_t issing_discard; /* # of issing discard */ |
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index d137a08ec3a0..c23a52a339de 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c | |||
@@ -677,7 +677,7 @@ static struct discard_cmd *__create_discard_cmd(struct f2fs_sb_info *sbi, | |||
677 | block_t start, block_t len) | 677 | block_t start, block_t len) |
678 | { | 678 | { |
679 | struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info; | 679 | struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info; |
680 | struct list_head *pend_list = &(dcc->discard_pend_list); | 680 | struct list_head *pend_list = &(dcc->pend_list); |
681 | struct discard_cmd *dc; | 681 | struct discard_cmd *dc; |
682 | 682 | ||
683 | dc = f2fs_kmem_cache_alloc(discard_cmd_slab, GFP_NOFS); | 683 | dc = f2fs_kmem_cache_alloc(discard_cmd_slab, GFP_NOFS); |
@@ -773,7 +773,7 @@ static void __submit_discard_cmd(struct f2fs_sb_info *sbi, | |||
773 | bio->bi_end_io = f2fs_submit_discard_endio; | 773 | bio->bi_end_io = f2fs_submit_discard_endio; |
774 | bio->bi_opf |= REQ_SYNC; | 774 | bio->bi_opf |= REQ_SYNC; |
775 | submit_bio(bio); | 775 | submit_bio(bio); |
776 | list_move_tail(&dc->list, &dcc->discard_wait_list); | 776 | list_move_tail(&dc->list, &dcc->wait_list); |
777 | } | 777 | } |
778 | } else { | 778 | } else { |
779 | __remove_discard_cmd(sbi, dc); | 779 | __remove_discard_cmd(sbi, dc); |
@@ -961,8 +961,8 @@ void f2fs_wait_discard_bio(struct f2fs_sb_info *sbi, block_t blkaddr) | |||
961 | void f2fs_wait_discard_bios(struct f2fs_sb_info *sbi) | 961 | void f2fs_wait_discard_bios(struct f2fs_sb_info *sbi) |
962 | { | 962 | { |
963 | struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info; | 963 | struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info; |
964 | struct list_head *pend_list = &(dcc->discard_pend_list); | 964 | struct list_head *pend_list = &(dcc->pend_list); |
965 | struct list_head *wait_list = &(dcc->discard_wait_list); | 965 | struct list_head *wait_list = &(dcc->wait_list); |
966 | struct discard_cmd *dc, *tmp; | 966 | struct discard_cmd *dc, *tmp; |
967 | struct blk_plug plug; | 967 | struct blk_plug plug; |
968 | 968 | ||
@@ -986,8 +986,8 @@ static int issue_discard_thread(void *data) | |||
986 | struct f2fs_sb_info *sbi = data; | 986 | struct f2fs_sb_info *sbi = data; |
987 | struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info; | 987 | struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info; |
988 | wait_queue_head_t *q = &dcc->discard_wait_queue; | 988 | wait_queue_head_t *q = &dcc->discard_wait_queue; |
989 | struct list_head *pend_list = &dcc->discard_pend_list; | 989 | struct list_head *pend_list = &dcc->pend_list; |
990 | struct list_head *wait_list = &dcc->discard_wait_list; | 990 | struct list_head *wait_list = &dcc->wait_list; |
991 | struct discard_cmd *dc, *tmp; | 991 | struct discard_cmd *dc, *tmp; |
992 | struct blk_plug plug; | 992 | struct blk_plug plug; |
993 | int iter = 0; | 993 | int iter = 0; |
@@ -1135,7 +1135,7 @@ static bool add_discard_addrs(struct f2fs_sb_info *sbi, struct cp_control *cpc, | |||
1135 | unsigned int start = 0, end = -1; | 1135 | unsigned int start = 0, end = -1; |
1136 | bool force = (cpc->reason == CP_DISCARD); | 1136 | bool force = (cpc->reason == CP_DISCARD); |
1137 | struct discard_entry *de = NULL; | 1137 | struct discard_entry *de = NULL; |
1138 | struct list_head *head = &SM_I(sbi)->dcc_info->discard_entry_list; | 1138 | struct list_head *head = &SM_I(sbi)->dcc_info->entry_list; |
1139 | int i; | 1139 | int i; |
1140 | 1140 | ||
1141 | if (se->valid_blocks == max_blocks || !f2fs_discard_en(sbi)) | 1141 | if (se->valid_blocks == max_blocks || !f2fs_discard_en(sbi)) |
@@ -1184,7 +1184,7 @@ static bool add_discard_addrs(struct f2fs_sb_info *sbi, struct cp_control *cpc, | |||
1184 | 1184 | ||
1185 | void release_discard_addrs(struct f2fs_sb_info *sbi) | 1185 | void release_discard_addrs(struct f2fs_sb_info *sbi) |
1186 | { | 1186 | { |
1187 | struct list_head *head = &(SM_I(sbi)->dcc_info->discard_entry_list); | 1187 | struct list_head *head = &(SM_I(sbi)->dcc_info->entry_list); |
1188 | struct discard_entry *entry, *this; | 1188 | struct discard_entry *entry, *this; |
1189 | 1189 | ||
1190 | /* drop caches */ | 1190 | /* drop caches */ |
@@ -1210,7 +1210,7 @@ static void set_prefree_as_free_segments(struct f2fs_sb_info *sbi) | |||
1210 | 1210 | ||
1211 | void clear_prefree_segments(struct f2fs_sb_info *sbi, struct cp_control *cpc) | 1211 | void clear_prefree_segments(struct f2fs_sb_info *sbi, struct cp_control *cpc) |
1212 | { | 1212 | { |
1213 | struct list_head *head = &(SM_I(sbi)->dcc_info->discard_entry_list); | 1213 | struct list_head *head = &(SM_I(sbi)->dcc_info->entry_list); |
1214 | struct discard_entry *entry, *this; | 1214 | struct discard_entry *entry, *this; |
1215 | struct dirty_seglist_info *dirty_i = DIRTY_I(sbi); | 1215 | struct dirty_seglist_info *dirty_i = DIRTY_I(sbi); |
1216 | unsigned long *prefree_map = dirty_i->dirty_segmap[PRE]; | 1216 | unsigned long *prefree_map = dirty_i->dirty_segmap[PRE]; |
@@ -1311,9 +1311,9 @@ static int create_discard_cmd_control(struct f2fs_sb_info *sbi) | |||
1311 | if (!dcc) | 1311 | if (!dcc) |
1312 | return -ENOMEM; | 1312 | return -ENOMEM; |
1313 | 1313 | ||
1314 | INIT_LIST_HEAD(&dcc->discard_entry_list); | 1314 | INIT_LIST_HEAD(&dcc->entry_list); |
1315 | INIT_LIST_HEAD(&dcc->discard_pend_list); | 1315 | INIT_LIST_HEAD(&dcc->pend_list); |
1316 | INIT_LIST_HEAD(&dcc->discard_wait_list); | 1316 | INIT_LIST_HEAD(&dcc->wait_list); |
1317 | mutex_init(&dcc->cmd_lock); | 1317 | mutex_init(&dcc->cmd_lock); |
1318 | atomic_set(&dcc->issued_discard, 0); | 1318 | atomic_set(&dcc->issued_discard, 0); |
1319 | atomic_set(&dcc->issing_discard, 0); | 1319 | atomic_set(&dcc->issing_discard, 0); |