diff --git a/modules/chain/dap_chain_cell.c b/modules/chain/dap_chain_cell.c index 3c14f7e50ab4fe9ae03eb8730485511c17ab642b..874a84e6db7c53586fb8ca8f3b11359e21a16022 100644 --- a/modules/chain/dap_chain_cell.c +++ b/modules/chain/dap_chain_cell.c @@ -129,7 +129,7 @@ dap_chain_cell_t * dap_chain_cell_create_fill(dap_chain_t * a_chain, dap_chain_c pthread_rwlock_unlock(&a_chain->cell_rwlock); return NULL; } - if ( MAP_FAILED == (l_map = mmap(NULL, l_size = dap_page_roundup(DAP_MAPPED_VOLUME_LIMIT), PROT_READ|PROT_WRITE, MAP_PRIVATE, fileno(l_file), 0)) ) { + if ( a_chain->is_mapped && MAP_FAILED == (l_map = mmap(NULL, l_size = dap_page_roundup(DAP_MAPPED_VOLUME_LIMIT), PROT_READ|PROT_WRITE, MAP_PRIVATE, fileno(l_file), 0)) ) { log_it(L_ERROR, "Chain cell \"%s\" 0x%016"DAP_UINT64_FORMAT_X" cannot be mapped, error %d", file_storage_path, a_cell_id.uint64, errno); fclose(l_file);