Skip to content

Commit ab9165b

Browse files
committed
Verify if /dev/dax was mapped with MAP_SYNC
Signed-off-by: Lukasz Dorau <[email protected]>
1 parent 842d0b7 commit ab9165b

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/provider/provider_devdax_memory.c

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,17 +139,30 @@ static umf_result_t devdax_initialize(void *params, void **provider) {
139139
goto err_free_devdax_provider;
140140
}
141141

142+
bool is_dax = false;
143+
142144
devdax_provider->base = utils_mmap_file(
143145
NULL, devdax_provider->size, devdax_provider->protection, 0 /* flags */,
144-
fd, 0 /* offset */, NULL);
146+
fd, 0 /* offset */, &is_dax);
145147
utils_close_fd(fd);
146148
if (devdax_provider->base == NULL) {
147-
LOG_PDEBUG("devdax memory mapping failed (path=%s, size=%zu)",
149+
LOG_PDEBUG("mapping the devdax failed (path=%s, size=%zu)",
148150
in_params->path, devdax_provider->size);
149151
ret = UMF_RESULT_ERROR_UNKNOWN;
150152
goto err_free_devdax_provider;
151153
}
152154

155+
if (!is_dax) {
156+
LOG_ERR("mapping the devdax with MAP_SYNC failed: %s", in_params->path);
157+
ret = UMF_RESULT_ERROR_UNKNOWN;
158+
159+
if (devdax_provider->base) {
160+
utils_munmap(devdax_provider->base, devdax_provider->size);
161+
}
162+
163+
goto err_free_devdax_provider;
164+
}
165+
153166
LOG_DEBUG("devdax memory mapped (path=%s, size=%zu, addr=%p)",
154167
in_params->path, devdax_provider->size, devdax_provider->base);
155168

0 commit comments

Comments
 (0)