2021-11-08 15:44:04 +00:00
|
|
|
<abi-corpus version='2.0' architecture='elf-amd-x86_64' soname='libuutil.so.3'>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-needed>
|
|
|
|
<dependency name='libc.so.6'/>
|
|
|
|
<dependency name='ld-linux-x86-64.so.2'/>
|
|
|
|
</elf-needed>
|
|
|
|
<elf-function-symbols>
|
|
|
|
<elf-symbol name='_sol_getmntent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_add_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_add_16_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_add_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_add_32_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_add_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_add_64_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_add_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_add_8_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_add_char' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_add_char_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_add_int' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_add_int_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_add_long' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_add_long_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_add_ptr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_add_ptr_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_add_short' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_add_short_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_and_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_and_16_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_and_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_and_32_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_and_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_and_64_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_and_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_and_8_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_and_uchar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_and_uchar_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_and_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_and_uint_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_and_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_and_ulong_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_and_ushort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_and_ushort_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_cas_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_cas_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_cas_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_cas_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_cas_ptr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_cas_uchar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_cas_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_cas_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_cas_ushort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_clear_long_excl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_dec_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_dec_16_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_dec_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_dec_32_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_dec_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_dec_64_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_dec_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_dec_8_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_dec_uchar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_dec_uchar_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_dec_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_dec_uint_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_dec_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_dec_ulong_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_dec_ushort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_dec_ushort_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_inc_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_inc_16_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_inc_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_inc_32_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_inc_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_inc_64_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_inc_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_inc_8_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_inc_uchar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_inc_uchar_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_inc_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_inc_uint_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_inc_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_inc_ulong_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_inc_ushort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_inc_ushort_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_or_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_or_16_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_or_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_or_32_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_or_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_or_64_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_or_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_or_8_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_or_uchar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_or_uchar_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_or_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_or_uint_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_or_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_or_ulong_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_or_ushort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_or_ushort_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_set_long_excl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_sub_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_sub_16_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_sub_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_sub_32_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_sub_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_sub_64_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_sub_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_sub_8_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_sub_char' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_sub_char_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_sub_int' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_sub_int_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_sub_long' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_sub_long_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_sub_ptr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_sub_ptr_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_sub_short' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_sub_short_nv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
<elf-symbol name='atomic_swap_16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_swap_32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_swap_64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_swap_8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='atomic_swap_ptr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_swap_uchar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_swap_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_swap_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='atomic_swap_ushort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_destroy_nodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_insert_here' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_is_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_last' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_nearest' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_numnodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_swap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_update_gt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_update_lt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='avl_walk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='get_system_hostid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='getexecname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='getextmntent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='getmntany' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='getzoneid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='libspl_assertf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2024-05-10 01:26:11 +00:00
|
|
|
<elf-symbol name='libspl_backtrace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2022-02-03 22:35:38 +00:00
|
|
|
<elf-symbol name='libspl_set_assert_ok' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='list_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_insert_after' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_insert_before' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_insert_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_insert_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_is_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_link_active' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_link_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_link_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_move_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_prev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_remove_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_remove_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='list_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='membar_consumer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='membar_enter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='membar_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='membar_producer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<elf-symbol name='membar_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
<elf-symbol name='mkdirp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='print_timestamp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='spl_pagesize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='strlcat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='strlcpy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_last' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_lockup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_nearest_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_nearest_prev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_node_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_numnodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_pool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_pool_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_prev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_teardown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_walk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_walk_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_walk_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_avl_walk_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_check_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_error' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_insert_after' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_insert_before' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_last' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_lockup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_nearest_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_nearest_prev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_node_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_node_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_numnodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_pool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_pool_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_prev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_teardown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_walk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_walk_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_walk_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_list_walk_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_memdup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_msprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_panic' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_set_error' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_strbw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_strcaseeq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_strdup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_streq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_strerror' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_strndup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
<elf-symbol name='uu_zalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
|
|
</elf-function-symbols>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libspl/assert.c' language='LANG_C99'>
|
2024-05-10 01:26:11 +00:00
|
|
|
<typedef-decl name='__pid_t' type-id='95e97e5e' id='3629bad8'/>
|
|
|
|
<function-decl name='libspl_backtrace' mangled-name='libspl_backtrace' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='libspl_backtrace'>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='getpid' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<return type-id='3629bad8'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='gettid' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<return type-id='3629bad8'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='prctl' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<parameter is-variadic='yes'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
2022-02-03 22:35:38 +00:00
|
|
|
<function-decl name='libspl_set_assert_ok' mangled-name='libspl_set_assert_ok' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='libspl_set_assert_ok'>
|
Improve zpool status output, list all affected datasets
Currently, determining which datasets are affected by corruption is
a manual process.
The primary difficulty in reporting the list of affected snapshots is
that since the error was initially found, the snapshot where the error
originally occurred in, may have been deleted. To solve this issue, we
add the ID of the head dataset of the original snapshot which the error
was detected in, to the stored error report. Then any time a filesystem
is deleted, the errors associated with it are deleted as well. Any time
a clone promote occurs, we modify reports associated with the original
head to refer to the new head. The stored error reports are identified
by this head ID, the birth time of the block which the error occurred
in, as well as some information about the error itself are also stored.
Once this information is stored, we can find the set of datasets
affected by an error by walking back the list of snapshots in the given
head until we find one with the appropriate birth txg, and then traverse
through the snapshots of the clone family, terminating a branch if the
block was replaced in a given snapshot. Then we report this information
back to libzfs, and to the zpool status command, where it is displayed
as follows:
pool: test
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub repaired 0B in 00:00:00 with 800 errors on Fri Dec 3
08:27:57 2021
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
sdb ONLINE 0 0 1.58K
errors: Permanent errors have been detected in the following files:
test@1:/test.0.0
/test/test.0.0
/test/1clone/test.0.0
A new feature flag is introduced to mark the presence of this change, as
well as promotion and backwards compatibility logic. This is an updated
version of #9175. Rebase required fixing the tests, updating the ABI of
libzfs, updating the man pages, fixing bugs, fixing the error returns,
and updating the old on-disk error logs to the new format when
activating the feature.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Co-authored-by: TulsiJain <tulsi.jain@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #9175
Closes #12812
2022-04-26 00:25:42 +00:00
|
|
|
<parameter type-id='c19b74c3' name='val'/>
|
2022-02-03 22:35:38 +00:00
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
2021-07-18 15:55:46 +00:00
|
|
|
</abi-instr>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libspl/atomic.c' language='LANG_C99'>
|
2021-11-08 15:44:04 +00:00
|
|
|
<typedef-decl name='int16_t' type-id='03896e23' id='23bd8cb5'/>
|
|
|
|
<typedef-decl name='int32_t' type-id='33f57a65' id='3ff5601b'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<typedef-decl name='uint16_t' type-id='253c2d2a' id='149c6638'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<typedef-decl name='__int16_t' type-id='a2185560' id='03896e23'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<typedef-decl name='__uint16_t' type-id='8efea9e5' id='253c2d2a'/>
|
|
|
|
<typedef-decl name='__int32_t' type-id='95e97e5e' id='33f57a65'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<typedef-decl name='__ssize_t' type-id='bd54fe1a' id='41060289'/>
|
|
|
|
<typedef-decl name='ssize_t' type-id='41060289' id='79a0948f'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<qualified-type-def type-id='149c6638' volatile='yes' id='5120c5f7'/>
|
|
|
|
<pointer-type-def type-id='5120c5f7' size-in-bits='64' id='93977ae7'/>
|
|
|
|
<qualified-type-def type-id='8f92235e' volatile='yes' id='430e0681'/>
|
|
|
|
<pointer-type-def type-id='430e0681' size-in-bits='64' id='3a147f31'/>
|
|
|
|
<qualified-type-def type-id='b96825af' volatile='yes' id='84ff7d66'/>
|
|
|
|
<pointer-type-def type-id='84ff7d66' size-in-bits='64' id='aa323ea4'/>
|
|
|
|
<qualified-type-def type-id='ee1f298e' volatile='yes' id='6f7e09cb'/>
|
|
|
|
<pointer-type-def type-id='6f7e09cb' size-in-bits='64' id='64698d33'/>
|
|
|
|
<qualified-type-def type-id='48b5725f' volatile='yes' id='b0b3cbf9'/>
|
|
|
|
<pointer-type-def type-id='b0b3cbf9' size-in-bits='64' id='fe09dd29'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_inc_8' mangled-name='atomic_inc_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_8'>
|
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_inc_16' mangled-name='atomic_inc_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_16'>
|
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_inc_32' mangled-name='atomic_inc_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_32'>
|
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_inc_ulong' mangled-name='atomic_inc_ulong' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_ulong'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='64698d33' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_dec_8' mangled-name='atomic_dec_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_8'>
|
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_dec_16' mangled-name='atomic_dec_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_16'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_dec_32' mangled-name='atomic_dec_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_32'>
|
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_dec_ulong' mangled-name='atomic_dec_ulong' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_ulong'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='64698d33' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
Improve zpool status output, list all affected datasets
Currently, determining which datasets are affected by corruption is
a manual process.
The primary difficulty in reporting the list of affected snapshots is
that since the error was initially found, the snapshot where the error
originally occurred in, may have been deleted. To solve this issue, we
add the ID of the head dataset of the original snapshot which the error
was detected in, to the stored error report. Then any time a filesystem
is deleted, the errors associated with it are deleted as well. Any time
a clone promote occurs, we modify reports associated with the original
head to refer to the new head. The stored error reports are identified
by this head ID, the birth time of the block which the error occurred
in, as well as some information about the error itself are also stored.
Once this information is stored, we can find the set of datasets
affected by an error by walking back the list of snapshots in the given
head until we find one with the appropriate birth txg, and then traverse
through the snapshots of the clone family, terminating a branch if the
block was replaced in a given snapshot. Then we report this information
back to libzfs, and to the zpool status command, where it is displayed
as follows:
pool: test
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub repaired 0B in 00:00:00 with 800 errors on Fri Dec 3
08:27:57 2021
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
sdb ONLINE 0 0 1.58K
errors: Permanent errors have been detected in the following files:
test@1:/test.0.0
/test/test.0.0
/test/1clone/test.0.0
A new feature flag is introduced to mark the presence of this change, as
well as promotion and backwards compatibility logic. This is an updated
version of #9175. Rebase required fixing the tests, updating the ABI of
libzfs, updating the man pages, fixing bugs, fixing the error returns,
and updating the old on-disk error logs to the new format when
activating the feature.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Co-authored-by: TulsiJain <tulsi.jain@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #9175
Closes #12812
2022-04-26 00:25:42 +00:00
|
|
|
<function-decl name='atomic_add_ptr' mangled-name='atomic_add_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_ptr'>
|
|
|
|
<parameter type-id='fe09dd29' name='target'/>
|
|
|
|
<parameter type-id='79a0948f' name='bits'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_add_8' mangled-name='atomic_add_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_8'>
|
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
|
|
|
<parameter type-id='ee31ee44' name='bits'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_add_16' mangled-name='atomic_add_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_16'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='23bd8cb5' name='bits'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_add_32' mangled-name='atomic_add_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_32'>
|
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
|
|
|
<parameter type-id='3ff5601b' name='bits'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
Improve zpool status output, list all affected datasets
Currently, determining which datasets are affected by corruption is
a manual process.
The primary difficulty in reporting the list of affected snapshots is
that since the error was initially found, the snapshot where the error
originally occurred in, may have been deleted. To solve this issue, we
add the ID of the head dataset of the original snapshot which the error
was detected in, to the stored error report. Then any time a filesystem
is deleted, the errors associated with it are deleted as well. Any time
a clone promote occurs, we modify reports associated with the original
head to refer to the new head. The stored error reports are identified
by this head ID, the birth time of the block which the error occurred
in, as well as some information about the error itself are also stored.
Once this information is stored, we can find the set of datasets
affected by an error by walking back the list of snapshots in the given
head until we find one with the appropriate birth txg, and then traverse
through the snapshots of the clone family, terminating a branch if the
block was replaced in a given snapshot. Then we report this information
back to libzfs, and to the zpool status command, where it is displayed
as follows:
pool: test
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub repaired 0B in 00:00:00 with 800 errors on Fri Dec 3
08:27:57 2021
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
sdb ONLINE 0 0 1.58K
errors: Permanent errors have been detected in the following files:
test@1:/test.0.0
/test/test.0.0
/test/1clone/test.0.0
A new feature flag is introduced to mark the presence of this change, as
well as promotion and backwards compatibility logic. This is an updated
version of #9175. Rebase required fixing the tests, updating the ABI of
libzfs, updating the man pages, fixing bugs, fixing the error returns,
and updating the old on-disk error logs to the new format when
activating the feature.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Co-authored-by: TulsiJain <tulsi.jain@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #9175
Closes #12812
2022-04-26 00:25:42 +00:00
|
|
|
<function-decl name='atomic_sub_ptr' mangled-name='atomic_sub_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_ptr'>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='fe09dd29' name='target'/>
|
|
|
|
<parameter type-id='79a0948f' name='bits'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_sub_8' mangled-name='atomic_sub_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_8'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='ee31ee44' name='bits'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_sub_16' mangled-name='atomic_sub_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_16'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
|
|
|
<parameter type-id='23bd8cb5' name='bits'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_sub_32' mangled-name='atomic_sub_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_32'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
|
|
|
<parameter type-id='3ff5601b' name='bits'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_or_8' mangled-name='atomic_or_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_8'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='b96825af' name='bits'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_or_16' mangled-name='atomic_or_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_16'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='149c6638' name='bits'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_or_32' mangled-name='atomic_or_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_32'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
|
|
|
<parameter type-id='8f92235e' name='bits'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_or_ulong' mangled-name='atomic_or_ulong' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_ulong'>
|
|
|
|
<parameter type-id='64698d33' name='target'/>
|
|
|
|
<parameter type-id='ee1f298e' name='bits'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_and_8' mangled-name='atomic_and_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_8'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
|
|
|
<parameter type-id='b96825af' name='bits'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_and_16' mangled-name='atomic_and_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_16'>
|
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
|
|
|
<parameter type-id='149c6638' name='bits'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_and_32' mangled-name='atomic_and_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_32'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
|
|
|
<parameter type-id='8f92235e' name='bits'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_and_ulong' mangled-name='atomic_and_ulong' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_ulong'>
|
|
|
|
<parameter type-id='64698d33' name='target'/>
|
|
|
|
<parameter type-id='ee1f298e' name='bits'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_inc_8_nv' mangled-name='atomic_inc_8_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_8_nv'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='b96825af'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_inc_16_nv' mangled-name='atomic_inc_16_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_16_nv'>
|
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
|
|
|
<return type-id='149c6638'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_inc_32_nv' mangled-name='atomic_inc_32_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_32_nv'>
|
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
|
|
|
<return type-id='8f92235e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_inc_ulong_nv' mangled-name='atomic_inc_ulong_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_inc_ulong_nv'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='64698d33' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='ee1f298e'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_dec_8_nv' mangled-name='atomic_dec_8_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_8_nv'>
|
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
|
|
|
<return type-id='b96825af'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_dec_16_nv' mangled-name='atomic_dec_16_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_16_nv'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='149c6638'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_dec_32_nv' mangled-name='atomic_dec_32_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_32_nv'>
|
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
|
|
|
<return type-id='8f92235e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_dec_ulong_nv' mangled-name='atomic_dec_ulong_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_dec_ulong_nv'>
|
|
|
|
<parameter type-id='64698d33' name='target'/>
|
|
|
|
<return type-id='ee1f298e'/>
|
|
|
|
</function-decl>
|
Improve zpool status output, list all affected datasets
Currently, determining which datasets are affected by corruption is
a manual process.
The primary difficulty in reporting the list of affected snapshots is
that since the error was initially found, the snapshot where the error
originally occurred in, may have been deleted. To solve this issue, we
add the ID of the head dataset of the original snapshot which the error
was detected in, to the stored error report. Then any time a filesystem
is deleted, the errors associated with it are deleted as well. Any time
a clone promote occurs, we modify reports associated with the original
head to refer to the new head. The stored error reports are identified
by this head ID, the birth time of the block which the error occurred
in, as well as some information about the error itself are also stored.
Once this information is stored, we can find the set of datasets
affected by an error by walking back the list of snapshots in the given
head until we find one with the appropriate birth txg, and then traverse
through the snapshots of the clone family, terminating a branch if the
block was replaced in a given snapshot. Then we report this information
back to libzfs, and to the zpool status command, where it is displayed
as follows:
pool: test
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub repaired 0B in 00:00:00 with 800 errors on Fri Dec 3
08:27:57 2021
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
sdb ONLINE 0 0 1.58K
errors: Permanent errors have been detected in the following files:
test@1:/test.0.0
/test/test.0.0
/test/1clone/test.0.0
A new feature flag is introduced to mark the presence of this change, as
well as promotion and backwards compatibility logic. This is an updated
version of #9175. Rebase required fixing the tests, updating the ABI of
libzfs, updating the man pages, fixing bugs, fixing the error returns,
and updating the old on-disk error logs to the new format when
activating the feature.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Co-authored-by: TulsiJain <tulsi.jain@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #9175
Closes #12812
2022-04-26 00:25:42 +00:00
|
|
|
<function-decl name='atomic_add_ptr_nv' mangled-name='atomic_add_ptr_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_ptr_nv'>
|
|
|
|
<parameter type-id='fe09dd29' name='target'/>
|
|
|
|
<parameter type-id='79a0948f' name='bits'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_add_8_nv' mangled-name='atomic_add_8_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_8_nv'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
|
|
|
<parameter type-id='ee31ee44' name='bits'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='b96825af'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_add_16_nv' mangled-name='atomic_add_16_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_16_nv'>
|
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
|
|
|
<parameter type-id='23bd8cb5' name='bits'/>
|
|
|
|
<return type-id='149c6638'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_add_32_nv' mangled-name='atomic_add_32_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_32_nv'>
|
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
|
|
|
<parameter type-id='3ff5601b' name='bits'/>
|
|
|
|
<return type-id='8f92235e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_add_long_nv' mangled-name='atomic_add_long_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_add_long_nv'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='64698d33' name='target'/>
|
|
|
|
<parameter type-id='bd54fe1a' name='bits'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='ee1f298e'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
Improve zpool status output, list all affected datasets
Currently, determining which datasets are affected by corruption is
a manual process.
The primary difficulty in reporting the list of affected snapshots is
that since the error was initially found, the snapshot where the error
originally occurred in, may have been deleted. To solve this issue, we
add the ID of the head dataset of the original snapshot which the error
was detected in, to the stored error report. Then any time a filesystem
is deleted, the errors associated with it are deleted as well. Any time
a clone promote occurs, we modify reports associated with the original
head to refer to the new head. The stored error reports are identified
by this head ID, the birth time of the block which the error occurred
in, as well as some information about the error itself are also stored.
Once this information is stored, we can find the set of datasets
affected by an error by walking back the list of snapshots in the given
head until we find one with the appropriate birth txg, and then traverse
through the snapshots of the clone family, terminating a branch if the
block was replaced in a given snapshot. Then we report this information
back to libzfs, and to the zpool status command, where it is displayed
as follows:
pool: test
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub repaired 0B in 00:00:00 with 800 errors on Fri Dec 3
08:27:57 2021
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
sdb ONLINE 0 0 1.58K
errors: Permanent errors have been detected in the following files:
test@1:/test.0.0
/test/test.0.0
/test/1clone/test.0.0
A new feature flag is introduced to mark the presence of this change, as
well as promotion and backwards compatibility logic. This is an updated
version of #9175. Rebase required fixing the tests, updating the ABI of
libzfs, updating the man pages, fixing bugs, fixing the error returns,
and updating the old on-disk error logs to the new format when
activating the feature.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Co-authored-by: TulsiJain <tulsi.jain@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #9175
Closes #12812
2022-04-26 00:25:42 +00:00
|
|
|
<function-decl name='atomic_sub_ptr_nv' mangled-name='atomic_sub_ptr_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_ptr_nv'>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='fe09dd29' name='target'/>
|
|
|
|
<parameter type-id='79a0948f' name='bits'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_sub_8_nv' mangled-name='atomic_sub_8_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_8_nv'>
|
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
|
|
|
<parameter type-id='ee31ee44' name='bits'/>
|
|
|
|
<return type-id='b96825af'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_sub_16_nv' mangled-name='atomic_sub_16_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_16_nv'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
|
|
|
<parameter type-id='23bd8cb5' name='bits'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='149c6638'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_sub_32_nv' mangled-name='atomic_sub_32_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_32_nv'>
|
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
|
|
|
<parameter type-id='3ff5601b' name='bits'/>
|
|
|
|
<return type-id='8f92235e'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_sub_long_nv' mangled-name='atomic_sub_long_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_sub_long_nv'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='64698d33' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='bd54fe1a' name='bits'/>
|
|
|
|
<return type-id='ee1f298e'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_or_8_nv' mangled-name='atomic_or_8_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_8_nv'>
|
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
|
|
|
<parameter type-id='b96825af' name='bits'/>
|
|
|
|
<return type-id='b96825af'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_or_16_nv' mangled-name='atomic_or_16_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_16_nv'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='149c6638' name='bits'/>
|
|
|
|
<return type-id='149c6638'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_or_32_nv' mangled-name='atomic_or_32_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_32_nv'>
|
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
|
|
|
<parameter type-id='8f92235e' name='bits'/>
|
|
|
|
<return type-id='8f92235e'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_or_ulong_nv' mangled-name='atomic_or_ulong_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_or_ulong_nv'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='64698d33' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='ee1f298e' name='bits'/>
|
|
|
|
<return type-id='ee1f298e'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_and_8_nv' mangled-name='atomic_and_8_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_8_nv'>
|
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
|
|
|
<parameter type-id='b96825af' name='bits'/>
|
|
|
|
<return type-id='b96825af'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_and_16_nv' mangled-name='atomic_and_16_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_16_nv'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='149c6638' name='bits'/>
|
|
|
|
<return type-id='149c6638'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_and_32_nv' mangled-name='atomic_and_32_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_32_nv'>
|
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
|
|
|
<parameter type-id='8f92235e' name='bits'/>
|
|
|
|
<return type-id='8f92235e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_and_ulong_nv' mangled-name='atomic_and_ulong_nv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_and_ulong_nv'>
|
|
|
|
<parameter type-id='64698d33' name='target'/>
|
|
|
|
<parameter type-id='ee1f298e' name='bits'/>
|
|
|
|
<return type-id='ee1f298e'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
Improve zpool status output, list all affected datasets
Currently, determining which datasets are affected by corruption is
a manual process.
The primary difficulty in reporting the list of affected snapshots is
that since the error was initially found, the snapshot where the error
originally occurred in, may have been deleted. To solve this issue, we
add the ID of the head dataset of the original snapshot which the error
was detected in, to the stored error report. Then any time a filesystem
is deleted, the errors associated with it are deleted as well. Any time
a clone promote occurs, we modify reports associated with the original
head to refer to the new head. The stored error reports are identified
by this head ID, the birth time of the block which the error occurred
in, as well as some information about the error itself are also stored.
Once this information is stored, we can find the set of datasets
affected by an error by walking back the list of snapshots in the given
head until we find one with the appropriate birth txg, and then traverse
through the snapshots of the clone family, terminating a branch if the
block was replaced in a given snapshot. Then we report this information
back to libzfs, and to the zpool status command, where it is displayed
as follows:
pool: test
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub repaired 0B in 00:00:00 with 800 errors on Fri Dec 3
08:27:57 2021
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
sdb ONLINE 0 0 1.58K
errors: Permanent errors have been detected in the following files:
test@1:/test.0.0
/test/test.0.0
/test/1clone/test.0.0
A new feature flag is introduced to mark the presence of this change, as
well as promotion and backwards compatibility logic. This is an updated
version of #9175. Rebase required fixing the tests, updating the ABI of
libzfs, updating the man pages, fixing bugs, fixing the error returns,
and updating the old on-disk error logs to the new format when
activating the feature.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Co-authored-by: TulsiJain <tulsi.jain@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #9175
Closes #12812
2022-04-26 00:25:42 +00:00
|
|
|
<function-decl name='atomic_cas_ptr' mangled-name='atomic_cas_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_cas_ptr'>
|
|
|
|
<parameter type-id='fe09dd29' name='target'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='exp'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='des'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-07-18 15:55:46 +00:00
|
|
|
<function-decl name='atomic_cas_8' mangled-name='atomic_cas_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_cas_8'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
|
|
|
<parameter type-id='b96825af' name='exp'/>
|
|
|
|
<parameter type-id='b96825af' name='des'/>
|
|
|
|
<return type-id='b96825af'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_cas_16' mangled-name='atomic_cas_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_cas_16'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
|
|
|
<parameter type-id='149c6638' name='exp'/>
|
|
|
|
<parameter type-id='149c6638' name='des'/>
|
|
|
|
<return type-id='149c6638'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_cas_32' mangled-name='atomic_cas_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_cas_32'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
|
|
|
<parameter type-id='8f92235e' name='exp'/>
|
|
|
|
<parameter type-id='8f92235e' name='des'/>
|
|
|
|
<return type-id='8f92235e'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_cas_ulong' mangled-name='atomic_cas_ulong' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_cas_ulong'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='64698d33' name='target'/>
|
|
|
|
<parameter type-id='ee1f298e' name='exp'/>
|
|
|
|
<parameter type-id='ee1f298e' name='des'/>
|
|
|
|
<return type-id='ee1f298e'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='atomic_swap_8' mangled-name='atomic_swap_8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_swap_8'>
|
|
|
|
<parameter type-id='aa323ea4' name='target'/>
|
|
|
|
<parameter type-id='b96825af' name='bits'/>
|
|
|
|
<return type-id='b96825af'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_swap_16' mangled-name='atomic_swap_16' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_swap_16'>
|
|
|
|
<parameter type-id='93977ae7' name='target'/>
|
|
|
|
<parameter type-id='149c6638' name='bits'/>
|
|
|
|
<return type-id='149c6638'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_swap_32' mangled-name='atomic_swap_32' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_swap_32'>
|
|
|
|
<parameter type-id='3a147f31' name='target'/>
|
|
|
|
<parameter type-id='8f92235e' name='bits'/>
|
|
|
|
<return type-id='8f92235e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_swap_ulong' mangled-name='atomic_swap_ulong' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_swap_ulong'>
|
|
|
|
<parameter type-id='64698d33' name='target'/>
|
|
|
|
<parameter type-id='ee1f298e' name='bits'/>
|
|
|
|
<return type-id='ee1f298e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_swap_ptr' mangled-name='atomic_swap_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_swap_ptr'>
|
|
|
|
<parameter type-id='fe09dd29' name='target'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='bits'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_set_long_excl' mangled-name='atomic_set_long_excl' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_set_long_excl'>
|
|
|
|
<parameter type-id='64698d33' name='target'/>
|
|
|
|
<parameter type-id='3502e3ff' name='value'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='atomic_clear_long_excl' mangled-name='atomic_clear_long_excl' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_clear_long_excl'>
|
|
|
|
<parameter type-id='64698d33' name='target'/>
|
|
|
|
<parameter type-id='3502e3ff' name='value'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='membar_enter' mangled-name='membar_enter' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='membar_enter'>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='membar_producer' mangled-name='membar_producer' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='membar_producer'>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='membar_consumer' mangled-name='membar_consumer' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='membar_consumer'>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
2023-03-11 00:23:01 +00:00
|
|
|
<type-decl name='unsigned short int' size-in-bits='16' id='8efea9e5'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</abi-instr>
|
2024-05-10 01:26:11 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libspl/backtrace.c' language='LANG_C99'>
|
|
|
|
<qualified-type-def type-id='eaa32e2f' const='yes' id='83be723c'/>
|
|
|
|
<pointer-type-def type-id='83be723c' size-in-bits='64' id='7acd98a2'/>
|
|
|
|
<function-decl name='backtrace' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='63e171df'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='backtrace_symbols_fd' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='7acd98a2'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='write' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<return type-id='79a0948f'/>
|
|
|
|
</function-decl>
|
|
|
|
</abi-instr>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libspl/getexecname.c' language='LANG_C99'>
|
2021-07-18 15:55:46 +00:00
|
|
|
<function-decl name='getexecname' mangled-name='getexecname' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='getexecname'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='80f4b756'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</function-decl>
|
2023-03-11 00:23:01 +00:00
|
|
|
<function-decl name='getexecname_impl' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='26a90f95'/>
|
|
|
|
<return type-id='79a0948f'/>
|
|
|
|
</function-decl>
|
2021-06-03 17:04:13 +00:00
|
|
|
</abi-instr>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libspl/list.c' language='LANG_C99'>
|
2021-11-08 15:44:04 +00:00
|
|
|
<typedef-decl name='list_node_t' type-id='b0b5e45e' id='b21843b2'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<typedef-decl name='list_t' type-id='e824dae9' id='0899125f'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<class-decl name='list_node' size-in-bits='128' is-struct='yes' visibility='default' id='b0b5e45e'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='next' type-id='b03eadb4' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='prev' type-id='b03eadb4' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
2024-05-10 01:26:11 +00:00
|
|
|
<class-decl name='list' size-in-bits='192' is-struct='yes' visibility='default' id='e824dae9'>
|
2021-06-03 17:04:13 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='list_offset' type-id='b59d7dce' visibility='default'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</data-member>
|
2024-05-10 01:26:11 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='list_head' type-id='b0b5e45e' visibility='default'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
2021-08-31 19:26:30 +00:00
|
|
|
<pointer-type-def type-id='b0b5e45e' size-in-bits='64' id='b03eadb4'/>
|
|
|
|
<pointer-type-def type-id='b21843b2' size-in-bits='64' id='ccc38265'/>
|
|
|
|
<pointer-type-def type-id='0899125f' size-in-bits='64' id='352ec160'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_create' mangled-name='list_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_create'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='352ec160' name='list'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='b59d7dce' name='size'/>
|
|
|
|
<parameter type-id='b59d7dce' name='offset'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_destroy' mangled-name='list_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_destroy'>
|
|
|
|
<parameter type-id='352ec160' name='list'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_insert_after' mangled-name='list_insert_after' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_insert_after'>
|
|
|
|
<parameter type-id='352ec160' name='list'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='object'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='nobject'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_insert_before' mangled-name='list_insert_before' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_insert_before'>
|
|
|
|
<parameter type-id='352ec160' name='list'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='object'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='nobject'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_insert_head' mangled-name='list_insert_head' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_insert_head'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='352ec160' name='list'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='object'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_insert_tail' mangled-name='list_insert_tail' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_insert_tail'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='352ec160' name='list'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='object'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_remove' mangled-name='list_remove' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_remove'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='352ec160' name='list'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='eaa32e2f' name='object'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_remove_head' mangled-name='list_remove_head' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_remove_head'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='352ec160' name='list'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
|
|
|
<function-decl name='list_remove_tail' mangled-name='list_remove_tail' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_remove_tail'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='352ec160' name='list'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_head' mangled-name='list_head' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_head'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='352ec160' name='list'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_tail' mangled-name='list_tail' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_tail'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='352ec160' name='list'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='eaa32e2f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_next' mangled-name='list_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_next'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='352ec160' name='list'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='object'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='eaa32e2f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_prev' mangled-name='list_prev' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_prev'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='352ec160' name='list'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='object'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='eaa32e2f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_move_tail' mangled-name='list_move_tail' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_move_tail'>
|
|
|
|
<parameter type-id='352ec160' name='dst'/>
|
|
|
|
<parameter type-id='352ec160' name='src'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_link_replace' mangled-name='list_link_replace' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_link_replace'>
|
|
|
|
<parameter type-id='ccc38265' name='lold'/>
|
|
|
|
<parameter type-id='ccc38265' name='lnew'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_link_init' mangled-name='list_link_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_link_init'>
|
|
|
|
<parameter type-id='ccc38265' name='ln'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='list_link_active' mangled-name='list_link_active' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_link_active'>
|
|
|
|
<parameter type-id='ccc38265' name='ln'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='list_is_empty' mangled-name='list_is_empty' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_is_empty'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='352ec160' name='list'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='95e97e5e'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</function-decl>
|
2021-07-18 15:55:46 +00:00
|
|
|
</abi-instr>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libspl/mkdirp.c' language='LANG_C99'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<typedef-decl name='__mode_t' type-id='f0981eeb' id='e1c52942'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<typedef-decl name='mode_t' type-id='e1c52942' id='d50d396c'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<typedef-decl name='wchar_t' type-id='95e97e5e' id='928221d2'/>
|
|
|
|
<qualified-type-def type-id='26a90f95' restrict='yes' id='266fe297'/>
|
|
|
|
<qualified-type-def type-id='928221d2' const='yes' id='effb3702'/>
|
|
|
|
<pointer-type-def type-id='effb3702' size-in-bits='64' id='f077d3f8'/>
|
|
|
|
<qualified-type-def type-id='f077d3f8' restrict='yes' id='598aab80'/>
|
|
|
|
<pointer-type-def type-id='928221d2' size-in-bits='64' id='323d93c1'/>
|
|
|
|
<qualified-type-def type-id='323d93c1' restrict='yes' id='f1358bc3'/>
|
|
|
|
<function-decl name='calloc' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='strdup' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<return type-id='26a90f95'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='strrchr' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='26a90f95'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='access' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='__mbstowcs_chk' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='f1358bc3'/>
|
|
|
|
<parameter type-id='9d26089a'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<return type-id='b59d7dce'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='__wcstombs_chk' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='266fe297'/>
|
|
|
|
<parameter type-id='598aab80'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<return type-id='b59d7dce'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='mkdir' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='e1c52942'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
2021-07-18 15:55:46 +00:00
|
|
|
<function-decl name='mkdirp' mangled-name='mkdirp' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mkdirp'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='80f4b756' name='d'/>
|
|
|
|
<parameter type-id='d50d396c' name='mode'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</function-decl>
|
2021-08-31 19:26:30 +00:00
|
|
|
</abi-instr>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libspl/os/linux/getexecname.c' language='LANG_C99'>
|
|
|
|
<function-decl name='__readlink_chk' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='9d26089a'/>
|
|
|
|
<parameter type-id='266fe297'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<return type-id='79a0948f'/>
|
|
|
|
</function-decl>
|
|
|
|
</abi-instr>
|
|
|
|
<abi-instr address-size='64' path='lib/libspl/os/linux/gethostid.c' language='LANG_C99'>
|
|
|
|
<type-decl name='long long unsigned int' size-in-bits='64' id='3a47d82b'/>
|
|
|
|
<pointer-type-def type-id='26a90f95' size-in-bits='64' id='9b23c9ad'/>
|
|
|
|
<qualified-type-def type-id='9b23c9ad' restrict='yes' id='8c85230f'/>
|
|
|
|
<function-decl name='fclose' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='822cd80b'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='strtoull' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='9d26089a'/>
|
|
|
|
<parameter type-id='8c85230f'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='3a47d82b'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='getenv' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<return type-id='26a90f95'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='close' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='__open_too_many_args' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='__open_missing_mode' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='__read_chk' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<return type-id='79a0948f'/>
|
|
|
|
</function-decl>
|
2021-08-31 19:26:30 +00:00
|
|
|
<function-decl name='get_system_hostid' mangled-name='get_system_hostid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_system_hostid'>
|
|
|
|
<return type-id='7359adad'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<type-decl name='unsigned long int' size-in-bits='64' id='7359adad'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</abi-instr>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libspl/os/linux/getmntany.c' language='LANG_C99'>
|
2024-05-10 01:26:11 +00:00
|
|
|
<array-type-def dimensions='1' type-id='38b51b3c' size-in-bits='832' id='02b72c00'>
|
|
|
|
<subrange length='13' type-id='7359adad' id='487fded1'/>
|
|
|
|
</array-type-def>
|
2021-08-31 19:26:30 +00:00
|
|
|
<array-type-def dimensions='1' type-id='03085adc' size-in-bits='192' id='083f8d58'>
|
|
|
|
<subrange length='3' type-id='7359adad' id='56f209d2'/>
|
|
|
|
</array-type-def>
|
2024-05-10 01:26:11 +00:00
|
|
|
<class-decl name='__locale_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='23de8b96'/>
|
|
|
|
<array-type-def dimensions='1' type-id='80f4b756' size-in-bits='832' id='39e6f84a'>
|
|
|
|
<subrange length='13' type-id='7359adad' id='487fded1'/>
|
|
|
|
</array-type-def>
|
2021-11-08 15:44:04 +00:00
|
|
|
<class-decl name='mnttab' size-in-bits='256' is-struct='yes' visibility='default' id='1b055409'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='mnt_special' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='mnt_mountp' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
|
|
|
<var-decl name='mnt_fstype' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='192'>
|
|
|
|
<var-decl name='mnt_mntopts' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
2021-08-31 19:26:30 +00:00
|
|
|
<class-decl name='extmnttab' size-in-bits='320' is-struct='yes' visibility='default' id='0c544dc0'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='mnt_special' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='mnt_mountp' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
|
|
|
<var-decl name='mnt_fstype' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='192'>
|
|
|
|
<var-decl name='mnt_mntopts' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='256'>
|
|
|
|
<var-decl name='mnt_major' type-id='3502e3ff' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='288'>
|
|
|
|
<var-decl name='mnt_minor' type-id='3502e3ff' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
2023-03-11 00:23:01 +00:00
|
|
|
<class-decl name='mntent' size-in-bits='320' is-struct='yes' visibility='default' id='56fe4a37'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='mnt_fsname' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='mnt_dir' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
|
|
|
<var-decl name='mnt_type' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='192'>
|
|
|
|
<var-decl name='mnt_opts' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='256'>
|
|
|
|
<var-decl name='mnt_freq' type-id='95e97e5e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='288'>
|
|
|
|
<var-decl name='mnt_passno' type-id='95e97e5e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
Improve zpool status output, list all affected datasets
Currently, determining which datasets are affected by corruption is
a manual process.
The primary difficulty in reporting the list of affected snapshots is
that since the error was initially found, the snapshot where the error
originally occurred in, may have been deleted. To solve this issue, we
add the ID of the head dataset of the original snapshot which the error
was detected in, to the stored error report. Then any time a filesystem
is deleted, the errors associated with it are deleted as well. Any time
a clone promote occurs, we modify reports associated with the original
head to refer to the new head. The stored error reports are identified
by this head ID, the birth time of the block which the error occurred
in, as well as some information about the error itself are also stored.
Once this information is stored, we can find the set of datasets
affected by an error by walking back the list of snapshots in the given
head until we find one with the appropriate birth txg, and then traverse
through the snapshots of the clone family, terminating a branch if the
block was replaced in a given snapshot. Then we report this information
back to libzfs, and to the zpool status command, where it is displayed
as follows:
pool: test
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub repaired 0B in 00:00:00 with 800 errors on Fri Dec 3
08:27:57 2021
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
sdb ONLINE 0 0 1.58K
errors: Permanent errors have been detected in the following files:
test@1:/test.0.0
/test/test.0.0
/test/1clone/test.0.0
A new feature flag is introduced to mark the presence of this change, as
well as promotion and backwards compatibility logic. This is an updated
version of #9175. Rebase required fixing the tests, updating the ABI of
libzfs, updating the man pages, fixing bugs, fixing the error returns,
and updating the old on-disk error logs to the new format when
activating the feature.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Co-authored-by: TulsiJain <tulsi.jain@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #9175
Closes #12812
2022-04-26 00:25:42 +00:00
|
|
|
<class-decl name='stat64' size-in-bits='1152' is-struct='yes' visibility='default' id='0bbec9cd'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
Improve zpool status output, list all affected datasets
Currently, determining which datasets are affected by corruption is
a manual process.
The primary difficulty in reporting the list of affected snapshots is
that since the error was initially found, the snapshot where the error
originally occurred in, may have been deleted. To solve this issue, we
add the ID of the head dataset of the original snapshot which the error
was detected in, to the stored error report. Then any time a filesystem
is deleted, the errors associated with it are deleted as well. Any time
a clone promote occurs, we modify reports associated with the original
head to refer to the new head. The stored error reports are identified
by this head ID, the birth time of the block which the error occurred
in, as well as some information about the error itself are also stored.
Once this information is stored, we can find the set of datasets
affected by an error by walking back the list of snapshots in the given
head until we find one with the appropriate birth txg, and then traverse
through the snapshots of the clone family, terminating a branch if the
block was replaced in a given snapshot. Then we report this information
back to libzfs, and to the zpool status command, where it is displayed
as follows:
pool: test
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub repaired 0B in 00:00:00 with 800 errors on Fri Dec 3
08:27:57 2021
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
sdb ONLINE 0 0 1.58K
errors: Permanent errors have been detected in the following files:
test@1:/test.0.0
/test/test.0.0
/test/1clone/test.0.0
A new feature flag is introduced to mark the presence of this change, as
well as promotion and backwards compatibility logic. This is an updated
version of #9175. Rebase required fixing the tests, updating the ABI of
libzfs, updating the man pages, fixing bugs, fixing the error returns,
and updating the old on-disk error logs to the new format when
activating the feature.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Co-authored-by: TulsiJain <tulsi.jain@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #9175
Closes #12812
2022-04-26 00:25:42 +00:00
|
|
|
<var-decl name='st_dev' type-id='35ed8932' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
Improve zpool status output, list all affected datasets
Currently, determining which datasets are affected by corruption is
a manual process.
The primary difficulty in reporting the list of affected snapshots is
that since the error was initially found, the snapshot where the error
originally occurred in, may have been deleted. To solve this issue, we
add the ID of the head dataset of the original snapshot which the error
was detected in, to the stored error report. Then any time a filesystem
is deleted, the errors associated with it are deleted as well. Any time
a clone promote occurs, we modify reports associated with the original
head to refer to the new head. The stored error reports are identified
by this head ID, the birth time of the block which the error occurred
in, as well as some information about the error itself are also stored.
Once this information is stored, we can find the set of datasets
affected by an error by walking back the list of snapshots in the given
head until we find one with the appropriate birth txg, and then traverse
through the snapshots of the clone family, terminating a branch if the
block was replaced in a given snapshot. Then we report this information
back to libzfs, and to the zpool status command, where it is displayed
as follows:
pool: test
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub repaired 0B in 00:00:00 with 800 errors on Fri Dec 3
08:27:57 2021
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
sdb ONLINE 0 0 1.58K
errors: Permanent errors have been detected in the following files:
test@1:/test.0.0
/test/test.0.0
/test/1clone/test.0.0
A new feature flag is introduced to mark the presence of this change, as
well as promotion and backwards compatibility logic. This is an updated
version of #9175. Rebase required fixing the tests, updating the ABI of
libzfs, updating the man pages, fixing bugs, fixing the error returns,
and updating the old on-disk error logs to the new format when
activating the feature.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Co-authored-by: TulsiJain <tulsi.jain@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #9175
Closes #12812
2022-04-26 00:25:42 +00:00
|
|
|
<var-decl name='st_ino' type-id='71288a47' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
Improve zpool status output, list all affected datasets
Currently, determining which datasets are affected by corruption is
a manual process.
The primary difficulty in reporting the list of affected snapshots is
that since the error was initially found, the snapshot where the error
originally occurred in, may have been deleted. To solve this issue, we
add the ID of the head dataset of the original snapshot which the error
was detected in, to the stored error report. Then any time a filesystem
is deleted, the errors associated with it are deleted as well. Any time
a clone promote occurs, we modify reports associated with the original
head to refer to the new head. The stored error reports are identified
by this head ID, the birth time of the block which the error occurred
in, as well as some information about the error itself are also stored.
Once this information is stored, we can find the set of datasets
affected by an error by walking back the list of snapshots in the given
head until we find one with the appropriate birth txg, and then traverse
through the snapshots of the clone family, terminating a branch if the
block was replaced in a given snapshot. Then we report this information
back to libzfs, and to the zpool status command, where it is displayed
as follows:
pool: test
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub repaired 0B in 00:00:00 with 800 errors on Fri Dec 3
08:27:57 2021
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
sdb ONLINE 0 0 1.58K
errors: Permanent errors have been detected in the following files:
test@1:/test.0.0
/test/test.0.0
/test/1clone/test.0.0
A new feature flag is introduced to mark the presence of this change, as
well as promotion and backwards compatibility logic. This is an updated
version of #9175. Rebase required fixing the tests, updating the ABI of
libzfs, updating the man pages, fixing bugs, fixing the error returns,
and updating the old on-disk error logs to the new format when
activating the feature.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Co-authored-by: TulsiJain <tulsi.jain@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #9175
Closes #12812
2022-04-26 00:25:42 +00:00
|
|
|
<var-decl name='st_nlink' type-id='80f0b9df' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='192'>
|
|
|
|
<var-decl name='st_mode' type-id='e1c52942' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='224'>
|
|
|
|
<var-decl name='st_uid' type-id='cc5fcceb' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='256'>
|
|
|
|
<var-decl name='st_gid' type-id='d94ec6d9' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='288'>
|
|
|
|
<var-decl name='__pad0' type-id='95e97e5e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='320'>
|
|
|
|
<var-decl name='st_rdev' type-id='35ed8932' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='384'>
|
|
|
|
<var-decl name='st_size' type-id='79989e9c' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='448'>
|
|
|
|
<var-decl name='st_blksize' type-id='d3f10a7f' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='512'>
|
|
|
|
<var-decl name='st_blocks' type-id='4e711bf1' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='576'>
|
|
|
|
<var-decl name='st_atim' type-id='a9c79a1f' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='704'>
|
|
|
|
<var-decl name='st_mtim' type-id='a9c79a1f' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='832'>
|
|
|
|
<var-decl name='st_ctim' type-id='a9c79a1f' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='960'>
|
|
|
|
<var-decl name='__glibc_reserved' type-id='083f8d58' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
Improve zpool status output, list all affected datasets
Currently, determining which datasets are affected by corruption is
a manual process.
The primary difficulty in reporting the list of affected snapshots is
that since the error was initially found, the snapshot where the error
originally occurred in, may have been deleted. To solve this issue, we
add the ID of the head dataset of the original snapshot which the error
was detected in, to the stored error report. Then any time a filesystem
is deleted, the errors associated with it are deleted as well. Any time
a clone promote occurs, we modify reports associated with the original
head to refer to the new head. The stored error reports are identified
by this head ID, the birth time of the block which the error occurred
in, as well as some information about the error itself are also stored.
Once this information is stored, we can find the set of datasets
affected by an error by walking back the list of snapshots in the given
head until we find one with the appropriate birth txg, and then traverse
through the snapshots of the clone family, terminating a branch if the
block was replaced in a given snapshot. Then we report this information
back to libzfs, and to the zpool status command, where it is displayed
as follows:
pool: test
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub repaired 0B in 00:00:00 with 800 errors on Fri Dec 3
08:27:57 2021
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
sdb ONLINE 0 0 1.58K
errors: Permanent errors have been detected in the following files:
test@1:/test.0.0
/test/test.0.0
/test/1clone/test.0.0
A new feature flag is introduced to mark the presence of this change, as
well as promotion and backwards compatibility logic. This is an updated
version of #9175. Rebase required fixing the tests, updating the ABI of
libzfs, updating the man pages, fixing bugs, fixing the error returns,
and updating the old on-disk error logs to the new format when
activating the feature.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Co-authored-by: TulsiJain <tulsi.jain@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #9175
Closes #12812
2022-04-26 00:25:42 +00:00
|
|
|
<typedef-decl name='__dev_t' type-id='7359adad' id='35ed8932'/>
|
|
|
|
<typedef-decl name='__uid_t' type-id='f0981eeb' id='cc5fcceb'/>
|
|
|
|
<typedef-decl name='__gid_t' type-id='f0981eeb' id='d94ec6d9'/>
|
|
|
|
<typedef-decl name='__ino64_t' type-id='7359adad' id='71288a47'/>
|
|
|
|
<typedef-decl name='__nlink_t' type-id='7359adad' id='80f0b9df'/>
|
|
|
|
<typedef-decl name='__blksize_t' type-id='bd54fe1a' id='d3f10a7f'/>
|
|
|
|
<typedef-decl name='__blkcnt64_t' type-id='bd54fe1a' id='4e711bf1'/>
|
|
|
|
<typedef-decl name='__syscall_slong_t' type-id='bd54fe1a' id='03085adc'/>
|
2024-05-10 01:26:11 +00:00
|
|
|
<class-decl name='__locale_struct' size-in-bits='1856' is-struct='yes' visibility='default' id='90cc1ce3'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='__locales' type-id='02b72c00' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='832'>
|
|
|
|
<var-decl name='__ctype_b' type-id='31347b7a' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='896'>
|
|
|
|
<var-decl name='__ctype_tolower' type-id='6d60f45d' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='960'>
|
|
|
|
<var-decl name='__ctype_toupper' type-id='6d60f45d' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1024'>
|
|
|
|
<var-decl name='__names' type-id='39e6f84a' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
|
|
|
<typedef-decl name='__locale_t' type-id='f01e1813' id='b7ac9b5f'/>
|
|
|
|
<typedef-decl name='locale_t' type-id='b7ac9b5f' id='973a4f8d'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' id='a9c79a1f'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
2023-03-11 00:23:01 +00:00
|
|
|
<var-decl name='tv_sec' type-id='65eda9c0' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
2023-03-11 00:23:01 +00:00
|
|
|
<var-decl name='tv_nsec' type-id='03085adc' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
2023-03-11 00:23:01 +00:00
|
|
|
</class-decl>
|
2024-05-10 01:26:11 +00:00
|
|
|
<pointer-type-def type-id='23de8b96' size-in-bits='64' id='38b51b3c'/>
|
|
|
|
<pointer-type-def type-id='90cc1ce3' size-in-bits='64' id='f01e1813'/>
|
|
|
|
<qualified-type-def type-id='95e97e5e' const='yes' id='2448a865'/>
|
|
|
|
<pointer-type-def type-id='2448a865' size-in-bits='64' id='6d60f45d'/>
|
|
|
|
<qualified-type-def type-id='8efea9e5' const='yes' id='3beb2af4'/>
|
|
|
|
<pointer-type-def type-id='3beb2af4' size-in-bits='64' id='31347b7a'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<pointer-type-def type-id='0c544dc0' size-in-bits='64' id='394fc496'/>
|
|
|
|
<pointer-type-def type-id='56fe4a37' size-in-bits='64' id='b6b61d2f'/>
|
|
|
|
<qualified-type-def type-id='b6b61d2f' restrict='yes' id='3cad23cd'/>
|
|
|
|
<pointer-type-def type-id='1b055409' size-in-bits='64' id='9d424d31'/>
|
|
|
|
<pointer-type-def type-id='0bbec9cd' size-in-bits='64' id='62f7a03d'/>
|
|
|
|
<qualified-type-def type-id='62f7a03d' restrict='yes' id='f1cadedf'/>
|
2024-05-10 01:26:11 +00:00
|
|
|
<class-decl name='__locale_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='23de8b96'/>
|
|
|
|
<function-decl name='uselocale' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='973a4f8d'/>
|
|
|
|
<return type-id='973a4f8d'/>
|
|
|
|
</function-decl>
|
2023-03-11 00:23:01 +00:00
|
|
|
<function-decl name='getmntent_r' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='e75a27e9'/>
|
|
|
|
<parameter type-id='3cad23cd'/>
|
|
|
|
<parameter type-id='266fe297'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='b6b61d2f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='feof' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='822cd80b'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
2024-05-10 01:26:11 +00:00
|
|
|
<function-decl name='strerror_l' visibility='default' binding='global' size-in-bits='64'>
|
2023-03-11 00:23:01 +00:00
|
|
|
<parameter type-id='95e97e5e'/>
|
2024-05-10 01:26:11 +00:00
|
|
|
<parameter type-id='973a4f8d'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<return type-id='26a90f95'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='__fprintf_chk' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='e75a27e9'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<parameter type-id='9d26089a'/>
|
|
|
|
<parameter is-variadic='yes'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='stat64' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='9d26089a'/>
|
|
|
|
<parameter type-id='f1cadedf'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='getmntany' mangled-name='getmntany' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='getmntany'>
|
|
|
|
<parameter type-id='822cd80b' name='fp'/>
|
|
|
|
<parameter type-id='9d424d31' name='mgetp'/>
|
|
|
|
<parameter type-id='9d424d31' name='mrefp'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='_sol_getmntent' mangled-name='_sol_getmntent' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_sol_getmntent'>
|
|
|
|
<parameter type-id='822cd80b' name='fp'/>
|
|
|
|
<parameter type-id='9d424d31' name='mgetp'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='getextmntent' mangled-name='getextmntent' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='getextmntent'>
|
|
|
|
<parameter type-id='80f4b756' name='path'/>
|
|
|
|
<parameter type-id='394fc496' name='entry'/>
|
|
|
|
<parameter type-id='62f7a03d' name='statbuf'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
</abi-instr>
|
|
|
|
<abi-instr address-size='64' path='lib/libspl/os/linux/zone.c' language='LANG_C99'>
|
|
|
|
<typedef-decl name='zoneid_t' type-id='3502e3ff' id='4da03624'/>
|
|
|
|
<function-decl name='strtoul' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='9d26089a'/>
|
|
|
|
<parameter type-id='8c85230f'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='7359adad'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='getzoneid' mangled-name='getzoneid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='getzoneid'>
|
|
|
|
<return type-id='4da03624'/>
|
|
|
|
</function-decl>
|
|
|
|
</abi-instr>
|
|
|
|
<abi-instr address-size='64' path='lib/libspl/page.c' language='LANG_C99'>
|
|
|
|
<function-decl name='sysconf' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='bd54fe1a'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='spl_pagesize' mangled-name='spl_pagesize' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spl_pagesize'>
|
|
|
|
<return type-id='b59d7dce'/>
|
|
|
|
</function-decl>
|
|
|
|
</abi-instr>
|
|
|
|
<abi-instr address-size='64' path='lib/libspl/strlcat.c' language='LANG_C99'>
|
|
|
|
<function-decl name='strlcat' mangled-name='strlcat' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strlcat'>
|
|
|
|
<parameter type-id='26a90f95' name='dst'/>
|
|
|
|
<parameter type-id='80f4b756' name='src'/>
|
|
|
|
<parameter type-id='b59d7dce' name='dstsize'/>
|
|
|
|
<return type-id='b59d7dce'/>
|
|
|
|
</function-decl>
|
|
|
|
</abi-instr>
|
|
|
|
<abi-instr address-size='64' path='lib/libspl/timestamp.c' language='LANG_C99'>
|
|
|
|
<typedef-decl name='nl_item' type-id='95e97e5e' id='03b79a94'/>
|
|
|
|
<typedef-decl name='__time_t' type-id='bd54fe1a' id='65eda9c0'/>
|
|
|
|
<class-decl name='tm' size-in-bits='448' is-struct='yes' visibility='default' id='dddf6ca2'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='tm_sec' type-id='95e97e5e' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
2023-03-11 00:23:01 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='32'>
|
|
|
|
<var-decl name='tm_min' type-id='95e97e5e' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
2023-03-11 00:23:01 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='tm_hour' type-id='95e97e5e' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
2023-03-11 00:23:01 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='96'>
|
|
|
|
<var-decl name='tm_mday' type-id='95e97e5e' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
2023-03-11 00:23:01 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
|
|
|
<var-decl name='tm_mon' type-id='95e97e5e' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
2023-03-11 00:23:01 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='160'>
|
|
|
|
<var-decl name='tm_year' type-id='95e97e5e' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
2023-03-11 00:23:01 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='192'>
|
|
|
|
<var-decl name='tm_wday' type-id='95e97e5e' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
2023-03-11 00:23:01 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='224'>
|
|
|
|
<var-decl name='tm_yday' type-id='95e97e5e' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
2023-03-11 00:23:01 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='256'>
|
|
|
|
<var-decl name='tm_isdst' type-id='95e97e5e' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
2023-03-11 00:23:01 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='320'>
|
|
|
|
<var-decl name='tm_gmtoff' type-id='bd54fe1a' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
2023-03-11 00:23:01 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='384'>
|
|
|
|
<var-decl name='tm_zone' type-id='80f4b756' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
2023-03-11 00:23:01 +00:00
|
|
|
<typedef-decl name='time_t' type-id='65eda9c0' id='c9d12d66'/>
|
|
|
|
<qualified-type-def type-id='c9d12d66' const='yes' id='588b3216'/>
|
|
|
|
<pointer-type-def type-id='588b3216' size-in-bits='64' id='9f201474'/>
|
|
|
|
<qualified-type-def type-id='9f201474' restrict='yes' id='d6e2847c'/>
|
|
|
|
<qualified-type-def type-id='dddf6ca2' const='yes' id='e824a34f'/>
|
|
|
|
<pointer-type-def type-id='e824a34f' size-in-bits='64' id='d6ad37ff'/>
|
|
|
|
<qualified-type-def type-id='d6ad37ff' restrict='yes' id='f8c6051d'/>
|
|
|
|
<pointer-type-def type-id='c9d12d66' size-in-bits='64' id='b2eb2c3f'/>
|
|
|
|
<pointer-type-def type-id='dddf6ca2' size-in-bits='64' id='d915a820'/>
|
|
|
|
<qualified-type-def type-id='d915a820' restrict='yes' id='f099ad08'/>
|
|
|
|
<function-decl name='nl_langinfo' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='03b79a94'/>
|
|
|
|
<return type-id='26a90f95'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
</function-decl>
|
2023-03-11 00:23:01 +00:00
|
|
|
<function-decl name='time' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='b2eb2c3f'/>
|
|
|
|
<return type-id='c9d12d66'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</function-decl>
|
2023-03-11 00:23:01 +00:00
|
|
|
<function-decl name='strftime' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='266fe297'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<parameter type-id='9d26089a'/>
|
|
|
|
<parameter type-id='f8c6051d'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='b59d7dce'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</function-decl>
|
2023-03-11 00:23:01 +00:00
|
|
|
<function-decl name='localtime_r' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='d6e2847c'/>
|
|
|
|
<parameter type-id='f099ad08'/>
|
|
|
|
<return type-id='d915a820'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</function-decl>
|
2023-03-11 00:23:01 +00:00
|
|
|
<function-decl name='__printf_chk' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter is-variadic='yes'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</function-decl>
|
2021-07-18 15:55:46 +00:00
|
|
|
<function-decl name='print_timestamp' mangled-name='print_timestamp' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='print_timestamp'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='3502e3ff' name='timestamp_fmt'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</function-decl>
|
|
|
|
</abi-instr>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libuutil/uu_alloc.c' language='LANG_C99'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<type-decl name='char' size-in-bits='8' id='a84c031d'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<type-decl name='unsigned int' size-in-bits='32' id='f0981eeb'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<type-decl name='unsigned long int' size-in-bits='64' id='7359adad'/>
|
|
|
|
<type-decl name='variadic parameter type' id='2c1145c5'/>
|
Improve zpool status output, list all affected datasets
Currently, determining which datasets are affected by corruption is
a manual process.
The primary difficulty in reporting the list of affected snapshots is
that since the error was initially found, the snapshot where the error
originally occurred in, may have been deleted. To solve this issue, we
add the ID of the head dataset of the original snapshot which the error
was detected in, to the stored error report. Then any time a filesystem
is deleted, the errors associated with it are deleted as well. Any time
a clone promote occurs, we modify reports associated with the original
head to refer to the new head. The stored error reports are identified
by this head ID, the birth time of the block which the error occurred
in, as well as some information about the error itself are also stored.
Once this information is stored, we can find the set of datasets
affected by an error by walking back the list of snapshots in the given
head until we find one with the appropriate birth txg, and then traverse
through the snapshots of the clone family, terminating a branch if the
block was replaced in a given snapshot. Then we report this information
back to libzfs, and to the zpool status command, where it is displayed
as follows:
pool: test
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub repaired 0B in 00:00:00 with 800 errors on Fri Dec 3
08:27:57 2021
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
sdb ONLINE 0 0 1.58K
errors: Permanent errors have been detected in the following files:
test@1:/test.0.0
/test/test.0.0
/test/1clone/test.0.0
A new feature flag is introduced to mark the presence of this change, as
well as promotion and backwards compatibility logic. This is an updated
version of #9175. Rebase required fixing the tests, updating the ABI of
libzfs, updating the man pages, fixing bugs, fixing the error returns,
and updating the old on-disk error logs to the new format when
activating the feature.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Co-authored-by: TulsiJain <tulsi.jain@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #9175
Closes #12812
2022-04-26 00:25:42 +00:00
|
|
|
<type-decl name='void' id='48b5725f'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<typedef-decl name='uint_t' type-id='f0981eeb' id='3502e3ff'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<typedef-decl name='size_t' type-id='7359adad' id='b59d7dce'/>
|
|
|
|
<pointer-type-def type-id='a84c031d' size-in-bits='64' id='26a90f95'/>
|
|
|
|
<qualified-type-def type-id='a84c031d' const='yes' id='9b45d938'/>
|
|
|
|
<pointer-type-def type-id='9b45d938' size-in-bits='64' id='80f4b756'/>
|
|
|
|
<pointer-type-def type-id='48b5725f' size-in-bits='64' id='eaa32e2f'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<function-decl name='uu_set_error' mangled-name='uu_set_error' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_set_error'>
|
|
|
|
<parameter type-id='3502e3ff'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='malloc' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='free' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='strlen' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<return type-id='b59d7dce'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='strnlen' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<return type-id='b59d7dce'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_zalloc' mangled-name='uu_zalloc' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_zalloc'>
|
|
|
|
<parameter type-id='b59d7dce' name='n'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='eaa32e2f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_free' mangled-name='uu_free' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_free'>
|
|
|
|
<parameter type-id='eaa32e2f' name='p'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-08-31 19:26:30 +00:00
|
|
|
<function-decl name='uu_strdup' mangled-name='uu_strdup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_strdup'>
|
|
|
|
<parameter type-id='80f4b756' name='str'/>
|
|
|
|
<return type-id='26a90f95'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_strndup' mangled-name='uu_strndup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_strndup'>
|
|
|
|
<parameter type-id='80f4b756' name='s'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='b59d7dce' name='n'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='26a90f95'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_memdup' mangled-name='uu_memdup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_memdup'>
|
|
|
|
<parameter type-id='eaa32e2f' name='buf'/>
|
|
|
|
<parameter type-id='b59d7dce' name='sz'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='eaa32e2f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_msprintf' mangled-name='uu_msprintf' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_msprintf'>
|
|
|
|
<parameter type-id='80f4b756' name='format'/>
|
|
|
|
<parameter is-variadic='yes'/>
|
|
|
|
<return type-id='26a90f95'/>
|
|
|
|
</function-decl>
|
2021-07-18 15:55:46 +00:00
|
|
|
</abi-instr>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libuutil/uu_avl.c' language='LANG_C99'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<array-type-def dimensions='1' type-id='bf311473' size-in-bits='128' id='f0f65199'>
|
|
|
|
<subrange length='2' type-id='7359adad' id='52efc4ef'/>
|
|
|
|
</array-type-def>
|
|
|
|
<array-type-def dimensions='1' type-id='a84c031d' size-in-bits='320' id='36c46961'>
|
|
|
|
<subrange length='40' type-id='7359adad' id='8f80b239'/>
|
|
|
|
</array-type-def>
|
2023-03-11 00:23:01 +00:00
|
|
|
<array-type-def dimensions='1' type-id='a84c031d' size-in-bits='32' id='8e0573fd'>
|
|
|
|
<subrange length='4' type-id='7359adad' id='16fe7105'/>
|
|
|
|
</array-type-def>
|
2021-08-31 19:26:30 +00:00
|
|
|
<array-type-def dimensions='1' type-id='a84c031d' size-in-bits='512' id='59daf3ef'>
|
|
|
|
<subrange length='64' type-id='7359adad' id='b10be967'/>
|
|
|
|
</array-type-def>
|
|
|
|
<type-decl name='int' size-in-bits='32' id='95e97e5e'/>
|
|
|
|
<type-decl name='long int' size-in-bits='64' id='bd54fe1a'/>
|
|
|
|
<type-decl name='short int' size-in-bits='16' id='a2185560'/>
|
|
|
|
<type-decl name='signed char' size-in-bits='8' id='28577a57'/>
|
|
|
|
<array-type-def dimensions='1' type-id='e475ab95' size-in-bits='192' id='0ce65a8b'>
|
|
|
|
<subrange length='3' type-id='7359adad' id='56f209d2'/>
|
|
|
|
</array-type-def>
|
|
|
|
<type-decl name='unsigned char' size-in-bits='8' id='002ac4a6'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<typedef-decl name='uu_compare_fn_t' type-id='add6e811' id='40f93560'/>
|
|
|
|
<typedef-decl name='uu_walk_fn_t' type-id='96ee24a5' id='9d1aa0dc'/>
|
|
|
|
<typedef-decl name='uu_avl_pool_t' type-id='12a530a8' id='7f84e390'/>
|
|
|
|
<typedef-decl name='uu_avl_t' type-id='4af029d1' id='bb7f0973'/>
|
|
|
|
<class-decl name='uu_avl_node' size-in-bits='192' is-struct='yes' visibility='default' id='f65f4326'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='uan_opaque' type-id='0ce65a8b' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
|
|
|
<typedef-decl name='uu_avl_node_t' type-id='f65f4326' id='73a65116'/>
|
|
|
|
<typedef-decl name='uu_avl_walk_t' type-id='e70a39e3' id='edd8457b'/>
|
|
|
|
<typedef-decl name='uu_avl_index_t' type-id='e475ab95' id='5d7f5fc8'/>
|
|
|
|
<class-decl name='uu_avl_walk' size-in-bits='320' is-struct='yes' visibility='default' id='e70a39e3'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='uaw_next' type-id='5842d146' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='uaw_prev' type-id='5842d146' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
|
|
|
<var-decl name='uaw_avl' type-id='a5c21a38' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='192'>
|
|
|
|
<var-decl name='uaw_next_result' type-id='eaa32e2f' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='256'>
|
|
|
|
<var-decl name='uaw_dir' type-id='ee31ee44' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='264'>
|
|
|
|
<var-decl name='uaw_robust' type-id='b96825af' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
2021-08-31 19:26:30 +00:00
|
|
|
<class-decl name='uu_avl' size-in-bits='960' is-struct='yes' visibility='default' id='4af029d1'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
2023-03-11 00:23:01 +00:00
|
|
|
<var-decl name='ua_next' type-id='a5c21a38' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
2023-03-11 00:23:01 +00:00
|
|
|
<var-decl name='ua_prev' type-id='a5c21a38' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
|
|
|
<var-decl name='ua_pool' type-id='de82c773' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='192'>
|
2023-03-11 00:23:01 +00:00
|
|
|
<var-decl name='ua_parent' type-id='eaa32e2f' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='256'>
|
|
|
|
<var-decl name='ua_debug' type-id='b96825af' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='264'>
|
|
|
|
<var-decl name='ua_index' type-id='b96825af' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='320'>
|
|
|
|
<var-decl name='ua_tree' type-id='b351119f' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='640'>
|
|
|
|
<var-decl name='ua_null_walk' type-id='edd8457b' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
|
|
|
<class-decl name='uu_avl_pool' size-in-bits='2176' is-struct='yes' visibility='default' id='12a530a8'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='uap_next' type-id='de82c773' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='uap_prev' type-id='de82c773' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
|
|
|
<var-decl name='uap_name' type-id='59daf3ef' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='640'>
|
|
|
|
<var-decl name='uap_nodeoffset' type-id='b59d7dce' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='704'>
|
|
|
|
<var-decl name='uap_objsize' type-id='b59d7dce' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='768'>
|
|
|
|
<var-decl name='uap_cmp' type-id='d502b39f' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='832'>
|
|
|
|
<var-decl name='uap_debug' type-id='b96825af' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='840'>
|
|
|
|
<var-decl name='uap_last_index' type-id='b96825af' visibility='default'/>
|
|
|
|
</data-member>
|
2021-11-08 15:44:04 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='896'>
|
|
|
|
<var-decl name='uap_lock' type-id='7a6844eb' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1216'>
|
|
|
|
<var-decl name='uap_null_avl' type-id='bb7f0973' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
2023-03-11 00:23:01 +00:00
|
|
|
<typedef-decl name='avl_tree_t' type-id='b351119f' id='f20fbd51'/>
|
|
|
|
<typedef-decl name='avl_index_t' type-id='e475ab95' id='fba6cb51'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<class-decl name='avl_node' size-in-bits='192' is-struct='yes' visibility='default' id='428b67b3'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='avl_child' type-id='f0f65199' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
|
|
|
<var-decl name='avl_pcb' type-id='e475ab95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
|
|
|
<class-decl name='avl_tree' size-in-bits='320' is-struct='yes' visibility='default' id='b351119f'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='avl_root' type-id='bf311473' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='avl_compar' type-id='585e1de9' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
|
|
|
<var-decl name='avl_offset' type-id='b59d7dce' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
2021-11-08 15:44:04 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='192'>
|
|
|
|
<var-decl name='avl_numnodes' type-id='ee1f298e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='256'>
|
|
|
|
<var-decl name='avl_pad' type-id='b59d7dce' visibility='default'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<typedef-decl name='ulong_t' type-id='7359adad' id='ee1f298e'/>
|
|
|
|
<typedef-decl name='uintptr_t' type-id='7359adad' id='e475ab95'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<union-decl name='pthread_mutexattr_t' size-in-bits='32' naming-typedef-id='8afd6070' visibility='default' id='7300eb00'>
|
|
|
|
<data-member access='public'>
|
|
|
|
<var-decl name='__size' type-id='8e0573fd' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public'>
|
|
|
|
<var-decl name='__align' type-id='95e97e5e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</union-decl>
|
|
|
|
<typedef-decl name='pthread_mutexattr_t' type-id='7300eb00' id='8afd6070'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<union-decl name='pthread_mutex_t' size-in-bits='320' naming-typedef-id='7a6844eb' visibility='default' id='70681f9b'>
|
|
|
|
<data-member access='public'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='__data' type-id='4c734837' visibility='default'/>
|
|
|
|
</data-member>
|
2021-11-08 15:44:04 +00:00
|
|
|
<data-member access='public'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='__size' type-id='36c46961' visibility='default'/>
|
|
|
|
</data-member>
|
2021-11-08 15:44:04 +00:00
|
|
|
<data-member access='public'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='__align' type-id='bd54fe1a' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</union-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<typedef-decl name='pthread_mutex_t' type-id='70681f9b' id='7a6844eb'/>
|
|
|
|
<typedef-decl name='int8_t' type-id='2171a512' id='ee31ee44'/>
|
|
|
|
<typedef-decl name='uint8_t' type-id='c51d6389' id='b96825af'/>
|
|
|
|
<typedef-decl name='uint32_t' type-id='62f1140c' id='8f92235e'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' id='4c734837'>
|
2021-06-03 17:04:13 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='__lock' type-id='95e97e5e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='32'>
|
|
|
|
<var-decl name='__count' type-id='f0981eeb' visibility='default'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='__owner' type-id='95e97e5e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='96'>
|
|
|
|
<var-decl name='__nusers' type-id='f0981eeb' visibility='default'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='__kind' type-id='95e97e5e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='160'>
|
|
|
|
<var-decl name='__spins' type-id='a2185560' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='176'>
|
|
|
|
<var-decl name='__elision' type-id='a2185560' visibility='default'/>
|
2021-06-03 17:04:13 +00:00
|
|
|
</data-member>
|
2021-07-18 15:55:46 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='192'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='__list' type-id='518fb49c' visibility='default'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</data-member>
|
2021-08-31 19:26:30 +00:00
|
|
|
</class-decl>
|
Improve zpool status output, list all affected datasets
Currently, determining which datasets are affected by corruption is
a manual process.
The primary difficulty in reporting the list of affected snapshots is
that since the error was initially found, the snapshot where the error
originally occurred in, may have been deleted. To solve this issue, we
add the ID of the head dataset of the original snapshot which the error
was detected in, to the stored error report. Then any time a filesystem
is deleted, the errors associated with it are deleted as well. Any time
a clone promote occurs, we modify reports associated with the original
head to refer to the new head. The stored error reports are identified
by this head ID, the birth time of the block which the error occurred
in, as well as some information about the error itself are also stored.
Once this information is stored, we can find the set of datasets
affected by an error by walking back the list of snapshots in the given
head until we find one with the appropriate birth txg, and then traverse
through the snapshots of the clone family, terminating a branch if the
block was replaced in a given snapshot. Then we report this information
back to libzfs, and to the zpool status command, where it is displayed
as follows:
pool: test
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub repaired 0B in 00:00:00 with 800 errors on Fri Dec 3
08:27:57 2021
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
sdb ONLINE 0 0 1.58K
errors: Permanent errors have been detected in the following files:
test@1:/test.0.0
/test/test.0.0
/test/1clone/test.0.0
A new feature flag is introduced to mark the presence of this change, as
well as promotion and backwards compatibility logic. This is an updated
version of #9175. Rebase required fixing the tests, updating the ABI of
libzfs, updating the man pages, fixing bugs, fixing the error returns,
and updating the old on-disk error logs to the new format when
activating the feature.
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mark.maybee@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Co-authored-by: TulsiJain <tulsi.jain@delphix.com>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #9175
Closes #12812
2022-04-26 00:25:42 +00:00
|
|
|
<class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' id='0e01899c'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='__prev' type-id='4d98cd5a' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='__next' type-id='4d98cd5a' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
|
|
|
<typedef-decl name='__pthread_list_t' type-id='0e01899c' id='518fb49c'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<typedef-decl name='__int8_t' type-id='28577a57' id='2171a512'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<typedef-decl name='__uint8_t' type-id='002ac4a6' id='c51d6389'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<typedef-decl name='__uint32_t' type-id='f0981eeb' id='62f1140c'/>
|
|
|
|
<pointer-type-def type-id='0e01899c' size-in-bits='64' id='4d98cd5a'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<pointer-type-def type-id='fba6cb51' size-in-bits='64' id='32adbf30'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<pointer-type-def type-id='428b67b3' size-in-bits='64' id='bf311473'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<pointer-type-def type-id='b351119f' size-in-bits='64' id='716943c7'/>
|
|
|
|
<pointer-type-def type-id='f20fbd51' size-in-bits='64' id='a3681dea'/>
|
|
|
|
<qualified-type-def type-id='8afd6070' const='yes' id='1d853360'/>
|
|
|
|
<pointer-type-def type-id='1d853360' size-in-bits='64' id='c2afbd7e'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<pointer-type-def type-id='96ee24a5' size-in-bits='64' id='585e1de9'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<pointer-type-def type-id='7a6844eb' size-in-bits='64' id='18c91f9e'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<pointer-type-def type-id='5d7f5fc8' size-in-bits='64' id='813a2225'/>
|
|
|
|
<pointer-type-def type-id='73a65116' size-in-bits='64' id='2dc35b9d'/>
|
|
|
|
<pointer-type-def type-id='7f84e390' size-in-bits='64' id='de82c773'/>
|
|
|
|
<pointer-type-def type-id='bb7f0973' size-in-bits='64' id='a5c21a38'/>
|
|
|
|
<pointer-type-def type-id='edd8457b' size-in-bits='64' id='5842d146'/>
|
|
|
|
<pointer-type-def type-id='40f93560' size-in-bits='64' id='d502b39f'/>
|
|
|
|
<pointer-type-def type-id='9d1aa0dc' size-in-bits='64' id='30a42b6d'/>
|
|
|
|
<pointer-type-def type-id='eaa32e2f' size-in-bits='64' id='63e171df'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<function-decl name='uu_check_name' mangled-name='uu_check_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_check_name'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='3502e3ff'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_panic' mangled-name='uu_panic' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_panic'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter is-variadic='yes'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_create' mangled-name='avl_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_create'>
|
|
|
|
<parameter type-id='a3681dea'/>
|
|
|
|
<parameter type-id='585e1de9'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_find' mangled-name='avl_find' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_find'>
|
|
|
|
<parameter type-id='a3681dea'/>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<parameter type-id='32adbf30'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_insert' mangled-name='avl_insert' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_insert'>
|
|
|
|
<parameter type-id='a3681dea'/>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<parameter type-id='fba6cb51'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_first' mangled-name='avl_first' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_first'>
|
|
|
|
<parameter type-id='a3681dea'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_last' mangled-name='avl_last' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_last'>
|
|
|
|
<parameter type-id='a3681dea'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_nearest' mangled-name='avl_nearest' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_nearest'>
|
|
|
|
<parameter type-id='a3681dea'/>
|
|
|
|
<parameter type-id='fba6cb51'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_remove' mangled-name='avl_remove' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_remove'>
|
|
|
|
<parameter type-id='a3681dea'/>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_numnodes' mangled-name='avl_numnodes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_numnodes'>
|
|
|
|
<parameter type-id='a3681dea'/>
|
|
|
|
<return type-id='ee1f298e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_destroy_nodes' mangled-name='avl_destroy_nodes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_destroy_nodes'>
|
|
|
|
<parameter type-id='a3681dea'/>
|
|
|
|
<parameter type-id='63e171df'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_destroy' mangled-name='avl_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_destroy'>
|
|
|
|
<parameter type-id='a3681dea'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_walk' mangled-name='avl_walk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_walk'>
|
|
|
|
<parameter type-id='716943c7'/>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='strlcpy' mangled-name='strlcpy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strlcpy'>
|
|
|
|
<parameter type-id='26a90f95'/>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<return type-id='b59d7dce'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='pthread_mutex_init' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='18c91f9e'/>
|
|
|
|
<parameter type-id='c2afbd7e'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='pthread_mutex_destroy' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='18c91f9e'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='pthread_mutex_lock' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='18c91f9e'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='pthread_mutex_unlock' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='18c91f9e'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_pool_create' mangled-name='uu_avl_pool_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_pool_create'>
|
|
|
|
<parameter type-id='80f4b756' name='name'/>
|
|
|
|
<parameter type-id='b59d7dce' name='objsize'/>
|
|
|
|
<parameter type-id='b59d7dce' name='nodeoffset'/>
|
|
|
|
<parameter type-id='d502b39f' name='compare_func'/>
|
|
|
|
<parameter type-id='8f92235e' name='flags'/>
|
|
|
|
<return type-id='de82c773'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_avl_pool_destroy' mangled-name='uu_avl_pool_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_pool_destroy'>
|
|
|
|
<parameter type-id='de82c773' name='pp'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_node_init' mangled-name='uu_avl_node_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_node_init'>
|
|
|
|
<parameter type-id='eaa32e2f' name='base'/>
|
|
|
|
<parameter type-id='2dc35b9d' name='np'/>
|
|
|
|
<parameter type-id='de82c773' name='pp'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_node_fini' mangled-name='uu_avl_node_fini' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_node_fini'>
|
|
|
|
<parameter type-id='eaa32e2f' name='base'/>
|
|
|
|
<parameter type-id='2dc35b9d' name='np'/>
|
|
|
|
<parameter type-id='de82c773' name='pp'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_avl_create' mangled-name='uu_avl_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_create'>
|
|
|
|
<parameter type-id='de82c773' name='pp'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='parent'/>
|
|
|
|
<parameter type-id='8f92235e' name='flags'/>
|
|
|
|
<return type-id='a5c21a38'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_avl_destroy' mangled-name='uu_avl_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_destroy'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_numnodes' mangled-name='uu_avl_numnodes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_numnodes'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='b59d7dce'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_first' mangled-name='uu_avl_first' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_first'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='eaa32e2f'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_last' mangled-name='uu_avl_last' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_last'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_next' mangled-name='uu_avl_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_next'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='eaa32e2f' name='node'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_prev' mangled-name='uu_avl_prev' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_prev'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='eaa32e2f' name='node'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_walk_start' mangled-name='uu_avl_walk_start' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_walk_start'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
|
|
|
<parameter type-id='8f92235e' name='flags'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='5842d146'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_avl_walk_next' mangled-name='uu_avl_walk_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_walk_next'>
|
|
|
|
<parameter type-id='5842d146' name='wp'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_walk_end' mangled-name='uu_avl_walk_end' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_walk_end'>
|
|
|
|
<parameter type-id='5842d146' name='wp'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_avl_walk' mangled-name='uu_avl_walk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_walk'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='30a42b6d' name='func'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='private'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='8f92235e' name='flags'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='95e97e5e'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_remove' mangled-name='uu_avl_remove' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_remove'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='eaa32e2f' name='elem'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_teardown' mangled-name='uu_avl_teardown' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_teardown'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='63e171df' name='cookie'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_find' mangled-name='uu_avl_find' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_find'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='eaa32e2f' name='elem'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='private'/>
|
|
|
|
<parameter type-id='813a2225' name='out'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_insert' mangled-name='uu_avl_insert' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_insert'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='eaa32e2f' name='elem'/>
|
|
|
|
<parameter type-id='5d7f5fc8' name='idx'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_nearest_next' mangled-name='uu_avl_nearest_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_nearest_next'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='5d7f5fc8' name='idx'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_nearest_prev' mangled-name='uu_avl_nearest_prev' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_nearest_prev'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='a5c21a38' name='ap'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='5d7f5fc8' name='idx'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_lockup' mangled-name='uu_avl_lockup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_lockup'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_avl_release' mangled-name='uu_avl_release' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_avl_release'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
2023-03-11 00:23:01 +00:00
|
|
|
<function-type size-in-bits='64' id='96ee24a5'>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-type>
|
2021-08-31 19:26:30 +00:00
|
|
|
<function-type size-in-bits='64' id='add6e811'>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-type>
|
|
|
|
</abi-instr>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libuutil/uu_ident.c' language='LANG_C99'>
|
|
|
|
<function-decl name='strchr' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='26a90f95'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-08-31 19:26:30 +00:00
|
|
|
</abi-instr>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libuutil/uu_list.c' language='LANG_C99'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<array-type-def dimensions='1' type-id='e475ab95' size-in-bits='128' id='d0e9cdae'>
|
|
|
|
<subrange length='2' type-id='7359adad' id='52efc4ef'/>
|
|
|
|
</array-type-def>
|
2021-11-08 15:44:04 +00:00
|
|
|
<typedef-decl name='uu_list_pool_t' type-id='55168cab' id='38a2549d'/>
|
|
|
|
<typedef-decl name='uu_list_t' type-id='1d04bdf0' id='82e88484'/>
|
|
|
|
<class-decl name='uu_list_node' size-in-bits='128' is-struct='yes' visibility='default' id='f8f3cec5'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='uln_opaque' type-id='d0e9cdae' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
|
|
|
<typedef-decl name='uu_list_node_t' type-id='f8f3cec5' id='c4dc472f'/>
|
|
|
|
<typedef-decl name='uu_list_walk_t' type-id='b80e3208' id='9fed32d2'/>
|
|
|
|
<typedef-decl name='uu_list_index_t' type-id='e475ab95' id='f0dd35ff'/>
|
|
|
|
<class-decl name='uu_list_node_impl' size-in-bits='128' is-struct='yes' visibility='default' id='700a795c'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='uln_next' type-id='5af1298a' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='uln_prev' type-id='5af1298a' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
|
|
|
<typedef-decl name='uu_list_node_impl_t' type-id='700a795c' id='8e5864b0'/>
|
|
|
|
<class-decl name='uu_list_walk' size-in-bits='320' is-struct='yes' visibility='default' id='b80e3208'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='ulw_next' type-id='4d848103' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='ulw_prev' type-id='4d848103' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
|
|
|
<var-decl name='ulw_list' type-id='0c0b229b' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='192'>
|
|
|
|
<var-decl name='ulw_dir' type-id='ee31ee44' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='200'>
|
|
|
|
<var-decl name='ulw_robust' type-id='b96825af' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='256'>
|
|
|
|
<var-decl name='ulw_next_result' type-id='a085247f' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
2021-08-31 19:26:30 +00:00
|
|
|
<class-decl name='uu_list' size-in-bits='896' is-struct='yes' visibility='default' id='1d04bdf0'>
|
2020-11-15 04:38:34 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
2023-03-11 00:23:01 +00:00
|
|
|
<var-decl name='ul_next' type-id='0c0b229b' visibility='default'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
2023-03-11 00:23:01 +00:00
|
|
|
<var-decl name='ul_prev' type-id='0c0b229b' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='ul_pool' type-id='0941e04e' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='192'>
|
2023-03-11 00:23:01 +00:00
|
|
|
<var-decl name='ul_parent' type-id='eaa32e2f' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='256'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='ul_offset' type-id='b59d7dce' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='320'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='ul_numnodes' type-id='b59d7dce' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='384'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='ul_debug' type-id='b96825af' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
2021-08-31 19:26:30 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='392'>
|
|
|
|
<var-decl name='ul_sorted' type-id='b96825af' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
2021-08-31 19:26:30 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='400'>
|
|
|
|
<var-decl name='ul_index' type-id='b96825af' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='448'>
|
|
|
|
<var-decl name='ul_null_node' type-id='8e5864b0' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='576'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='ul_null_walk' type-id='9fed32d2' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
|
|
|
<class-decl name='uu_list_pool' size-in-bits='2112' is-struct='yes' visibility='default' id='55168cab'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='ulp_next' type-id='0941e04e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='ulp_prev' type-id='0941e04e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
|
|
|
<var-decl name='ulp_name' type-id='59daf3ef' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='640'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='ulp_nodeoffset' type-id='b59d7dce' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='704'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='ulp_objsize' type-id='b59d7dce' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='768'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='ulp_cmp' type-id='d502b39f' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='832'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='ulp_debug' type-id='b96825af' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
2021-08-31 19:26:30 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='840'>
|
|
|
|
<var-decl name='ulp_last_index' type-id='b96825af' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
2021-08-31 19:26:30 +00:00
|
|
|
<data-member access='public' layout-offset-in-bits='896'>
|
|
|
|
<var-decl name='ulp_lock' type-id='7a6844eb' visibility='default'/>
|
libuutil: purge unused functions
Remove vestigial uu_open_tmp(). The problems with this implementation
are many, but the primary one is the TMPPATHFMT macro, which is
unused, and always has been.
Searching around for any users leads only to earlier imports of the
same, identical file, i.a. into an apple repository (which does patch
gethrtime() into it and gives us a copyright date of 2007),
and a MidnightBSD one from 2008.
Searching illumos-gate, uu_open_tmp appears, in current HEAD, three
times: in the header, libuutil's mapfile ABI, and the implementation.
This slowly grows up to eight occurrences as one moves back to the root
"OpenSolaris Launch" commit: the header, implementation, twice in
libuutil's spec ABI, twice (with multilib and non-multilib paths) in
libuutil.so's i386 and SPARC binary db ABIs.
That's 2005, and this file was abandonware even then, it's dead code.
The situation is similar for the uu_dprintf() family of functions and
uu_dump(). Nothing in accessibly recorded history has ever used them.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11873
2021-04-12 16:32:43 +00:00
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1216'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<var-decl name='ulp_null_list' type-id='82e88484' visibility='default'/>
|
2020-11-15 04:38:34 +00:00
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
2021-08-31 19:26:30 +00:00
|
|
|
<pointer-type-def type-id='f0dd35ff' size-in-bits='64' id='ecbc0046'/>
|
|
|
|
<pointer-type-def type-id='700a795c' size-in-bits='64' id='5af1298a'/>
|
|
|
|
<pointer-type-def type-id='8e5864b0' size-in-bits='64' id='a085247f'/>
|
|
|
|
<pointer-type-def type-id='c4dc472f' size-in-bits='64' id='dbe143f4'/>
|
|
|
|
<pointer-type-def type-id='38a2549d' size-in-bits='64' id='0941e04e'/>
|
|
|
|
<pointer-type-def type-id='82e88484' size-in-bits='64' id='0c0b229b'/>
|
|
|
|
<pointer-type-def type-id='9fed32d2' size-in-bits='64' id='4d848103'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_pool_create' mangled-name='uu_list_pool_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_pool_create'>
|
|
|
|
<parameter type-id='80f4b756' name='name'/>
|
|
|
|
<parameter type-id='b59d7dce' name='objsize'/>
|
|
|
|
<parameter type-id='b59d7dce' name='nodeoffset'/>
|
|
|
|
<parameter type-id='d502b39f' name='compare_func'/>
|
|
|
|
<parameter type-id='8f92235e' name='flags'/>
|
|
|
|
<return type-id='0941e04e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_list_pool_destroy' mangled-name='uu_list_pool_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_pool_destroy'>
|
|
|
|
<parameter type-id='0941e04e' name='pp'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_node_init' mangled-name='uu_list_node_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_node_init'>
|
|
|
|
<parameter type-id='eaa32e2f' name='base'/>
|
|
|
|
<parameter type-id='dbe143f4' name='np_arg'/>
|
|
|
|
<parameter type-id='0941e04e' name='pp'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_node_fini' mangled-name='uu_list_node_fini' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_node_fini'>
|
|
|
|
<parameter type-id='eaa32e2f' name='base'/>
|
|
|
|
<parameter type-id='dbe143f4' name='np_arg'/>
|
|
|
|
<parameter type-id='0941e04e' name='pp'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_list_create' mangled-name='uu_list_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_create'>
|
|
|
|
<parameter type-id='0941e04e' name='pp'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='parent'/>
|
|
|
|
<parameter type-id='8f92235e' name='flags'/>
|
|
|
|
<return type-id='0c0b229b'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_list_destroy' mangled-name='uu_list_destroy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_destroy'>
|
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_list_insert' mangled-name='uu_list_insert' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_insert'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='elem'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='f0dd35ff' name='idx'/>
|
|
|
|
<return type-id='48b5725f'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_find' mangled-name='uu_list_find' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_find'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='elem'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='eaa32e2f' name='private'/>
|
|
|
|
<parameter type-id='ecbc0046' name='out'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_nearest_next' mangled-name='uu_list_nearest_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_nearest_next'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='f0dd35ff' name='idx'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_nearest_prev' mangled-name='uu_list_nearest_prev' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_nearest_prev'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='f0dd35ff' name='idx'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_walk_start' mangled-name='uu_list_walk_start' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_walk_start'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='8f92235e' name='flags'/>
|
|
|
|
<return type-id='4d848103'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_walk_next' mangled-name='uu_list_walk_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_walk_next'>
|
|
|
|
<parameter type-id='4d848103' name='wp'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_list_walk_end' mangled-name='uu_list_walk_end' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_walk_end'>
|
|
|
|
<parameter type-id='4d848103' name='wp'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_list_walk' mangled-name='uu_list_walk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_walk'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='30a42b6d' name='func'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='private'/>
|
|
|
|
<parameter type-id='8f92235e' name='flags'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_remove' mangled-name='uu_list_remove' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_remove'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='elem'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_list_teardown' mangled-name='uu_list_teardown' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_teardown'>
|
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
|
|
|
<parameter type-id='63e171df' name='cookie'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_insert_before' mangled-name='uu_list_insert_before' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_insert_before'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='eaa32e2f' name='target'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='eaa32e2f' name='elem'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='95e97e5e'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_insert_after' mangled-name='uu_list_insert_after' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_insert_after'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<parameter type-id='eaa32e2f' name='target'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='elem'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_numnodes' mangled-name='uu_list_numnodes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_numnodes'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='b59d7dce'/>
|
2021-08-31 19:26:30 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_first' mangled-name='uu_list_first' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_first'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_last' mangled-name='uu_list_last' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_last'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_next' mangled-name='uu_list_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_next'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='elem'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_prev' mangled-name='uu_list_prev' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_prev'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='0c0b229b' name='lp'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='elem'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<return type-id='eaa32e2f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_lockup' mangled-name='uu_list_lockup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_lockup'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_list_release' mangled-name='uu_list_release' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_list_release'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2020-11-15 04:38:34 +00:00
|
|
|
</abi-instr>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libuutil/uu_misc.c' language='LANG_C99'>
|
|
|
|
<array-type-def dimensions='1' type-id='a84c031d' size-in-bits='8' id='89feb1ec'>
|
|
|
|
<subrange length='1' type-id='7359adad' id='52f813b4'/>
|
|
|
|
</array-type-def>
|
|
|
|
<array-type-def dimensions='1' type-id='a84c031d' size-in-bits='160' id='664ac0b7'>
|
|
|
|
<subrange length='20' type-id='7359adad' id='fdca39cf'/>
|
|
|
|
</array-type-def>
|
|
|
|
<class-decl name='_IO_codecvt' is-struct='yes' visibility='default' is-declaration-only='yes' id='a4036571'/>
|
|
|
|
<class-decl name='_IO_marker' is-struct='yes' visibility='default' is-declaration-only='yes' id='010ae0b9'/>
|
|
|
|
<class-decl name='_IO_wide_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='79bd3751'/>
|
|
|
|
<class-decl name='__va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='d5027220'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='gp_offset' type-id='f0981eeb' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='32'>
|
|
|
|
<var-decl name='fp_offset' type-id='f0981eeb' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='overflow_arg_area' type-id='eaa32e2f' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
|
|
|
<var-decl name='reg_save_area' type-id='eaa32e2f' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
|
|
|
<type-decl name='unsigned short int' size-in-bits='16' id='8efea9e5'/>
|
|
|
|
<typedef-decl name='pthread_t' type-id='7359adad' id='4051f5e7'/>
|
|
|
|
<typedef-decl name='pthread_key_t' type-id='f0981eeb' id='2de5383b'/>
|
|
|
|
<typedef-decl name='__off_t' type-id='bd54fe1a' id='79989e9c'/>
|
|
|
|
<typedef-decl name='__off64_t' type-id='bd54fe1a' id='724e4de6'/>
|
|
|
|
<typedef-decl name='FILE' type-id='ec1ed955' id='aa12d1ba'/>
|
|
|
|
<typedef-decl name='_IO_lock_t' type-id='48b5725f' id='bb4788fa'/>
|
|
|
|
<class-decl name='_IO_FILE' size-in-bits='1728' is-struct='yes' visibility='default' id='ec1ed955'>
|
|
|
|
<data-member access='public' layout-offset-in-bits='0'>
|
|
|
|
<var-decl name='_flags' type-id='95e97e5e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='64'>
|
|
|
|
<var-decl name='_IO_read_ptr' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='128'>
|
|
|
|
<var-decl name='_IO_read_end' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='192'>
|
|
|
|
<var-decl name='_IO_read_base' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='256'>
|
|
|
|
<var-decl name='_IO_write_base' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='320'>
|
|
|
|
<var-decl name='_IO_write_ptr' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='384'>
|
|
|
|
<var-decl name='_IO_write_end' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='448'>
|
|
|
|
<var-decl name='_IO_buf_base' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='512'>
|
|
|
|
<var-decl name='_IO_buf_end' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='576'>
|
|
|
|
<var-decl name='_IO_save_base' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='640'>
|
|
|
|
<var-decl name='_IO_backup_base' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='704'>
|
|
|
|
<var-decl name='_IO_save_end' type-id='26a90f95' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='768'>
|
|
|
|
<var-decl name='_markers' type-id='e4c6fa61' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='832'>
|
|
|
|
<var-decl name='_chain' type-id='dca988a5' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='896'>
|
|
|
|
<var-decl name='_fileno' type-id='95e97e5e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='928'>
|
|
|
|
<var-decl name='_flags2' type-id='95e97e5e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='960'>
|
|
|
|
<var-decl name='_old_offset' type-id='79989e9c' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1024'>
|
|
|
|
<var-decl name='_cur_column' type-id='8efea9e5' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1040'>
|
|
|
|
<var-decl name='_vtable_offset' type-id='28577a57' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1048'>
|
|
|
|
<var-decl name='_shortbuf' type-id='89feb1ec' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1088'>
|
|
|
|
<var-decl name='_lock' type-id='cecf4ea7' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1152'>
|
|
|
|
<var-decl name='_offset' type-id='724e4de6' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1216'>
|
|
|
|
<var-decl name='_codecvt' type-id='570f8c59' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1280'>
|
|
|
|
<var-decl name='_wide_data' type-id='c65a1f29' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1344'>
|
|
|
|
<var-decl name='_freeres_list' type-id='dca988a5' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1408'>
|
|
|
|
<var-decl name='_freeres_buf' type-id='eaa32e2f' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1472'>
|
|
|
|
<var-decl name='__pad5' type-id='b59d7dce' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1536'>
|
|
|
|
<var-decl name='_mode' type-id='95e97e5e' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
<data-member access='public' layout-offset-in-bits='1568'>
|
|
|
|
<var-decl name='_unused2' type-id='664ac0b7' visibility='default'/>
|
|
|
|
</data-member>
|
|
|
|
</class-decl>
|
|
|
|
<pointer-type-def type-id='aa12d1ba' size-in-bits='64' id='822cd80b'/>
|
|
|
|
<qualified-type-def type-id='822cd80b' restrict='yes' id='e75a27e9'/>
|
|
|
|
<pointer-type-def type-id='ec1ed955' size-in-bits='64' id='dca988a5'/>
|
|
|
|
<pointer-type-def type-id='a4036571' size-in-bits='64' id='570f8c59'/>
|
|
|
|
<pointer-type-def type-id='bb4788fa' size-in-bits='64' id='cecf4ea7'/>
|
|
|
|
<pointer-type-def type-id='010ae0b9' size-in-bits='64' id='e4c6fa61'/>
|
|
|
|
<pointer-type-def type-id='79bd3751' size-in-bits='64' id='c65a1f29'/>
|
|
|
|
<pointer-type-def type-id='d5027220' size-in-bits='64' id='b7f2d5e6'/>
|
|
|
|
<qualified-type-def type-id='80f4b756' restrict='yes' id='9d26089a'/>
|
|
|
|
<pointer-type-def type-id='95e97e5e' size-in-bits='64' id='7292109c'/>
|
|
|
|
<pointer-type-def type-id='2de5383b' size-in-bits='64' id='ce04b822'/>
|
|
|
|
<pointer-type-def type-id='ee076206' size-in-bits='64' id='953b12f8'/>
|
|
|
|
<pointer-type-def type-id='c5c76c9c' size-in-bits='64' id='b7f9d8e6'/>
|
|
|
|
<class-decl name='_IO_codecvt' is-struct='yes' visibility='default' is-declaration-only='yes' id='a4036571'/>
|
|
|
|
<class-decl name='_IO_marker' is-struct='yes' visibility='default' is-declaration-only='yes' id='010ae0b9'/>
|
|
|
|
<class-decl name='_IO_wide_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='79bd3751'/>
|
|
|
|
<function-decl name='__errno_location' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<return type-id='7292109c'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='dcgettext' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<return type-id='26a90f95'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='pthread_self' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<return type-id='4051f5e7'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='pthread_key_create' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='ce04b822'/>
|
|
|
|
<parameter type-id='b7f9d8e6'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='pthread_getspecific' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='2de5383b'/>
|
|
|
|
<return type-id='eaa32e2f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='pthread_setspecific' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='2de5383b'/>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='pthread_atfork' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='953b12f8'/>
|
|
|
|
<parameter type-id='953b12f8'/>
|
|
|
|
<parameter type-id='953b12f8'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='abort' visibility='default' binding='global' size-in-bits='64'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
2023-03-11 00:23:01 +00:00
|
|
|
<function-decl name='pause' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='__vfprintf_chk' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='e75a27e9'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<parameter type-id='9d26089a'/>
|
|
|
|
<parameter type-id='b7f2d5e6'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_error' mangled-name='uu_error' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_error'>
|
|
|
|
<return type-id='8f92235e'/>
|
|
|
|
</function-decl>
|
2021-08-31 19:26:30 +00:00
|
|
|
<function-decl name='uu_strerror' mangled-name='uu_strerror' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_strerror'>
|
|
|
|
<parameter type-id='8f92235e' name='code'/>
|
|
|
|
<return type-id='80f4b756'/>
|
|
|
|
</function-decl>
|
2023-03-11 00:23:01 +00:00
|
|
|
<function-type size-in-bits='64' id='ee076206'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<return type-id='48b5725f'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
</function-type>
|
|
|
|
<function-type size-in-bits='64' id='c5c76c9c'>
|
|
|
|
<parameter type-id='eaa32e2f'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-type>
|
2020-11-15 04:38:34 +00:00
|
|
|
</abi-instr>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='lib/libuutil/uu_string.c' language='LANG_C99'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<type-decl name='unnamed-enum-underlying-type-32' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='9cac1fee'/>
|
2021-11-08 15:44:04 +00:00
|
|
|
<enum-decl name='boolean_t' naming-typedef-id='c19b74c3' id='f58c8277'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<underlying-type type-id='9cac1fee'/>
|
|
|
|
<enumerator name='B_FALSE' value='0'/>
|
|
|
|
<enumerator name='B_TRUE' value='1'/>
|
|
|
|
</enum-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<typedef-decl name='boolean_t' type-id='f58c8277' id='c19b74c3'/>
|
2023-03-11 00:23:01 +00:00
|
|
|
<function-decl name='strcmp' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='strncmp' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='b59d7dce'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='strcasecmp' visibility='default' binding='global' size-in-bits='64'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<return type-id='95e97e5e'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_streq' mangled-name='uu_streq' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_streq'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='80f4b756' name='a'/>
|
|
|
|
<parameter type-id='80f4b756' name='b'/>
|
|
|
|
<return type-id='c19b74c3'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='uu_strcaseeq' mangled-name='uu_strcaseeq' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_strcaseeq'>
|
|
|
|
<parameter type-id='80f4b756' name='a'/>
|
|
|
|
<parameter type-id='80f4b756' name='b'/>
|
|
|
|
<return type-id='c19b74c3'/>
|
|
|
|
</function-decl>
|
2021-11-08 15:44:04 +00:00
|
|
|
<function-decl name='uu_strbw' mangled-name='uu_strbw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uu_strbw'>
|
2021-08-31 19:26:30 +00:00
|
|
|
<parameter type-id='80f4b756' name='a'/>
|
|
|
|
<parameter type-id='80f4b756' name='b'/>
|
|
|
|
<return type-id='c19b74c3'/>
|
2021-07-18 15:55:46 +00:00
|
|
|
</function-decl>
|
2020-11-15 04:38:34 +00:00
|
|
|
</abi-instr>
|
2023-03-11 00:23:01 +00:00
|
|
|
<abi-instr address-size='64' path='module/avl/avl.c' language='LANG_C99'>
|
|
|
|
<function-decl name='libspl_assertf' mangled-name='libspl_assertf' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='libspl_assertf'>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter type-id='95e97e5e'/>
|
|
|
|
<parameter type-id='80f4b756'/>
|
|
|
|
<parameter is-variadic='yes'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_insert_here' mangled-name='avl_insert_here' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_insert_here'>
|
|
|
|
<parameter type-id='a3681dea' name='tree'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='new_data'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='here'/>
|
|
|
|
<parameter type-id='95e97e5e' name='direction'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_add' mangled-name='avl_add' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_add'>
|
|
|
|
<parameter type-id='a3681dea' name='tree'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='new_node'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_update_lt' mangled-name='avl_update_lt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_update_lt'>
|
|
|
|
<parameter type-id='a3681dea' name='t'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='obj'/>
|
|
|
|
<return type-id='c19b74c3'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_update_gt' mangled-name='avl_update_gt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_update_gt'>
|
|
|
|
<parameter type-id='a3681dea' name='t'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='obj'/>
|
|
|
|
<return type-id='c19b74c3'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_update' mangled-name='avl_update' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_update'>
|
|
|
|
<parameter type-id='a3681dea' name='t'/>
|
|
|
|
<parameter type-id='eaa32e2f' name='obj'/>
|
|
|
|
<return type-id='c19b74c3'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_swap' mangled-name='avl_swap' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_swap'>
|
|
|
|
<parameter type-id='a3681dea' name='tree1'/>
|
|
|
|
<parameter type-id='a3681dea' name='tree2'/>
|
|
|
|
<return type-id='48b5725f'/>
|
|
|
|
</function-decl>
|
|
|
|
<function-decl name='avl_is_empty' mangled-name='avl_is_empty' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='avl_is_empty'>
|
|
|
|
<parameter type-id='a3681dea' name='tree'/>
|
|
|
|
<return type-id='c19b74c3'/>
|
|
|
|
</function-decl>
|
|
|
|
</abi-instr>
|
2020-11-15 04:38:34 +00:00
|
|
|
</abi-corpus>
|