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

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

f2fs: introduce release_discard_addr() for cleanup



Introduce release_discard_addr() to include common codes for cleanup.

Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
[Fengguang Wu: declare static function, reported by kbuild test robot]
Signed-off-by: default avatarFengguang Wu <fengguang.wu@intel.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 77a3dc3f
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -1662,16 +1662,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);
}

/*
@@ -1771,9 +1775,8 @@ skip:
		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);