From 07cee37b9f5566817a226a5c741c9288cfcbbf9e Mon Sep 17 00:00:00 2001 From: Woart <46750383+Woart@users.noreply.github.com> Date: Tue, 3 Nov 2026 18:53:16 +0700 Subject: [PATCH] fix: use vmalloc for temporary metadata segment buffers fix/metadata-vmalloc Signed-off-by: Woart <46750383+Woart@users.noreply.github.com> --- src/metadata/metadata_superblock.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/metadata/metadata_superblock.c b/src/metadata/metadata_superblock.c index 687de974..c4f01cef 100644 --- a/src/metadata/metadata_superblock.c +++ b/src/metadata/metadata_superblock.c @@ -78,7 +78,7 @@ static void ocf_metadata_store_segment(ocf_pipeline_t pipeline, ctrl = (struct ocf_metadata_ctrl *)cache->metadata.priv; context->segment_copy[segment].mem_pool = - env_malloc(ctrl->raw_desc[segment].mem_pool_limit, ENV_MEM_NORMAL); + env_vmalloc(ctrl->raw_desc[segment].mem_pool_limit); if (!context->segment_copy[segment].mem_pool) OCF_PL_FINISH_RET(pipeline, -OCF_ERR_NO_MEM); @@ -86,7 +86,7 @@ static void ocf_metadata_store_segment(ocf_pipeline_t pipeline, ctrl->raw_desc[segment].mem_pool_limit, METADATA_MEM_POOL(ctrl, segment), ctrl->raw_desc[segment].mem_pool_limit); if (error) { - env_free(context->segment_copy[segment].mem_pool); + env_vfree(context->segment_copy[segment].mem_pool); context->segment_copy[segment].mem_pool = NULL; OCF_PL_FINISH_RET(pipeline, error); } @@ -544,7 +544,7 @@ static void ocf_metadata_load_superblock_finish(ocf_pipeline_t pipeline, for (segment = metadata_segment_sb_config; segment < metadata_segment_fixed_size_max; segment++) { if (context->segment_copy[segment].mem_pool) - env_free(context->segment_copy[segment].mem_pool); + env_vfree(context->segment_copy[segment].mem_pool); } context->cmpl(context->priv, error);