f2fs: introduce release_discard_addr() for cleanup

Introduce release_discard_addr() to include common codes for cleanup.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
[Fengguang Wu: declare static function, reported by kbuild test robot]
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
Chao Yu 2018-04-25 17:38:29 +08:00 committed by Jaegeuk Kim
parent a9af3fdcc4
commit af8ff65bb8
1 changed files with 9 additions and 6 deletions

View File

@ -1581,16 +1581,20 @@ static bool add_discard_addrs(struct f2fs_sb_info *sbi, struct cp_control *cpc,
return false;
}
static void release_discard_addr(struct discard_entry *entry)
{
list_del(&entry->list);
kmem_cache_free(discard_entry_slab, entry);
}
void release_discard_addrs(struct f2fs_sb_info *sbi)
{
struct list_head *head = &(SM_I(sbi)->dcc_info->entry_list);
struct discard_entry *entry, *this;
/* drop caches */
list_for_each_entry_safe(entry, this, head, list) {
list_del(&entry->list);
kmem_cache_free(discard_entry_slab, entry);
}
list_for_each_entry_safe(entry, this, head, list)
release_discard_addr(entry);
}
/*
@ -1690,9 +1694,8 @@ void clear_prefree_segments(struct f2fs_sb_info *sbi, struct cp_control *cpc)
if (cur_pos < sbi->blocks_per_seg)
goto find_next;
list_del(&entry->list);
release_discard_addr(entry);
dcc->nr_discards -= total_len;
kmem_cache_free(discard_entry_slab, entry);
}
wake_up_discard_thread(sbi, false);