diff --git a/src/ocf_request.c b/src/ocf_request.c index 0a7f291..6b0d849 100644 --- a/src/ocf_request.c +++ b/src/ocf_request.c @@ -204,8 +204,10 @@ void ocf_req_put(struct ocf_request *req) if (!req->d2c && req->io_queue != req->cache->mngt_queue) ocf_refcnt_dec(&req->cache->refcnt.metadata); - if (!env_mpool_del(req->cache->owner->resources.req, req, - req->core_line_count)) { + if (req->map == req->__map) { + env_mpool_del(req->cache->owner->resources.req, req, + req->core_line_count); + } else { env_free(req->map); env_mpool_del(req->cache->owner->resources.req, req, 1); }