diff --git a/src/metadata/metadata.c b/src/metadata/metadata.c index 395f8c6..07795bb 100644 --- a/src/metadata/metadata.c +++ b/src/metadata/metadata.c @@ -21,19 +21,23 @@ #define OCF_DEBUG_TRACE(cache) #endif +/* TODO: temporarily still in metadata_hash.c, definition will + be moved to this file */ +int ocf_metadata_init_fixed_size(struct ocf_cache *cache, + ocf_cache_line_size_t cache_line_size); +void ocf_metadata_deinit_fixed_size(struct ocf_cache *cache); +void ocf_metadata_query_cores(ocf_ctx_t owner, ocf_volume_t volume, + struct ocf_volume_uuid *uuid, uint32_t count, + ocf_metadata_query_cores_end_t cmpl, void *priv); + int ocf_metadata_init(struct ocf_cache *cache, ocf_cache_line_size_t cache_line_size) { - struct ocf_metadata_iface *iface = (struct ocf_metadata_iface *) - &cache->metadata.iface; int ret; OCF_DEBUG_TRACE(cache); - ENV_BUG_ON(cache->metadata.iface_priv); - - *iface = *metadata_hash_get_iface(); - ret = cache->metadata.iface.init(cache, cache_line_size); + ret = ocf_metadata_init_fixed_size(cache, cache_line_size); if (ret) { ocf_metadata_io_deinit(cache); return ret; @@ -41,8 +45,7 @@ int ocf_metadata_init(struct ocf_cache *cache, ret = ocf_metadata_concurrency_init(&cache->metadata.lock); if (ret) { - if (cache->metadata.iface.deinit) - cache->metadata.iface.deinit(cache); + ocf_metadata_deinit_fixed_size(cache); ocf_metadata_io_deinit(cache); return ret; @@ -51,53 +54,15 @@ int ocf_metadata_init(struct ocf_cache *cache, return 0; } -int ocf_metadata_init_variable_size(struct ocf_cache *cache, uint64_t device_size, - ocf_cache_line_size_t cache_line_size, - ocf_metadata_layout_t layout) -{ - OCF_DEBUG_TRACE(cache); - return cache->metadata.iface.init_variable_size(cache, device_size, - cache_line_size, layout); -} - -void ocf_metadata_init_hash_table(struct ocf_cache *cache) -{ - OCF_DEBUG_TRACE(cache); - cache->metadata.iface.init_hash_table(cache); -} - -void ocf_metadata_init_collision(struct ocf_cache *cache) -{ - OCF_DEBUG_TRACE(cache); - cache->metadata.iface.init_collision(cache); -} - void ocf_metadata_deinit(struct ocf_cache *cache) { OCF_DEBUG_TRACE(cache); - if (cache->metadata.iface.deinit) { - cache->metadata.iface.deinit(cache); - } - + ocf_metadata_deinit_fixed_size(cache); ocf_metadata_concurrency_deinit(&cache->metadata.lock); - ocf_metadata_io_deinit(cache); } -void ocf_metadata_deinit_variable_size(struct ocf_cache *cache) -{ - OCF_DEBUG_TRACE(cache); - - if (cache->metadata.iface.deinit_variable_size) - cache->metadata.iface.deinit_variable_size(cache); -} - -size_t ocf_metadata_size_of(struct ocf_cache *cache) -{ - return cache->metadata.iface.size_of(cache); -} - void ocf_metadata_error(struct ocf_cache *cache) { if (cache->device->metadata_error == 0) @@ -107,47 +72,6 @@ void ocf_metadata_error(struct ocf_cache *cache) cache->device->metadata_error = -1; } -ocf_cache_line_t ocf_metadata_get_pages_count(struct ocf_cache *cache) -{ - return cache->metadata.iface.pages(cache); -} - -ocf_cache_line_t ocf_metadata_get_cachelines_count(ocf_cache_t cache) -{ - return cache->metadata.iface.cachelines(cache); -} - -void ocf_metadata_flush_all(ocf_cache_t cache, - ocf_metadata_end_t cmpl, void *priv) -{ - cache->metadata.iface.flush_all(cache, cmpl, priv); -} - -void ocf_metadata_load_all(ocf_cache_t cache, - ocf_metadata_end_t cmpl, void *priv) -{ - cache->metadata.iface.load_all(cache, cmpl, priv); -} - -void ocf_metadata_load_recovery(ocf_cache_t cache, - ocf_metadata_end_t cmpl, void *priv) -{ - cache->metadata.iface.load_recovery(cache, cmpl, priv); -} - -void ocf_metadata_flush_mark(struct ocf_cache *cache, struct ocf_request *req, - uint32_t map_idx, int to_state, uint8_t start, uint8_t stop) -{ - cache->metadata.iface.flush_mark(cache, req, map_idx, to_state, - start, stop); -} - -void ocf_metadata_flush_do_asynch(struct ocf_cache *cache, - struct ocf_request *req, ocf_req_end_t complete) -{ - cache->metadata.iface.flush_do_asynch(cache, req, complete); -} - struct ocf_metadata_read_sb_ctx; typedef void (*ocf_metadata_read_sb_end_t)( @@ -374,7 +298,6 @@ void ocf_metadata_probe_cores(ocf_ctx_t ctx, ocf_volume_t volume, ocf_metadata_probe_cores_end_t cmpl, void *priv) { struct ocf_metadata_query_cores_context *context; - const struct ocf_metadata_iface *iface; context = env_vzalloc(sizeof(*context)); if (!context) @@ -383,8 +306,7 @@ void ocf_metadata_probe_cores(ocf_ctx_t ctx, ocf_volume_t volume, context->cmpl = cmpl; context->priv = priv; - iface = metadata_hash_get_iface(); - iface->query_cores(ctx, volume, uuids, uuids_count, + ocf_metadata_query_cores(ctx, volume, uuids, uuids_count, ocf_metadata_query_cores_end, context); } diff --git a/src/metadata/metadata.h b/src/metadata/metadata.h index 08f49af..595efed 100644 --- a/src/metadata/metadata.h +++ b/src/metadata/metadata.h @@ -170,10 +170,7 @@ void ocf_metadata_load_recovery(ocf_cache_t cache, * * @param cache Cache instance */ -static inline uint64_t ocf_metadata_get_reserved_lba(ocf_cache_t cache) -{ - return cache->metadata.iface.get_reserved_lba(cache); -} +uint64_t ocf_metadata_get_reserved_lba(ocf_cache_t cache); /* * NOTE Hash table is specific for hash table metadata service implementation @@ -182,23 +179,11 @@ static inline uint64_t ocf_metadata_get_reserved_lba(ocf_cache_t cache) * temporary defined in this file. */ -static inline ocf_cache_line_t -ocf_metadata_get_hash(struct ocf_cache *cache, ocf_cache_line_t index) -{ - return cache->metadata.iface.get_hash(cache, index); -} +ocf_cache_line_t +ocf_metadata_get_hash(struct ocf_cache *cache, ocf_cache_line_t index); -static inline void ocf_metadata_set_hash(struct ocf_cache *cache, - ocf_cache_line_t index, ocf_cache_line_t line) -{ - cache->metadata.iface.set_hash(cache, index, line); -} - -static inline ocf_cache_line_t ocf_metadata_entries_hash( - struct ocf_cache *cache) -{ - return cache->metadata.iface.entries_hash(cache); -} +void ocf_metadata_set_hash(struct ocf_cache *cache, + ocf_cache_line_t index, ocf_cache_line_t line); struct ocf_metadata_load_properties { enum ocf_metadata_shutdown_status shutdown_status; diff --git a/src/metadata/metadata_cleaning_policy.h b/src/metadata/metadata_cleaning_policy.h index 8b0e442..4ba9799 100644 --- a/src/metadata/metadata_cleaning_policy.h +++ b/src/metadata/metadata_cleaning_policy.h @@ -6,12 +6,9 @@ #ifndef __METADATA_CLEANING_POLICY_H__ #define __METADATA_CLEANING_POLICY_H__ -static inline struct cleaning_policy_meta * +struct cleaning_policy_meta * ocf_metadata_get_cleaning_policy(struct ocf_cache *cache, - ocf_cache_line_t line) -{ - return cache->metadata.iface.get_cleaning_policy(cache, line); -} + ocf_cache_line_t line); #endif /* METADATA_CLEANING_POLICY_H_ */ diff --git a/src/metadata/metadata_collision.h b/src/metadata/metadata_collision.h index f6be960..e7f4ccc 100644 --- a/src/metadata/metadata_collision.h +++ b/src/metadata/metadata_collision.h @@ -44,33 +44,21 @@ ocf_cache_line_t ocf_metadata_map_lg2phy( ocf_cache_line_t ocf_metadata_map_phy2lg( struct ocf_cache *cache, ocf_cache_line_t cache_line); -static inline void ocf_metadata_set_collision_info( +void ocf_metadata_set_collision_info( struct ocf_cache *cache, ocf_cache_line_t line, - ocf_cache_line_t next, ocf_cache_line_t prev) -{ - cache->metadata.iface.set_collision_info(cache, line, next, prev); -} + ocf_cache_line_t next, ocf_cache_line_t prev); -static inline void ocf_metadata_set_collision_next( +void ocf_metadata_set_collision_next( struct ocf_cache *cache, ocf_cache_line_t line, - ocf_cache_line_t next) -{ - cache->metadata.iface.set_collision_next(cache, line, next); -} + ocf_cache_line_t next); -static inline void ocf_metadata_set_collision_prev( +void ocf_metadata_set_collision_prev( struct ocf_cache *cache, ocf_cache_line_t line, - ocf_cache_line_t prev) -{ - cache->metadata.iface.set_collision_prev(cache, line, prev); -} + ocf_cache_line_t prev); -static inline void ocf_metadata_get_collision_info( +void ocf_metadata_get_collision_info( struct ocf_cache *cache, ocf_cache_line_t line, - ocf_cache_line_t *next, ocf_cache_line_t *prev) -{ - cache->metadata.iface.get_collision_info(cache, line, next, prev); -} + ocf_cache_line_t *next, ocf_cache_line_t *prev); static inline ocf_cache_line_t ocf_metadata_get_collision_next( struct ocf_cache *cache, ocf_cache_line_t line) @@ -97,16 +85,10 @@ void ocf_metadata_add_to_collision(struct ocf_cache *cache, void ocf_metadata_remove_from_collision(struct ocf_cache *cache, ocf_cache_line_t line, ocf_part_id_t part_id); -static inline void ocf_metadata_start_collision_shared_access( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - cache->metadata.iface.start_collision_shared_access(cache, line); -} + void ocf_metadata_start_collision_shared_access( + struct ocf_cache *cache, ocf_cache_line_t line); -static inline void ocf_metadata_end_collision_shared_access( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - cache->metadata.iface.end_collision_shared_access(cache, line); -} + void ocf_metadata_end_collision_shared_access( + struct ocf_cache *cache, ocf_cache_line_t line); #endif /* METADATA_COLLISION_H_ */ diff --git a/src/metadata/metadata_core.h b/src/metadata/metadata_core.h index 3214acf..2e8ba73 100644 --- a/src/metadata/metadata_core.h +++ b/src/metadata/metadata_core.h @@ -6,40 +6,22 @@ #ifndef __METADATA_CORE_H__ #define __METADATA_CORE_H__ -static inline void ocf_metadata_set_core_info(struct ocf_cache *cache, - ocf_cache_line_t line, ocf_core_id_t core_id, - uint64_t core_sector) -{ - cache->metadata.iface.set_core_info(cache, line, core_id, - core_sector); -} - -static inline void ocf_metadata_get_core_info(struct ocf_cache *cache, +void ocf_metadata_get_core_info(struct ocf_cache *cache, ocf_cache_line_t line, ocf_core_id_t *core_id, - uint64_t *core_sector) -{ - cache->metadata.iface.get_core_info(cache, line, core_id, - core_sector); -} + uint64_t *core_sector); -static inline void ocf_metadata_get_core_and_part_id( +void ocf_metadata_set_core_info(struct ocf_cache *cache, + ocf_cache_line_t line, ocf_core_id_t core_id, + uint64_t core_sector); + +ocf_core_id_t ocf_metadata_get_core_id( + struct ocf_cache *cache, ocf_cache_line_t line); + +struct ocf_metadata_uuid *ocf_metadata_get_core_uuid( + struct ocf_cache *cache, ocf_core_id_t core_id); + +void ocf_metadata_get_core_and_part_id( struct ocf_cache *cache, ocf_cache_line_t line, - ocf_core_id_t *core_id, ocf_part_id_t *part_id) -{ - cache->metadata.iface.get_core_and_part_id(cache, line, core_id, - part_id); -} - -static inline ocf_core_id_t ocf_metadata_get_core_id( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - return cache->metadata.iface.get_core_id(cache, line); -} - -static inline struct ocf_metadata_uuid *ocf_metadata_get_core_uuid( - struct ocf_cache *cache, ocf_core_id_t core_id) -{ - return cache->metadata.iface.get_core_uuid(cache, core_id); -} + ocf_core_id_t *core_id, ocf_part_id_t *part_id); #endif /* METADATA_CORE_H_ */ diff --git a/src/metadata/metadata_eviction_policy.h b/src/metadata/metadata_eviction_policy.h index 0e34d5c..bfbfc61 100644 --- a/src/metadata/metadata_eviction_policy.h +++ b/src/metadata/metadata_eviction_policy.h @@ -6,11 +6,8 @@ #ifndef __METADATA_EVICTION_H__ #define __METADATA_EVICTION_H__ -static inline union eviction_policy_meta * +union eviction_policy_meta * ocf_metadata_get_eviction_policy( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - return cache->metadata.iface.get_eviction_policy(cache, line); -} + struct ocf_cache *cache, ocf_cache_line_t line); #endif /* METADATA_EVICTION_H_ */ diff --git a/src/metadata/metadata_hash.c b/src/metadata/metadata_hash.c index 2f217a5..153bdac 100644 --- a/src/metadata/metadata_hash.c +++ b/src/metadata/metadata_hash.c @@ -404,7 +404,7 @@ static void ocf_metadata_hash_raw_info(struct ocf_cache *cache, /* * Deinitialize hash metadata interface */ -static void ocf_metadata_hash_deinit_variable_size(struct ocf_cache *cache) +void ocf_metadata_deinit_variable_size(struct ocf_cache *cache) { int result = 0; @@ -445,7 +445,7 @@ static inline void ocf_metadata_config_init(struct ocf_cache *cache, ocf_metadata_status_sizeof(settings)); } -static void ocf_metadata_hash_deinit(struct ocf_cache *cache) +void ocf_metadata_deinit_fixed_size(struct ocf_cache *cache) { int result = 0; uint32_t i; @@ -515,7 +515,7 @@ static struct ocf_metadata_hash_ctrl *ocf_metadata_hash_ctrl_init( return ctrl; } -int ocf_metadata_hash_init(struct ocf_cache *cache, +int ocf_metadata_init_fixed_size(struct ocf_cache *cache, ocf_cache_line_size_t cache_line_size) { struct ocf_metadata_hash_ctrl *ctrl = NULL; @@ -550,7 +550,7 @@ int ocf_metadata_hash_init(struct ocf_cache *cache, } if (result) { - ocf_metadata_hash_deinit(cache); + ocf_metadata_deinit_fixed_size(cache); return result; } @@ -828,7 +828,7 @@ exit: return err; } -void ocf_metadata_hash_query_cores(ocf_ctx_t owner, ocf_volume_t volume, +void ocf_metadata_query_cores(ocf_ctx_t owner, ocf_volume_t volume, struct ocf_volume_uuid *uuid, uint32_t count, ocf_metadata_query_cores_end_t cmpl, void *priv) { @@ -903,7 +903,7 @@ static void ocf_metadata_hash_flush_unlock_collision_page( /* * Initialize hash metadata interface */ -static int ocf_metadata_hash_init_variable_size(struct ocf_cache *cache, +int ocf_metadata_init_variable_size(struct ocf_cache *cache, uint64_t device_size, ocf_cache_line_size_t cache_line_size, ocf_metadata_layout_t layout) { @@ -1024,7 +1024,7 @@ finalize: /* * Hash De-Init also contains RAW deinitialization */ - ocf_metadata_hash_deinit_variable_size(cache); + ocf_metadata_deinit_variable_size(cache); return result; } @@ -1080,7 +1080,7 @@ finalize: if (result) { ocf_cache_log(cache, log_err, "Failed to initialize attached " "metadata concurrency\n"); - ocf_metadata_hash_deinit_variable_size(cache); + ocf_metadata_deinit_variable_size(cache); return result; } @@ -1101,7 +1101,7 @@ static inline void _ocf_init_collision_entry(struct ocf_cache *cache, /* * Initialize collision table */ -static void ocf_metadata_hash_init_collision(struct ocf_cache *cache) +void ocf_metadata_init_collision(struct ocf_cache *cache) { unsigned int i; unsigned int step = 0; @@ -1115,7 +1115,7 @@ static void ocf_metadata_hash_init_collision(struct ocf_cache *cache) /* * Initialize hash table */ -static void ocf_metadata_hash_init_hash_table(struct ocf_cache *cache) +void ocf_metadata_init_hash_table(struct ocf_cache *cache) { unsigned int i; unsigned int hash_table_entries = cache->device->hash_table_entries; @@ -1135,7 +1135,7 @@ static void ocf_metadata_hash_init_hash_table(struct ocf_cache *cache) /* * Get count of pages that is dedicated for metadata */ -static ocf_cache_line_t ocf_metadata_hash_pages(struct ocf_cache *cache) +ocf_cache_line_t ocf_metadata_get_pages_count(struct ocf_cache *cache) { struct ocf_metadata_hash_ctrl *ctrl = NULL; @@ -1149,7 +1149,7 @@ static ocf_cache_line_t ocf_metadata_hash_pages(struct ocf_cache *cache) /* * Get amount of cache lines */ -static ocf_cache_line_t ocf_metadata_hash_cachelines( +ocf_cache_line_t ocf_metadata_get_cachelines_count( struct ocf_cache *cache) { struct ocf_metadata_hash_ctrl *ctrl = NULL; @@ -1161,7 +1161,7 @@ static ocf_cache_line_t ocf_metadata_hash_cachelines( return ctrl->cachelines; } -static size_t ocf_metadata_hash_size_of(struct ocf_cache *cache) +size_t ocf_metadata_size_of(struct ocf_cache *cache) { uint32_t i = 0; size_t size = 0; @@ -1390,7 +1390,7 @@ static void ocf_metadata_hash_load_sb_restore( } } -static void ocf_metadata_hash_load_superblock_finish(ocf_pipeline_t pipeline, +static void ocf_metadata_load_superblock_finish(ocf_pipeline_t pipeline, void *priv, int error) { struct ocf_metadata_hash_context *context = priv; @@ -1447,7 +1447,7 @@ struct ocf_pipeline_arg ocf_metadata_hash_load_sb_check_crc_args_clean[] = { struct ocf_pipeline_properties ocf_metadata_hash_load_sb_pipeline_props = { .priv_size = sizeof(struct ocf_metadata_hash_context), - .finish = ocf_metadata_hash_load_superblock_finish, + .finish = ocf_metadata_load_superblock_finish, .steps = { OCF_PL_STEP_FOREACH(ocf_medatata_hash_store_segment, ocf_metadata_hash_load_sb_store_segment_args), @@ -1466,8 +1466,8 @@ struct ocf_pipeline_properties ocf_metadata_hash_load_sb_pipeline_props = { /* * Super Block - Load, This function has to prevent to pointers overwrite */ -static void ocf_metadata_hash_load_superblock(ocf_cache_t cache, - ocf_metadata_end_t cmpl, void *priv) +void ocf_metadata_load_superblock(ocf_cache_t cache, ocf_metadata_end_t cmpl, + void *priv) { struct ocf_metadata_hash_context *context; ocf_pipeline_t pipeline; @@ -1569,7 +1569,7 @@ static void ocf_medatata_hash_flush_segment(ocf_pipeline_t pipeline, ocf_metadata_hash_generic_complete, context); } -static void ocf_metadata_hash_flush_superblock_finish(ocf_pipeline_t pipeline, +static void ocf_metadata_flush_superblock_finish(ocf_pipeline_t pipeline, void *priv, int error) { struct ocf_metadata_hash_context *context = priv; @@ -1622,7 +1622,7 @@ struct ocf_pipeline_arg ocf_metadata_hash_flush_sb_flush_segment_args[] = { struct ocf_pipeline_properties ocf_metadata_hash_flush_sb_pipeline_props = { .priv_size = sizeof(struct ocf_metadata_hash_context), - .finish = ocf_metadata_hash_flush_superblock_finish, + .finish = ocf_metadata_flush_superblock_finish, .steps = { OCF_PL_STEP(ocf_medatata_hash_flush_superblock_prepare), OCF_PL_STEP(ocf_medatata_hash_calculate_crc_sb_config), @@ -1638,7 +1638,7 @@ struct ocf_pipeline_properties ocf_metadata_hash_flush_sb_pipeline_props = { /* * Super Block - FLUSH */ -static void ocf_metadata_hash_flush_superblock(ocf_cache_t cache, +void ocf_metadata_flush_superblock(ocf_cache_t cache, ocf_metadata_end_t cmpl, void *priv) { struct ocf_metadata_hash_context *context; @@ -1670,7 +1670,7 @@ static void ocf_metadata_hash_flush_superblock(ocf_cache_t cache, * * @return Operation status (0 success, otherwise error) */ -static void ocf_metadata_hash_set_shutdown_status(ocf_cache_t cache, +void ocf_metadata_set_shutdown_status(ocf_cache_t cache, enum ocf_metadata_shutdown_status shutdown_status, ocf_metadata_end_t cmpl, void *priv) { @@ -1694,14 +1694,14 @@ static void ocf_metadata_hash_set_shutdown_status(ocf_cache_t cache, superblock->magic_number = CACHE_MAGIC_NUMBER; /* Flush superblock */ - ocf_metadata_hash_flush_superblock(cache, cmpl, priv); + ocf_metadata_flush_superblock(cache, cmpl, priv); } /******************************************************************************* * RESERVED AREA ******************************************************************************/ -static uint64_t ocf_metadata_hash_get_reserved_lba( +uint64_t ocf_metadata_get_reserved_lba( struct ocf_cache *cache) { struct ocf_metadata_hash_ctrl *ctrl; @@ -1733,7 +1733,7 @@ static void ocf_medatata_hash_flush_all_set_status(ocf_pipeline_t pipeline, enum ocf_metadata_shutdown_status shutdown_status = ocf_pipeline_arg_get_int(arg); - ocf_metadata_hash_set_shutdown_status(cache, shutdown_status, + ocf_metadata_set_shutdown_status(cache, shutdown_status, ocf_medatata_hash_flush_all_set_status_complete, context); } @@ -1788,7 +1788,7 @@ struct ocf_pipeline_properties ocf_metadata_hash_flush_all_pipeline_props = { /* * Flush all metadata */ -static void ocf_metadata_hash_flush_all(ocf_cache_t cache, +void ocf_metadata_flush_all(ocf_cache_t cache, ocf_metadata_end_t cmpl, void *priv) { struct ocf_metadata_hash_context *context; @@ -1815,7 +1815,7 @@ static void ocf_metadata_hash_flush_all(ocf_cache_t cache, /* * Flush specified cache line */ -static void ocf_metadata_hash_flush_mark(struct ocf_cache *cache, +void ocf_metadata_flush_mark(struct ocf_cache *cache, struct ocf_request *req, uint32_t map_idx, int to_state, uint8_t start, uint8_t stop) { @@ -1839,7 +1839,7 @@ static void ocf_metadata_hash_flush_mark(struct ocf_cache *cache, /* * Flush specified cache lines asynchronously */ -static void ocf_metadata_hash_flush_do_asynch(struct ocf_cache *cache, +void ocf_metadata_flush_do_asynch(struct ocf_cache *cache, struct ocf_request *req, ocf_req_end_t complete) { int result = 0; @@ -1910,7 +1910,7 @@ struct ocf_pipeline_properties ocf_metadata_hash_load_all_pipeline_props = { /* * Load all metadata */ -static void ocf_metadata_hash_load_all(ocf_cache_t cache, +void ocf_metadata_load_all(ocf_cache_t cache, ocf_metadata_end_t cmpl, void *priv) { struct ocf_metadata_hash_context *context; @@ -2240,7 +2240,7 @@ static void _ocf_metadata_hash_load_recovery_atomic(ocf_cache_t cache, /* * Load for recovery - Load only data that is required for recovery procedure */ -static void ocf_metadata_hash_load_recovery(ocf_cache_t cache, +void ocf_metadata_load_recovery(ocf_cache_t cache, ocf_metadata_end_t cmpl, void *priv) { OCF_DEBUG_TRACE(cache); @@ -2254,7 +2254,7 @@ static void ocf_metadata_hash_load_recovery(ocf_cache_t cache, /******************************************************************************* * Core Info ******************************************************************************/ -static void ocf_metadata_hash_get_core_info(struct ocf_cache *cache, +void ocf_metadata_get_core_info(struct ocf_cache *cache, ocf_cache_line_t line, ocf_core_id_t *core_id, uint64_t *core_sector) { @@ -2279,7 +2279,7 @@ static void ocf_metadata_hash_get_core_info(struct ocf_cache *cache, } } -static void ocf_metadata_hash_set_core_info(struct ocf_cache *cache, +void ocf_metadata_set_core_info(struct ocf_cache *cache, ocf_cache_line_t line, ocf_core_id_t core_id, uint64_t core_sector) { @@ -2298,8 +2298,8 @@ static void ocf_metadata_hash_set_core_info(struct ocf_cache *cache, } } -static ocf_core_id_t ocf_metadata_hash_get_core_id( - struct ocf_cache *cache, ocf_cache_line_t line) +ocf_core_id_t ocf_metadata_get_core_id(struct ocf_cache *cache, + ocf_cache_line_t line) { const struct ocf_metadata_map *collision; struct ocf_metadata_hash_ctrl *ctrl = @@ -2315,7 +2315,7 @@ static ocf_core_id_t ocf_metadata_hash_get_core_id( return OCF_CORE_MAX; } -static struct ocf_metadata_uuid *ocf_metadata_hash_get_core_uuid( +struct ocf_metadata_uuid *ocf_metadata_get_core_uuid( struct ocf_cache *cache, ocf_core_id_t core_id) { struct ocf_metadata_uuid *muuid; @@ -2335,9 +2335,9 @@ static struct ocf_metadata_uuid *ocf_metadata_hash_get_core_uuid( * Core and part id ******************************************************************************/ -static void ocf_metadata_hash_get_core_and_part_id( - struct ocf_cache *cache, ocf_cache_line_t line, - ocf_core_id_t *core_id, ocf_part_id_t *part_id) +void ocf_metadata_get_core_and_part_id(struct ocf_cache *cache, + ocf_cache_line_t line, ocf_core_id_t *core_id, + ocf_part_id_t *part_id) { const struct ocf_metadata_map *collision; const struct ocf_metadata_list_info *info; @@ -2370,8 +2370,8 @@ static void ocf_metadata_hash_get_core_and_part_id( /* * Hash Table - Get */ -static ocf_cache_line_t ocf_metadata_hash_get_hash( - struct ocf_cache *cache, ocf_cache_line_t index) +ocf_cache_line_t ocf_metadata_get_hash(struct ocf_cache *cache, + ocf_cache_line_t index) { ocf_cache_line_t line = cache->device->collision_table_entries; int result = 0; @@ -2390,8 +2390,8 @@ static ocf_cache_line_t ocf_metadata_hash_get_hash( /* * Hash Table - Set */ -static void ocf_metadata_hash_set_hash(struct ocf_cache *cache, - ocf_cache_line_t index, ocf_cache_line_t line) +void ocf_metadata_set_hash(struct ocf_cache *cache, ocf_cache_line_t index, + ocf_cache_line_t line) { int result = 0; struct ocf_metadata_hash_ctrl *ctrl @@ -2411,8 +2411,8 @@ static void ocf_metadata_hash_set_hash(struct ocf_cache *cache, /* * Cleaning policy - Get */ -static struct cleaning_policy_meta * -ocf_metadata_hash_get_cleaning_policy(struct ocf_cache *cache, +struct cleaning_policy_meta * +ocf_metadata_get_cleaning_policy(struct ocf_cache *cache, ocf_cache_line_t line) { struct ocf_metadata_hash_ctrl *ctrl @@ -2429,8 +2429,8 @@ ocf_metadata_hash_get_cleaning_policy(struct ocf_cache *cache, /* * Eviction policy - Get */ -static union eviction_policy_meta * -ocf_metadata_hash_get_eviction_policy(struct ocf_cache *cache, +union eviction_policy_meta * +ocf_metadata_get_eviction_policy(struct ocf_cache *cache, ocf_cache_line_t line) { struct ocf_metadata_hash_ctrl *ctrl @@ -2588,10 +2588,9 @@ ocf_cache_line_t ocf_metadata_map_phy2lg( } } - -static void ocf_metadata_hash_set_collision_info( - struct ocf_cache *cache, ocf_cache_line_t line, - ocf_cache_line_t next, ocf_cache_line_t prev) +void ocf_metadata_set_collision_info(struct ocf_cache *cache, + ocf_cache_line_t line, ocf_cache_line_t next, + ocf_cache_line_t prev) { struct ocf_metadata_list_info *info; struct ocf_metadata_hash_ctrl *ctrl = @@ -2608,9 +2607,8 @@ static void ocf_metadata_hash_set_collision_info( } } -static void ocf_metadata_hash_set_collision_next( - struct ocf_cache *cache, ocf_cache_line_t line, - ocf_cache_line_t next) +void ocf_metadata_set_collision_next(struct ocf_cache *cache, + ocf_cache_line_t line, ocf_cache_line_t next) { struct ocf_metadata_list_info *info; struct ocf_metadata_hash_ctrl *ctrl = @@ -2625,9 +2623,8 @@ static void ocf_metadata_hash_set_collision_next( ocf_metadata_error(cache); } -static void ocf_metadata_hash_set_collision_prev( - struct ocf_cache *cache, ocf_cache_line_t line, - ocf_cache_line_t prev) +void ocf_metadata_set_collision_prev(struct ocf_cache *cache, + ocf_cache_line_t line, ocf_cache_line_t prev) { struct ocf_metadata_list_info *info; struct ocf_metadata_hash_ctrl *ctrl = @@ -2642,9 +2639,9 @@ static void ocf_metadata_hash_set_collision_prev( ocf_metadata_error(cache); } -static void ocf_metadata_hash_get_collision_info( - struct ocf_cache *cache, ocf_cache_line_t line, - ocf_cache_line_t *next, ocf_cache_line_t *prev) +void ocf_metadata_get_collision_info(struct ocf_cache *cache, + ocf_cache_line_t line, ocf_cache_line_t *next, + ocf_cache_line_t *prev) { const struct ocf_metadata_list_info *info; struct ocf_metadata_hash_ctrl *ctrl = @@ -2669,7 +2666,7 @@ static void ocf_metadata_hash_get_collision_info( } } -void ocf_metadata_hash_start_collision_shared_access(struct ocf_cache *cache, +void ocf_metadata_start_collision_shared_access(struct ocf_cache *cache, ocf_cache_line_t line) { struct ocf_metadata_hash_ctrl *ctrl = @@ -2681,7 +2678,7 @@ void ocf_metadata_hash_start_collision_shared_access(struct ocf_cache *cache, ocf_collision_start_shared_access(&cache->metadata.lock, page); } -void ocf_metadata_hash_end_collision_shared_access(struct ocf_cache *cache, +void ocf_metadata_end_collision_shared_access(struct ocf_cache *cache, ocf_cache_line_t line) { struct ocf_metadata_hash_ctrl *ctrl = @@ -2697,10 +2694,9 @@ void ocf_metadata_hash_end_collision_shared_access(struct ocf_cache *cache, * Partition ******************************************************************************/ -static void ocf_metadata_hash_get_partition_info( - struct ocf_cache *cache, ocf_cache_line_t line, - ocf_part_id_t *part_id, ocf_cache_line_t *next_line, - ocf_cache_line_t *prev_line) +void ocf_metadata_get_partition_info(struct ocf_cache *cache, + ocf_cache_line_t line, ocf_part_id_t *part_id, + ocf_cache_line_t *next_line, ocf_cache_line_t *prev_line) { const struct ocf_metadata_list_info *info; struct ocf_metadata_hash_ctrl *ctrl = @@ -2727,9 +2723,8 @@ static void ocf_metadata_hash_get_partition_info( } } -static void ocf_metadata_hash_set_partition_next( - struct ocf_cache *cache, ocf_cache_line_t line, - ocf_cache_line_t next_line) +void ocf_metadata_set_partition_next(struct ocf_cache *cache, + ocf_cache_line_t line, ocf_cache_line_t next_line) { struct ocf_metadata_list_info *info; struct ocf_metadata_hash_ctrl *ctrl = @@ -2744,9 +2739,8 @@ static void ocf_metadata_hash_set_partition_next( ocf_metadata_error(cache); } -static void ocf_metadata_hash_set_partition_prev( - struct ocf_cache *cache, ocf_cache_line_t line, - ocf_cache_line_t prev_line) +void ocf_metadata_set_partition_prev(struct ocf_cache *cache, + ocf_cache_line_t line, ocf_cache_line_t prev_line) { struct ocf_metadata_list_info *info; struct ocf_metadata_hash_ctrl *ctrl = @@ -2761,10 +2755,9 @@ static void ocf_metadata_hash_set_partition_prev( ocf_metadata_error(cache); } -static void ocf_metadata_hash_set_partition_info( - struct ocf_cache *cache, ocf_cache_line_t line, - ocf_part_id_t part_id, ocf_cache_line_t next_line, - ocf_cache_line_t prev_line) +void ocf_metadata_set_partition_info(struct ocf_cache *cache, + ocf_cache_line_t line, ocf_part_id_t part_id, + ocf_cache_line_t next_line, ocf_cache_line_t prev_line) { struct ocf_metadata_list_info *info; struct ocf_metadata_hash_ctrl *ctrl = @@ -2787,89 +2780,6 @@ static void ocf_metadata_hash_set_partition_info( ******************************************************************************/ static const struct ocf_metadata_iface metadata_hash_iface = { - .init = ocf_metadata_hash_init, - .deinit = ocf_metadata_hash_deinit, - .query_cores = ocf_metadata_hash_query_cores, - .init_variable_size = ocf_metadata_hash_init_variable_size, - .deinit_variable_size = ocf_metadata_hash_deinit_variable_size, - .init_hash_table = ocf_metadata_hash_init_hash_table, - .init_collision = ocf_metadata_hash_init_collision, - - .layout = ocf_metadata_layout_default, - .pages = ocf_metadata_hash_pages, - .cachelines = ocf_metadata_hash_cachelines, - .size_of = ocf_metadata_hash_size_of, - - /* - * Load all, flushing all, etc... - */ - .flush_all = ocf_metadata_hash_flush_all, - .flush_mark = ocf_metadata_hash_flush_mark, - .flush_do_asynch = ocf_metadata_hash_flush_do_asynch, - .load_all = ocf_metadata_hash_load_all, - .load_recovery = ocf_metadata_hash_load_recovery, - - /* - * Super Block - */ - .set_shutdown_status = ocf_metadata_hash_set_shutdown_status, - .flush_superblock = ocf_metadata_hash_flush_superblock, - .load_superblock = ocf_metadata_hash_load_superblock, - - /* - * Reserved area - */ - .get_reserved_lba = ocf_metadata_hash_get_reserved_lba, - - /* - * Core Info - */ - .set_core_info = ocf_metadata_hash_set_core_info, - .get_core_info = ocf_metadata_hash_get_core_info, - .get_core_id = ocf_metadata_hash_get_core_id, - .get_core_uuid = ocf_metadata_hash_get_core_uuid, - - /* - * Core and part id - */ - - .get_core_and_part_id = ocf_metadata_hash_get_core_and_part_id, - - /* - * Collision Info - */ - .get_collision_info = ocf_metadata_hash_get_collision_info, - .set_collision_info = ocf_metadata_hash_set_collision_info, - .set_collision_next = ocf_metadata_hash_set_collision_next, - .set_collision_prev = ocf_metadata_hash_set_collision_prev, - .start_collision_shared_access = - ocf_metadata_hash_start_collision_shared_access, - .end_collision_shared_access = - ocf_metadata_hash_end_collision_shared_access, - - /* - * Partition Info - */ - .get_partition_info = ocf_metadata_hash_get_partition_info, - .set_partition_next = ocf_metadata_hash_set_partition_next, - .set_partition_prev = ocf_metadata_hash_set_partition_prev, - .set_partition_info = ocf_metadata_hash_set_partition_info, - - /* - * Hash Table - */ - .get_hash = ocf_metadata_hash_get_hash, - .set_hash = ocf_metadata_hash_set_hash, - - /* - * Cleaning Policy - */ - .get_cleaning_policy = ocf_metadata_hash_get_cleaning_policy, - - /* - * Eviction Policy - */ - .get_eviction_policy = ocf_metadata_hash_get_eviction_policy, }; /******************************************************************************* diff --git a/src/metadata/metadata_partition.h b/src/metadata/metadata_partition.h index 0dd024f..61beb0e 100644 --- a/src/metadata/metadata_partition.h +++ b/src/metadata/metadata_partition.h @@ -13,14 +13,10 @@ #define PARTITION_INVALID ((ocf_part_id_t)-1) #define PARTITION_SIZE_MAX ((ocf_cache_line_t)-1) -static inline void ocf_metadata_get_partition_info( +void ocf_metadata_get_partition_info( struct ocf_cache *cache, ocf_cache_line_t line, ocf_part_id_t *part_id, ocf_cache_line_t *next_line, - ocf_cache_line_t *prev_line) -{ - cache->metadata.iface.get_partition_info(cache, line, part_id, - next_line, prev_line); -} + ocf_cache_line_t *prev_line); static inline ocf_part_id_t ocf_metadata_get_partition_id( struct ocf_cache *cache, ocf_cache_line_t line) @@ -52,28 +48,18 @@ static inline ocf_cache_line_t ocf_metadata_get_partition_prev( return prev; } -static inline void ocf_metadata_set_partition_next( +void ocf_metadata_set_partition_next( struct ocf_cache *cache, ocf_cache_line_t line, - ocf_cache_line_t next_line) -{ - cache->metadata.iface.set_partition_next(cache, line, next_line); -} + ocf_cache_line_t next_line); -static inline void ocf_metadata_set_partition_prev( +void ocf_metadata_set_partition_prev( struct ocf_cache *cache, ocf_cache_line_t line, - ocf_cache_line_t prev_line) -{ - cache->metadata.iface.set_partition_prev(cache, line, prev_line); -} + ocf_cache_line_t prev_line); -static inline void ocf_metadata_set_partition_info( +void ocf_metadata_set_partition_info( struct ocf_cache *cache, ocf_cache_line_t line, ocf_part_id_t part_id, ocf_cache_line_t next_line, - ocf_cache_line_t prev_line) -{ - cache->metadata.iface.set_partition_info(cache, line, part_id, - next_line, prev_line); -} + ocf_cache_line_t prev_line); void ocf_metadata_add_to_partition(struct ocf_cache *cache, ocf_part_id_t part_id, ocf_cache_line_t line); diff --git a/src/metadata/metadata_superblock.h b/src/metadata/metadata_superblock.h index 8b6781e..49b15e5 100644 --- a/src/metadata/metadata_superblock.h +++ b/src/metadata/metadata_superblock.h @@ -63,24 +63,14 @@ struct ocf_superblock_runtime { uint32_t cleaning_thread_access; }; -static inline void ocf_metadata_set_shutdown_status(ocf_cache_t cache, +void ocf_metadata_set_shutdown_status(ocf_cache_t cache, enum ocf_metadata_shutdown_status shutdown_status, - ocf_metadata_end_t cmpl, void *priv) -{ - cache->metadata.iface.set_shutdown_status(cache, shutdown_status, - cmpl, priv); -} + ocf_metadata_end_t cmpl, void *priv); -static inline void ocf_metadata_load_superblock(ocf_cache_t cache, - ocf_metadata_end_t cmpl, void *priv) -{ - cache->metadata.iface.load_superblock(cache, cmpl, priv); -} +void ocf_metadata_load_superblock(ocf_cache_t cache, + ocf_metadata_end_t cmpl, void *priv); -static inline void ocf_metadata_flush_superblock(ocf_cache_t cache, - ocf_metadata_end_t cmpl, void *priv) -{ - cache->metadata.iface.flush_superblock(cache, cmpl, priv); -} +void ocf_metadata_flush_superblock(ocf_cache_t cache, + ocf_metadata_end_t cmpl, void *priv); #endif /* METADATA_SUPERBLOCK_H_ */