mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	zfs_cmd: reorganise zfs_cmd_t to match original size
2aa3fbe761 extended zinject_record_t, and in doing so inadvertently
extended zfs_cmd_t, which broke compatibility with userspace tools
without the change.
This fixes that by using some of the unused space in zfs_cmd_t for the
extra fields. We also add an assert to trigger a compile error if the
size ever changes.
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Rob Norris <robn@despairlabs.com>
Closes #17367This commit is contained in:
		
							parent
							
								
									087d7d80c7
								
							
						
					
					
						commit
						06fa8f3f69
					
				| @ -534,10 +534,22 @@ typedef struct zfs_cmd { | ||||
| 	zfs_share_t	zc_share; | ||||
| 	dmu_objset_stats_t zc_objset_stats; | ||||
| 	struct drr_begin zc_begin_record; | ||||
| 	zinject_record_t zc_inject_record; | ||||
| 	uint32_t	zc_defer_destroy; | ||||
| 	uint32_t	zc_flags; | ||||
| 	uint64_t	zc_action_handle; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * zinject_record_t grew past its original size, which would push out | ||||
| 	 * the size of zfs_cmd_t. To adjust for this, we allow it to use the | ||||
| 	 * space after it, since those fields aren't used with ZFS_IOC_INJECT. | ||||
| 	 */ | ||||
| 	union { | ||||
| 		zinject_record_t zc_inject_record; | ||||
| 		struct { | ||||
| 			char		zc_pad1[sizeof (zinject_record_t) - 16]; | ||||
| 			uint32_t	zc_defer_destroy; | ||||
| 			uint32_t	zc_flags; | ||||
| 			uint64_t	zc_action_handle; | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	int		zc_cleanup_fd; | ||||
| 	uint8_t		zc_simple; | ||||
| 	uint8_t		zc_pad[3];		/* alignment */ | ||||
| @ -548,6 +560,20 @@ typedef struct zfs_cmd { | ||||
| 	uint64_t	zc_zoneid; | ||||
| } zfs_cmd_t; | ||||
| 
 | ||||
| /*
 | ||||
|  * zfs_cmd_t (and by extension, it's member structs) must always be the same | ||||
|  * size. Changing it will break compatibility between the kernel module and the | ||||
|  * userspace tools. | ||||
|  * | ||||
|  * This test is convoluted because MAXPATHLEN and MAXNAMELEN can vary across | ||||
|  * platforms. We include them directly here, which means it won't trip if those | ||||
|  * ever change, but if that happens we likely have other things to worry about. | ||||
|  */ | ||||
| #define	_expected_zfs_cmd_size	((MAXPATHLEN*3)+MAXNAMELEN+1200) | ||||
| _Static_assert(sizeof (zfs_cmd_t) == _expected_zfs_cmd_size, | ||||
| 	"zfs_cmd_t has wrong size"); | ||||
| #undef	_expected_zfs_cmd_size | ||||
| 
 | ||||
| typedef struct zfs_useracct { | ||||
| 	char zu_domain[256]; | ||||
| 	uid_t zu_rid; | ||||
|  | ||||
| @ -2617,6 +2617,9 @@ | ||||
|     </function-type> | ||||
|   </abi-instr> | ||||
|   <abi-instr address-size='64' path='lib/libzfs/libzfs_config.c' language='LANG_C99'> | ||||
|     <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='2816' id='514368c7'> | ||||
|       <subrange length='352' type-id='7359adad' id='b715cd6f'/> | ||||
|     </array-type-def> | ||||
|     <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='32768' id='d16c6df4'> | ||||
|       <subrange length='4096' type-id='7359adad' id='bc1b5ddc'/> | ||||
|     </array-type-def> | ||||
| @ -2789,7 +2792,7 @@ | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <typedef-decl name='zfs_share_t' type-id='feb6f2da' id='ee5cec36'/> | ||||
|     <class-decl name='zfs_cmd' size-in-bits='110080' is-struct='yes' visibility='default' id='3522cd69'> | ||||
|     <class-decl name='zfs_cmd' size-in-bits='109952' is-struct='yes' visibility='default' id='3522cd69'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='zc_name' type-id='d16c6df4' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -2860,42 +2863,55 @@ | ||||
|         <var-decl name='zc_begin_record' type-id='09fcdc01' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='106368'> | ||||
|         <var-decl name='zc_inject_record' type-id='a4301ca6' visibility='default'/> | ||||
|         <var-decl name='' type-id='ac5ab595' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109312'> | ||||
|         <var-decl name='zc_defer_destroy' type-id='8f92235e' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109344'> | ||||
|         <var-decl name='zc_flags' type-id='8f92235e' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109376'> | ||||
|         <var-decl name='zc_action_handle' type-id='9c313c2d' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109440'> | ||||
|         <var-decl name='zc_cleanup_fd' type-id='95e97e5e' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109472'> | ||||
|       <data-member access='public' layout-offset-in-bits='109344'> | ||||
|         <var-decl name='zc_simple' type-id='b96825af' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109480'> | ||||
|       <data-member access='public' layout-offset-in-bits='109352'> | ||||
|         <var-decl name='zc_pad' type-id='d3490169' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109504'> | ||||
|       <data-member access='public' layout-offset-in-bits='109376'> | ||||
|         <var-decl name='zc_sendobj' type-id='9c313c2d' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109568'> | ||||
|       <data-member access='public' layout-offset-in-bits='109440'> | ||||
|         <var-decl name='zc_fromobj' type-id='9c313c2d' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109632'> | ||||
|       <data-member access='public' layout-offset-in-bits='109504'> | ||||
|         <var-decl name='zc_createtxg' type-id='9c313c2d' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109696'> | ||||
|       <data-member access='public' layout-offset-in-bits='109568'> | ||||
|         <var-decl name='zc_stat' type-id='0371a9c7' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='110016'> | ||||
|       <data-member access='public' layout-offset-in-bits='109888'> | ||||
|         <var-decl name='zc_zoneid' type-id='9c313c2d' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <union-decl name='__anonymous_union__' size-in-bits='2944' is-anonymous='yes' visibility='default' id='ac5ab595'> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='zc_inject_record' type-id='a4301ca6' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='' type-id='e7f43f73' visibility='default'/> | ||||
|       </data-member> | ||||
|     </union-decl> | ||||
|     <class-decl name='__anonymous_struct__' size-in-bits='2944' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f73'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='zc_pad1' type-id='514368c7' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='2816'> | ||||
|         <var-decl name='zc_defer_destroy' type-id='8f92235e' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='2848'> | ||||
|         <var-decl name='zc_flags' type-id='8f92235e' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='2880'> | ||||
|         <var-decl name='zc_action_handle' type-id='9c313c2d' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <typedef-decl name='zfs_cmd_t' type-id='3522cd69' id='a5559cdd'/> | ||||
|     <class-decl name='zfs_stat' size-in-bits='320' is-struct='yes' visibility='default' id='6417f0b9'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
| @ -3171,7 +3187,7 @@ | ||||
|     <typedef-decl name='ssize_t' type-id='41060289' id='79a0948f'/> | ||||
|     <class-decl name='sigaction' size-in-bits='1216' is-struct='yes' visibility='default' id='fe391c48'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='__sigaction_handler' type-id='ac5ab595' visibility='default'/> | ||||
|         <var-decl name='__sigaction_handler' type-id='ac5ab596' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='64'> | ||||
|         <var-decl name='sa_mask' type-id='b9c97942' visibility='default'/> | ||||
| @ -3183,7 +3199,7 @@ | ||||
|         <var-decl name='sa_restorer' type-id='953b12f8' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' id='ac5ab595'> | ||||
|     <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' id='ac5ab596'> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='sa_handler' type-id='8cdd9566' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -3256,36 +3272,36 @@ | ||||
|         <var-decl name='__pad0' type-id='95e97e5e' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='128'> | ||||
|         <var-decl name='_sifields' type-id='ac5ab596' visibility='default'/> | ||||
|         <var-decl name='_sifields' type-id='ac5ab597' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <union-decl name='__anonymous_union__1' size-in-bits='896' is-anonymous='yes' visibility='default' id='ac5ab596'> | ||||
|     <union-decl name='__anonymous_union__1' size-in-bits='896' is-anonymous='yes' visibility='default' id='ac5ab597'> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='_pad' type-id='47394ee0' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='_kill' type-id='e7f43f73' visibility='default'/> | ||||
|         <var-decl name='_kill' type-id='e7f43f74' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='_timer' type-id='e7f43f74' visibility='default'/> | ||||
|         <var-decl name='_timer' type-id='e7f43f75' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='_rt' type-id='e7f43f75' visibility='default'/> | ||||
|         <var-decl name='_rt' type-id='e7f43f76' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='_sigchld' type-id='e7f43f76' visibility='default'/> | ||||
|         <var-decl name='_sigchld' type-id='e7f43f77' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='_sigfault' type-id='e7f43f77' visibility='default'/> | ||||
|         <var-decl name='_sigfault' type-id='e7f43f78' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='_sigpoll' type-id='e7f43f78' visibility='default'/> | ||||
|         <var-decl name='_sigpoll' type-id='e7f43f79' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='_sigsys' type-id='e7f43f79' visibility='default'/> | ||||
|         <var-decl name='_sigsys' type-id='e7f43f7a' visibility='default'/> | ||||
|       </data-member> | ||||
|     </union-decl> | ||||
|     <class-decl name='__anonymous_struct__1' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f73'> | ||||
|     <class-decl name='__anonymous_struct__1' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f74'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='si_pid' type-id='3629bad8' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -3293,7 +3309,7 @@ | ||||
|         <var-decl name='si_uid' type-id='cc5fcceb' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <class-decl name='__anonymous_struct__2' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f74'> | ||||
|     <class-decl name='__anonymous_struct__2' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f75'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='si_tid' type-id='95e97e5e' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -3304,7 +3320,7 @@ | ||||
|         <var-decl name='si_sigval' type-id='eabacd01' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <class-decl name='__anonymous_struct__3' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f75'> | ||||
|     <class-decl name='__anonymous_struct__3' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f76'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='si_pid' type-id='3629bad8' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -3315,7 +3331,7 @@ | ||||
|         <var-decl name='si_sigval' type-id='eabacd01' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <class-decl name='__anonymous_struct__4' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f76'> | ||||
|     <class-decl name='__anonymous_struct__4' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f77'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='si_pid' type-id='3629bad8' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -3332,7 +3348,7 @@ | ||||
|         <var-decl name='si_stime' type-id='4d66c6d7' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <class-decl name='__anonymous_struct__5' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f77'> | ||||
|     <class-decl name='__anonymous_struct__5' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f78'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='si_addr' type-id='eaa32e2f' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -3340,18 +3356,18 @@ | ||||
|         <var-decl name='si_addr_lsb' type-id='a2185560' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='128'> | ||||
|         <var-decl name='_bounds' type-id='ac5ab597' visibility='default'/> | ||||
|         <var-decl name='_bounds' type-id='ac5ab598' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <union-decl name='__anonymous_union__2' size-in-bits='128' is-anonymous='yes' visibility='default' id='ac5ab597'> | ||||
|     <union-decl name='__anonymous_union__2' size-in-bits='128' is-anonymous='yes' visibility='default' id='ac5ab598'> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='_addr_bnd' type-id='e7f43f7a' visibility='default'/> | ||||
|         <var-decl name='_addr_bnd' type-id='e7f43f7b' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='_pkey' type-id='62f1140c' visibility='default'/> | ||||
|       </data-member> | ||||
|     </union-decl> | ||||
|     <class-decl name='__anonymous_struct__6' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f7a'> | ||||
|     <class-decl name='__anonymous_struct__6' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f7b'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='_lower' type-id='eaa32e2f' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -3359,7 +3375,7 @@ | ||||
|         <var-decl name='_upper' type-id='eaa32e2f' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <class-decl name='__anonymous_struct__7' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f78'> | ||||
|     <class-decl name='__anonymous_struct__7' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f79'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='si_band' type-id='bd54fe1a' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -3367,7 +3383,7 @@ | ||||
|         <var-decl name='si_fd' type-id='95e97e5e' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <class-decl name='__anonymous_struct__8' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f79'> | ||||
|     <class-decl name='__anonymous_struct__8' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f7a'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='_call_addr' type-id='eaa32e2f' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -4152,6 +4168,12 @@ | ||||
|       <parameter type-id='5d6479ae'/> | ||||
|       <return type-id='95e97e5e'/> | ||||
|     </function-decl> | ||||
|     <function-decl name='lzc_ioctl_fd' visibility='default' binding='global' size-in-bits='64'> | ||||
|       <parameter type-id='95e97e5e'/> | ||||
|       <parameter type-id='7359adad'/> | ||||
|       <parameter type-id='b65f7fd1'/> | ||||
|       <return type-id='95e97e5e'/> | ||||
|     </function-decl> | ||||
|     <function-decl name='lzc_snapshot' visibility='default' binding='global' size-in-bits='64'> | ||||
|       <parameter type-id='5ce45b60'/> | ||||
|       <parameter type-id='5ce45b60'/> | ||||
| @ -4590,12 +4612,6 @@ | ||||
|       <parameter is-variadic='yes'/> | ||||
|       <return type-id='95e97e5e'/> | ||||
|     </function-decl> | ||||
|     <function-decl name='ioctl' visibility='default' binding='global' size-in-bits='64'> | ||||
|       <parameter type-id='95e97e5e'/> | ||||
|       <parameter type-id='7359adad'/> | ||||
|       <parameter is-variadic='yes'/> | ||||
|       <return type-id='95e97e5e'/> | ||||
|     </function-decl> | ||||
|     <function-decl name='zfs_type_to_name' mangled-name='zfs_type_to_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_type_to_name'> | ||||
|       <parameter type-id='2e45de5d' name='type'/> | ||||
|       <return type-id='80f4b756'/> | ||||
| @ -5277,6 +5293,12 @@ | ||||
|       <parameter type-id='b59d7dce'/> | ||||
|       <return type-id='79a0948f'/> | ||||
|     </function-decl> | ||||
|     <function-decl name='ioctl' visibility='default' binding='global' size-in-bits='64'> | ||||
|       <parameter type-id='95e97e5e'/> | ||||
|       <parameter type-id='7359adad'/> | ||||
|       <parameter is-variadic='yes'/> | ||||
|       <return type-id='95e97e5e'/> | ||||
|     </function-decl> | ||||
|     <function-decl name='fstat64' visibility='default' binding='global' size-in-bits='64'> | ||||
|       <parameter type-id='95e97e5e'/> | ||||
|       <parameter type-id='62f7a03d'/> | ||||
| @ -7237,7 +7259,7 @@ | ||||
|         <var-decl name='drr_payloadlen' type-id='8f92235e' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='64'> | ||||
|         <var-decl name='drr_u' type-id='ac5ab598' visibility='default'/> | ||||
|         <var-decl name='drr_u' type-id='ac5ab599' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='08f5ca17'> | ||||
| @ -7255,7 +7277,7 @@ | ||||
|       <enumerator name='DRR_REDACT' value='10'/> | ||||
|       <enumerator name='DRR_NUMTYPES' value='11'/> | ||||
|     </enum-decl> | ||||
|     <union-decl name='__anonymous_union__' size-in-bits='2432' is-anonymous='yes' visibility='default' id='ac5ab598'> | ||||
|     <union-decl name='__anonymous_union__' size-in-bits='2432' is-anonymous='yes' visibility='default' id='ac5ab599'> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='drr_begin' type-id='09fcdc01' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -7602,10 +7624,10 @@ | ||||
|         <var-decl name='sigev_notify' type-id='95e97e5e' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='128'> | ||||
|         <var-decl name='_sigev_un' type-id='ac5ab599' visibility='default'/> | ||||
|         <var-decl name='_sigev_un' type-id='ac5ab59a' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <union-decl name='__anonymous_union__1' size-in-bits='384' is-anonymous='yes' visibility='default' id='ac5ab599'> | ||||
|     <union-decl name='__anonymous_union__1' size-in-bits='384' is-anonymous='yes' visibility='default' id='ac5ab59a'> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='_pad' type-id='73b82f0f' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -7613,10 +7635,10 @@ | ||||
|         <var-decl name='_tid' type-id='3629bad8' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='_sigev_thread' type-id='e7f43f7b' visibility='default'/> | ||||
|         <var-decl name='_sigev_thread' type-id='e7f43f7c' visibility='default'/> | ||||
|       </data-member> | ||||
|     </union-decl> | ||||
|     <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f7b'> | ||||
|     <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f7c'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='_function' type-id='5f147c28' visibility='default'/> | ||||
|       </data-member> | ||||
|  | ||||
| @ -1116,13 +1116,6 @@ | ||||
|       <parameter type-id='95e97e5e'/> | ||||
|       <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'/> | ||||
| @ -1279,6 +1272,9 @@ | ||||
|     <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='2048' id='d1617432'> | ||||
|       <subrange length='256' type-id='7359adad' id='36e5b9fa'/> | ||||
|     </array-type-def> | ||||
|     <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='2816' id='514368c7'> | ||||
|       <subrange length='352' type-id='7359adad' id='b715cd6f'/> | ||||
|     </array-type-def> | ||||
|     <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='32768' id='d16c6df4'> | ||||
|       <subrange length='4096' type-id='7359adad' id='bc1b5ddc'/> | ||||
|     </array-type-def> | ||||
| @ -1765,7 +1761,7 @@ | ||||
|       <enumerator name='DRR_REDACT' value='10'/> | ||||
|       <enumerator name='DRR_NUMTYPES' value='11'/> | ||||
|     </enum-decl> | ||||
|     <union-decl name='__anonymous_union__' size-in-bits='2432' is-anonymous='yes' visibility='default' id='ac5ab595'> | ||||
|     <union-decl name='__anonymous_union__1' size-in-bits='2432' is-anonymous='yes' visibility='default' id='ac5ab595'> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='drr_begin' type-id='09fcdc01' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -2156,7 +2152,7 @@ | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <typedef-decl name='zfs_share_t' type-id='feb6f2da' id='ee5cec36'/> | ||||
|     <class-decl name='zfs_cmd' size-in-bits='110080' is-struct='yes' visibility='default' id='3522cd69'> | ||||
|     <class-decl name='zfs_cmd' size-in-bits='109952' is-struct='yes' visibility='default' id='3522cd69'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='zc_name' type-id='d16c6df4' visibility='default'/> | ||||
|       </data-member> | ||||
| @ -2227,42 +2223,56 @@ | ||||
|         <var-decl name='zc_begin_record' type-id='09fcdc01' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='106368'> | ||||
|         <var-decl name='zc_inject_record' type-id='a4301ca6' visibility='default'/> | ||||
|         <var-decl name='' type-id='ac5ab596' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109312'> | ||||
|         <var-decl name='zc_defer_destroy' type-id='8f92235e' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109344'> | ||||
|         <var-decl name='zc_flags' type-id='8f92235e' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109376'> | ||||
|         <var-decl name='zc_action_handle' type-id='9c313c2d' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109440'> | ||||
|         <var-decl name='zc_cleanup_fd' type-id='95e97e5e' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109472'> | ||||
|       <data-member access='public' layout-offset-in-bits='109344'> | ||||
|         <var-decl name='zc_simple' type-id='b96825af' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109480'> | ||||
|       <data-member access='public' layout-offset-in-bits='109352'> | ||||
|         <var-decl name='zc_pad' type-id='d3490169' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109504'> | ||||
|       <data-member access='public' layout-offset-in-bits='109376'> | ||||
|         <var-decl name='zc_sendobj' type-id='9c313c2d' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109568'> | ||||
|       <data-member access='public' layout-offset-in-bits='109440'> | ||||
|         <var-decl name='zc_fromobj' type-id='9c313c2d' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109632'> | ||||
|       <data-member access='public' layout-offset-in-bits='109504'> | ||||
|         <var-decl name='zc_createtxg' type-id='9c313c2d' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='109696'> | ||||
|       <data-member access='public' layout-offset-in-bits='109568'> | ||||
|         <var-decl name='zc_stat' type-id='0371a9c7' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='110016'> | ||||
|       <data-member access='public' layout-offset-in-bits='109888'> | ||||
|         <var-decl name='zc_zoneid' type-id='9c313c2d' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <union-decl name='__anonymous_union__' size-in-bits='2944' is-anonymous='yes' visibility='default' id='ac5ab596'> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='zc_inject_record' type-id='a4301ca6' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public'> | ||||
|         <var-decl name='' type-id='e7f43f72' visibility='default'/> | ||||
|       </data-member> | ||||
|     </union-decl> | ||||
|     <class-decl name='__anonymous_struct__' size-in-bits='2944' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f72'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='zc_pad1' type-id='514368c7' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='2816'> | ||||
|         <var-decl name='zc_defer_destroy' type-id='8f92235e' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='2848'> | ||||
|         <var-decl name='zc_flags' type-id='8f92235e' visibility='default'/> | ||||
|       </data-member> | ||||
|       <data-member access='public' layout-offset-in-bits='2880'> | ||||
|         <var-decl name='zc_action_handle' type-id='9c313c2d' visibility='default'/> | ||||
|       </data-member> | ||||
|     </class-decl> | ||||
|     <typedef-decl name='zfs_cmd_t' type-id='3522cd69' id='a5559cdd'/> | ||||
|     <class-decl name='zfs_stat' size-in-bits='320' is-struct='yes' visibility='default' id='6417f0b9'> | ||||
|       <data-member access='public' layout-offset-in-bits='0'> | ||||
|         <var-decl name='zs_gen' type-id='9c313c2d' visibility='default'/> | ||||
| @ -2558,14 +2568,14 @@ | ||||
|     <qualified-type-def type-id='eaa32e2f' restrict='yes' id='1b7446cd'/> | ||||
|     <pointer-type-def type-id='eaa32e2f' size-in-bits='64' id='63e171df'/> | ||||
|     <pointer-type-def type-id='3522cd69' size-in-bits='64' id='b65f7fd1'/> | ||||
|     <pointer-type-def type-id='a5559cdd' size-in-bits='64' id='e4ec4540'/> | ||||
|     <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='lzc_ioctl_fd' mangled-name='lzc_ioctl_fd' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_ioctl_fd'> | ||||
|       <parameter type-id='95e97e5e'/> | ||||
|       <parameter type-id='7359adad'/> | ||||
|       <parameter type-id='b65f7fd1'/> | ||||
|       <return type-id='95e97e5e'/> | ||||
|     <function-decl name='nvlist_print' visibility='default' binding='global' size-in-bits='64'> | ||||
|       <parameter type-id='822cd80b'/> | ||||
|       <parameter type-id='5ce45b60'/> | ||||
|       <return type-id='48b5725f'/> | ||||
|     </function-decl> | ||||
|     <function-decl name='nvlist_free' visibility='default' binding='global' size-in-bits='64'> | ||||
|       <parameter type-id='5ce45b60'/> | ||||
| @ -2781,6 +2791,13 @@ | ||||
|     <function-decl name='__open_missing_mode' visibility='default' binding='global' size-in-bits='64'> | ||||
|       <return type-id='48b5725f'/> | ||||
|     </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='__read_chk' visibility='default' binding='global' size-in-bits='64'> | ||||
|       <parameter type-id='95e97e5e'/> | ||||
|       <parameter type-id='eaa32e2f'/> | ||||
| @ -2794,6 +2811,12 @@ | ||||
|     <function-decl name='libzfs_core_fini' mangled-name='libzfs_core_fini' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='libzfs_core_fini'> | ||||
|       <return type-id='48b5725f'/> | ||||
|     </function-decl> | ||||
|     <function-decl name='lzc_ioctl_fd' mangled-name='lzc_ioctl_fd' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_ioctl_fd'> | ||||
|       <parameter type-id='95e97e5e' name='fd'/> | ||||
|       <parameter type-id='7359adad' name='ioc'/> | ||||
|       <parameter type-id='e4ec4540' name='zc'/> | ||||
|       <return type-id='95e97e5e'/> | ||||
|     </function-decl> | ||||
|     <function-decl name='lzc_scrub' mangled-name='lzc_scrub' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzc_scrub'> | ||||
|       <parameter type-id='5b35941c' name='ioc'/> | ||||
|       <parameter type-id='80f4b756' name='name'/> | ||||
| @ -3178,6 +3201,12 @@ | ||||
|       <parameter type-id='9c313c2d' name='amount'/> | ||||
|       <return type-id='95e97e5e'/> | ||||
|     </function-decl> | ||||
|     <function-decl name='lzc_ioctl_fd_os' visibility='default' binding='global' size-in-bits='64'> | ||||
|       <parameter type-id='95e97e5e'/> | ||||
|       <parameter type-id='7359adad'/> | ||||
|       <parameter type-id='b65f7fd1'/> | ||||
|       <return type-id='95e97e5e'/> | ||||
|     </function-decl> | ||||
|     <function-type size-in-bits='64' id='c70fa2e8'> | ||||
|       <parameter type-id='95e97e5e'/> | ||||
|       <parameter type-id='eaa32e2f'/> | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Rob Norris
						Rob Norris