@@ -139,17 +139,30 @@ static umf_result_t devdax_initialize(void *params, void **provider) {
139
139
goto err_free_devdax_provider ;
140
140
}
141
141
142
+ bool is_dax = false;
143
+
142
144
devdax_provider -> base = utils_mmap_file (
143
145
NULL , devdax_provider -> size , devdax_provider -> protection , 0 /* flags */ ,
144
- fd , 0 /* offset */ , NULL );
146
+ fd , 0 /* offset */ , & is_dax );
145
147
utils_close_fd (fd );
146
148
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)" ,
148
150
in_params -> path , devdax_provider -> size );
149
151
ret = UMF_RESULT_ERROR_UNKNOWN ;
150
152
goto err_free_devdax_provider ;
151
153
}
152
154
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
+
153
166
LOG_DEBUG ("devdax memory mapped (path=%s, size=%zu, addr=%p)" ,
154
167
in_params -> path , devdax_provider -> size , devdax_provider -> base );
155
168
0 commit comments