1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-11-11 23:22:05 +03:00
Zdenek Kabelac 2021-04-03 21:49:37 +02:00
parent 12949ea886
commit a8480f0f6e
5 changed files with 47 additions and 25 deletions

View File

@ -247,11 +247,11 @@ bad:
* Maintain backward compatibility with older versions that did not
* accept a 'min_num_bits' argument to dm_bitset_parse_list().
*/
DM_EXPORT_SYMBOL(dm_bitset_parse_list, 1_02_129)
dm_bitset_t dm_bitset_parse_list_v1_02_129(const char *str, struct dm_pool *mem);
dm_bitset_t dm_bitset_parse_list_v1_02_129(const char *str, struct dm_pool *mem)
{
return dm_bitset_parse_list(str, mem, 0);
}
DM_EXPORT_SYMBOL(dm_bitset_parse_list, 1_02_129);
#endif

View File

@ -709,7 +709,8 @@ int dm_format_dev(char *buf, int bufsize, uint32_t dev_major,
return 1;
}
int dm_task_get_info(struct dm_task *dmt, struct dm_info *info)
DM_EXPORT_NEW_SYMBOL(int, dm_task_get_info, 1_02_97)
(struct dm_task *dmt, struct dm_info *info)
{
if (!dmt->dmi.v4)
return 0;
@ -2210,8 +2211,8 @@ void dm_lib_exit(void)
* no code in this file accidentally calls it.
*/
DM_EXPORT_SYMBOL_BASE(dm_task_get_info)
int dm_task_get_info_base(struct dm_task *dmt, struct dm_info *info);
DM_EXPORT_SYMBOL_BASE(dm_task_get_info);
int dm_task_get_info_base(struct dm_task *dmt, struct dm_info *info)
{
struct dm_info new_info;

View File

@ -3311,15 +3311,16 @@ int dm_tree_node_add_raid_target_with_params_v2(struct dm_tree_node *node,
return 1;
}
int dm_tree_node_add_cache_target(struct dm_tree_node *node,
uint64_t size,
uint64_t feature_flags, /* DM_CACHE_FEATURE_* */
const char *metadata_uuid,
const char *data_uuid,
const char *origin_uuid,
const char *policy_name,
const struct dm_config_node *policy_settings,
uint32_t data_block_size)
DM_EXPORT_NEW_SYMBOL(int, dm_tree_node_add_cache_target, 1_02_138)
(struct dm_tree_node *node,
uint64_t size,
uint64_t feature_flags, /* DM_CACHE_FEATURE_* */
const char *metadata_uuid,
const char *data_uuid,
const char *origin_uuid,
const char *policy_name,
const struct dm_config_node *policy_settings,
uint32_t data_block_size)
{
struct dm_config_node *cn;
struct load_segment *seg;
@ -3858,8 +3859,8 @@ void dm_tree_node_set_callback(struct dm_tree_node *dnode,
*/
/* Backward compatible dm_tree_node_size_changed() implementations. */
DM_EXPORT_SYMBOL_BASE(dm_tree_node_size_changed)
int dm_tree_node_size_changed_base(const struct dm_tree_node *dnode);
DM_EXPORT_SYMBOL_BASE(dm_tree_node_size_changed);
int dm_tree_node_size_changed_base(const struct dm_tree_node *dnode)
{
/* Base does not make difference between smaller and bigger */
@ -3874,6 +3875,7 @@ int dm_tree_node_size_changed_base(const struct dm_tree_node *dnode)
* the new function dm_tree_node_add_cache_target which detects unknown
* feature flags and returns error for them.
*/
DM_EXPORT_SYMBOL_BASE(dm_tree_node_add_cache_target)
int dm_tree_node_add_cache_target_base(struct dm_tree_node *node,
uint64_t size,
uint64_t feature_flags, /* DM_CACHE_FEATURE_* */
@ -3883,7 +3885,6 @@ int dm_tree_node_add_cache_target_base(struct dm_tree_node *node,
const char *policy_name,
const struct dm_config_node *policy_settings,
uint32_t data_block_size);
DM_EXPORT_SYMBOL_BASE(dm_tree_node_add_cache_target);
int dm_tree_node_add_cache_target_base(struct dm_tree_node *node,
uint64_t size,
uint64_t feature_flags,

View File

@ -2011,10 +2011,11 @@ out:
return r;
}
int dm_stats_create_region(struct dm_stats *dms, uint64_t *region_id,
uint64_t start, uint64_t len, int64_t step,
int precise, struct dm_histogram *bounds,
const char *program_id, const char *user_data)
DM_EXPORT_NEW_SYMBOL(int, dm_stats_create_region, 1_02_107)
(struct dm_stats *dms, uint64_t *region_id,
uint64_t start, uint64_t len, int64_t step,
int precise, struct dm_histogram *bounds,
const char *program_id, const char *user_data)
{
char *hist_arg = NULL;
int r = 0;
@ -2037,6 +2038,7 @@ out:
return r;
}
static void _stats_clear_group_regions(struct dm_stats *dms, uint64_t group_id)
{
struct dm_stats_group *group;
@ -5070,6 +5072,8 @@ int dm_stats_start_filemapd(int fd, uint64_t group_id, const char *path,
*/
#if defined(GNU_SYMVER)
DM_EXPORT_SYMBOL(dm_stats_create_region, 1_02_106)
int dm_stats_create_region_v1_02_106(struct dm_stats *dms, uint64_t *region_id,
uint64_t start, uint64_t len, int64_t step,
int precise, const char *program_id,
@ -5083,8 +5087,8 @@ int dm_stats_create_region_v1_02_106(struct dm_stats *dms, uint64_t *region_id,
return _stats_create_region(dms, region_id, start, len, step, precise,
NULL, program_id, aux_data);
}
DM_EXPORT_SYMBOL(dm_stats_create_region, 1_02_106);
DM_EXPORT_SYMBOL(dm_stats_create_region, 1_02_104)
int dm_stats_create_region_v1_02_104(struct dm_stats *dms, uint64_t *region_id,
uint64_t start, uint64_t len, int64_t step,
const char *program_id, const char *aux_data);
@ -5096,5 +5100,4 @@ int dm_stats_create_region_v1_02_104(struct dm_stats *dms, uint64_t *region_id,
return _stats_create_region(dms, region_id, start, len, step, 0, NULL,
program_id, aux_data);
}
DM_EXPORT_SYMBOL(dm_stats_create_region, 1_02_104);
#endif

View File

@ -22,6 +22,7 @@
/*
* Symbol export control macros
*
* DM_EXPORT_NEW_SYMBOL(rettype, func, ver)
* DM_EXPORT_SYMBOL(func,ver)
* DM_EXPORT_SYMBOL_BASE(func,ver)
*
@ -40,19 +41,19 @@
* compatibility version should be enclosed in '#if defined(GNU_SYMVER)',
* for example:
*
* int dm_foo(int bar)
* DM_EXPORT_NEW_SYMBOL(int, dm_foo, 1_02_107)(int bar)
* {
* return bar;
* }
*
* #if defined(__GNUC__)
* #if defined(GNU_SYMVER)
* // Backward compatible dm_foo() version 1.02.104
* DM_EXPORT_SYMBOL(dm_foo,1_02_104)
* int dm_foo_v1_02_104(void);
* int dm_foo_v1_02_104(void)
* {
* return 0;
* }
* DM_EXPORT_SYMBOL(dm_foo,1_02_104)
* #endif
*
* A prototype for the compatibility version is required as these
@ -63,11 +64,27 @@
* versioning: it must never be used for new symbols.
*/
#if defined(GNU_SYMVER)
# ifdef __has_attribute
# if __has_attribute(symver)
# define DM_EXPORT_NEW_SYMBOL(rettype, func, ver) \
__attribute__((__symver__( #func "@@DM_" #ver ))) \
__typeof__(func) func ##_v ##ver; \
rettype func ##_v ##ver
# define DM_EXPORT_SYMBOL(func, ver) \
__attribute__((__symver__( #func "@DM_" #ver )))
# define DM_EXPORT_SYMBOL_BASE(func) \
__attribute__((__symver__( #func "@Base" )))
# endif
# endif
#ifndef DM_EXPORT_NEW_SYMBOL
#define DM_EXPORT_NEW_SYMBOL(rettype, func, ver) rettype func
#define DM_EXPORT_SYMBOL(func, ver) \
__asm__(".symver " #func "_v" #ver ", " #func "@DM_" #ver )
__asm__(".symver " #func "_v" #ver ", " #func "@DM_" #ver );
#define DM_EXPORT_SYMBOL_BASE(func) \
__asm__(".symver " #func "_base, " #func "@Base" )
__asm__(".symver " #func "_base, " #func "@Base" );
#endif
#else
#define DM_EXPORT_NEW_SYMBOL(rettype, func, ver) rettype func
#define DM_EXPORT_SYMBOL(func, ver)
#define DM_EXPORT_SYMBOL_BASE(func)
#endif