@@ -133,8 +133,6 @@ static umf_result_t file_initialize(void *params, void **provider) {
133133 umf_file_memory_provider_params_t * in_params =
134134 (umf_file_memory_provider_params_t * )params ;
135135
136- size_t page_size = utils_get_page_size ();
137-
138136 if (in_params -> path == NULL ) {
139137 LOG_ERR ("file path is missing" );
140138 return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
@@ -148,8 +146,6 @@ static umf_result_t file_initialize(void *params, void **provider) {
148146
149147 memset (file_provider , 0 , sizeof (* file_provider ));
150148
151- file_provider -> page_size = page_size ;
152-
153149 ret = file_translate_params (in_params , file_provider );
154150 if (ret != UMF_RESULT_SUCCESS ) {
155151 goto err_free_file_provider ;
@@ -188,6 +184,12 @@ static umf_result_t file_initialize(void *params, void **provider) {
188184 }
189185 }
190186
187+ if (file_provider -> is_fsdax ) {
188+ file_provider -> page_size = FSDAX_PAGE_SIZE_2MB ;
189+ } else {
190+ file_provider -> page_size = utils_get_page_size ();
191+ }
192+
191193 if (utils_mutex_init (& file_provider -> lock ) == NULL ) {
192194 LOG_ERR ("lock init failed" );
193195 ret = UMF_RESULT_ERROR_UNKNOWN ;
@@ -494,7 +496,8 @@ static umf_result_t file_get_recommended_page_size(void *provider, size_t size,
494496 return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
495497 }
496498
497- * page_size = utils_get_page_size ();
499+ file_memory_provider_t * file_provider = (file_memory_provider_t * )provider ;
500+ * page_size = file_provider -> page_size ;
498501
499502 return UMF_RESULT_SUCCESS ;
500503}
0 commit comments