mirror of https://gitee.com/openkylin/linux.git
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:
parent
a9af3fdcc4
commit
af8ff65bb8
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue