diff --git a/env/posix/ocf_env.h b/env/posix/ocf_env.h index c175c31..55fbe0a 100644 --- a/env/posix/ocf_env.h +++ b/env/posix/ocf_env.h @@ -124,6 +124,16 @@ static inline void env_free(const void *ptr) free((void *)ptr); } +static inline void *env_vmalloc_flags(size_t size, int flags) +{ + return malloc(size); +} + +static inline void *env_vzalloc_flags(size_t size, int flags) +{ + return env_zalloc(size, 0); +} + static inline void *env_vmalloc(size_t size) { return malloc(size); diff --git a/src/metadata/metadata_io.c b/src/metadata/metadata_io.c index 2a20871..bc442b6 100644 --- a/src/metadata/metadata_io.c +++ b/src/metadata/metadata_io.c @@ -375,7 +375,7 @@ static int metadata_io_i_asynch(ocf_cache_t cache, ocf_queue_t queue, int dir, if (count == 0) return 0; - a_req = env_vzalloc(sizeof(*a_req)); + a_req = env_vzalloc_flags(sizeof(*a_req), ENV_MEM_NOIO); if (!a_req) return -OCF_ERR_NO_MEM; @@ -422,7 +422,7 @@ static int metadata_io_i_asynch(ocf_cache_t cache, ocf_queue_t queue, int dir, compl_hndl(cache, context, a_req->error); if (env_atomic_dec_return(&a_req->req_active) == 0) - env_free(a_req); + env_vfree(a_req); return 0;