@@ -295,6 +295,25 @@ static umf_result_t file_initialize(const void *params, void **provider) {
295295
296296    file_provider -> coarse  =  coarse ;
297297
298+     * provider  =  file_provider ;
299+     return  UMF_RESULT_SUCCESS ;
300+ 
301+ err_close_fd :
302+     utils_close_fd (file_provider -> fd );
303+ err_free_file_provider :
304+     umf_ba_global_free (file_provider );
305+     return  ret ;
306+ }
307+ 
308+ static  umf_result_t  file_post_initialize (void  * provider ) {
309+     umf_result_t  ret  =  UMF_RESULT_SUCCESS ;
310+     file_memory_provider_t  * file_provider  =  provider ;
311+ 
312+     if  (file_provider  ==  NULL ) {
313+         LOG_ERR ("file provider is NULL" );
314+         return  UMF_RESULT_ERROR_INVALID_ARGUMENT ;
315+     }
316+ 
298317    if  (utils_mutex_init (& file_provider -> lock ) ==  NULL ) {
299318        LOG_ERR ("lock init failed" );
300319        ret  =  UMF_RESULT_ERROR_UNKNOWN ;
@@ -315,20 +334,14 @@ static umf_result_t file_initialize(const void *params, void **provider) {
315334        goto err_delete_fd_offset_map ;
316335    }
317336
318-     * provider  =  file_provider ;
319- 
320337    return  UMF_RESULT_SUCCESS ;
321338
322- err_delete_fd_offset_map :
323-     critnib_delete (file_provider -> fd_offset_map );
324- err_mutex_destroy_not_free :
325-     utils_mutex_destroy_not_free (& file_provider -> lock );
326339err_coarse_delete :
327340    coarse_delete (file_provider -> coarse );
328- err_close_fd :
329-     utils_close_fd ( file_provider -> fd );
330- err_free_file_provider :
331-     umf_ba_global_free (file_provider );
341+ err_mutex_destroy_not_free :
342+     utils_mutex_destroy_not_free ( & file_provider -> lock );
343+ err_delete_fd_offset_map :
344+     critnib_delete (file_provider -> fd_offset_map );
332345    return  ret ;
333346}
334347
@@ -916,12 +929,6 @@ static umf_result_t file_free(void *provider, void *ptr, size_t size) {
916929    return  ret ;
917930}
918931
919- static  umf_result_t  file_post_initialize (void  * provider ) {
920-     (void )provider ;
921-     // For initial version, just return success 
922-     return  UMF_RESULT_SUCCESS ;
923- }
924- 
925932static  umf_memory_provider_ops_t  UMF_FILE_MEMORY_PROVIDER_OPS  =  {
926933    .version  =  UMF_PROVIDER_OPS_VERSION_CURRENT ,
927934    .initialize  =  file_initialize ,
0 commit comments