Fix: draid autopkgtests fail on s390x architecture (Endianness Issue)
The ioctl call to create the pool was returning -1 with errno EINVAL. Inside the module code, inside vdev_draid.c, verify_perms is calling fletcher_4_native_varsize. This in turn calls fletcher_4_scalar_native. So, implemented a fletcher_4_byteswap_varsize which makes use of the fletcher_4_scalar_byteswap in Big endian machines. Reviewed-by: Andriy Tkachuk <andriy.tkachuk@gmail.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Pranav P <pranavsdreams@gmail.com> Closes #16261 Closes #18445
This commit is contained in:
@@ -60,6 +60,8 @@ _ZFS_FLETCHER_H int fletcher_2_incremental_native(void *, size_t, void *);
|
|||||||
_ZFS_FLETCHER_H int fletcher_2_incremental_byteswap(void *, size_t, void *);
|
_ZFS_FLETCHER_H int fletcher_2_incremental_byteswap(void *, size_t, void *);
|
||||||
_ZFS_FLETCHER_H void fletcher_4_native_varsize(const void *, uint64_t,
|
_ZFS_FLETCHER_H void fletcher_4_native_varsize(const void *, uint64_t,
|
||||||
zio_cksum_t *);
|
zio_cksum_t *);
|
||||||
|
_ZFS_FLETCHER_H void fletcher_4_byteswap_varsize(const void *, uint64_t,
|
||||||
|
zio_cksum_t *);
|
||||||
_ZFS_FLETCHER_H void fletcher_4_byteswap(const void *, uint64_t, const void *,
|
_ZFS_FLETCHER_H void fletcher_4_byteswap(const void *, uint64_t, const void *,
|
||||||
zio_cksum_t *);
|
zio_cksum_t *);
|
||||||
_ZFS_FLETCHER_H int fletcher_4_incremental_native(void *, size_t, void *);
|
_ZFS_FLETCHER_H int fletcher_4_incremental_native(void *, size_t, void *);
|
||||||
|
|||||||
+137
-7
@@ -189,6 +189,7 @@
|
|||||||
<elf-symbol name='fletcher_2_incremental_native' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
<elf-symbol name='fletcher_2_incremental_native' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||||
<elf-symbol name='fletcher_2_native' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
<elf-symbol name='fletcher_2_native' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||||
<elf-symbol name='fletcher_4_byteswap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
<elf-symbol name='fletcher_4_byteswap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||||
|
<elf-symbol name='fletcher_4_byteswap_varsize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||||
<elf-symbol name='fletcher_4_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
<elf-symbol name='fletcher_4_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||||
<elf-symbol name='fletcher_4_impl_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
<elf-symbol name='fletcher_4_impl_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||||
<elf-symbol name='fletcher_4_incremental_byteswap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
<elf-symbol name='fletcher_4_incremental_byteswap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||||
@@ -1668,8 +1669,103 @@
|
|||||||
</function-decl>
|
</function-decl>
|
||||||
</abi-instr>
|
</abi-instr>
|
||||||
<abi-instr address-size='64' path='lib/libspl/os/linux/mnttab.c' language='LANG_C99'>
|
<abi-instr address-size='64' path='lib/libspl/os/linux/mnttab.c' language='LANG_C99'>
|
||||||
|
<array-type-def dimensions='1' type-id='d315442e' size-in-bits='16' id='811205dc'>
|
||||||
|
<subrange length='1' type-id='7359adad' id='52f813b4'/>
|
||||||
|
</array-type-def>
|
||||||
|
<array-type-def dimensions='1' type-id='d3130597' size-in-bits='768' id='f63f23b9'>
|
||||||
|
<subrange length='12' type-id='7359adad' id='84827bdc'/>
|
||||||
|
</array-type-def>
|
||||||
|
<typedef-decl name='__u16' type-id='8efea9e5' id='d315442e'/>
|
||||||
|
<typedef-decl name='__s32' type-id='95e97e5e' id='3158a266'/>
|
||||||
|
<typedef-decl name='__u32' type-id='f0981eeb' id='3f1a6b60'/>
|
||||||
|
<typedef-decl name='__s64' type-id='1eb56b1e' id='49659421'/>
|
||||||
|
<typedef-decl name='__u64' type-id='3a47d82b' id='d3130597'/>
|
||||||
|
<class-decl name='statx_timestamp' size-in-bits='128' is-struct='yes' visibility='default' id='94101016'>
|
||||||
|
<data-member access='public' layout-offset-in-bits='0'>
|
||||||
|
<var-decl name='tv_sec' type-id='49659421' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='64'>
|
||||||
|
<var-decl name='tv_nsec' type-id='3f1a6b60' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='96'>
|
||||||
|
<var-decl name='__reserved' type-id='3158a266' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
</class-decl>
|
||||||
|
<class-decl name='statx' size-in-bits='2048' is-struct='yes' visibility='default' id='720b04c5'>
|
||||||
|
<data-member access='public' layout-offset-in-bits='0'>
|
||||||
|
<var-decl name='stx_mask' type-id='3f1a6b60' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='32'>
|
||||||
|
<var-decl name='stx_blksize' type-id='3f1a6b60' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='64'>
|
||||||
|
<var-decl name='stx_attributes' type-id='d3130597' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='128'>
|
||||||
|
<var-decl name='stx_nlink' type-id='3f1a6b60' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='160'>
|
||||||
|
<var-decl name='stx_uid' type-id='3f1a6b60' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='192'>
|
||||||
|
<var-decl name='stx_gid' type-id='3f1a6b60' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='224'>
|
||||||
|
<var-decl name='stx_mode' type-id='d315442e' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='240'>
|
||||||
|
<var-decl name='__spare0' type-id='811205dc' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='256'>
|
||||||
|
<var-decl name='stx_ino' type-id='d3130597' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='320'>
|
||||||
|
<var-decl name='stx_size' type-id='d3130597' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='384'>
|
||||||
|
<var-decl name='stx_blocks' type-id='d3130597' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='448'>
|
||||||
|
<var-decl name='stx_attributes_mask' type-id='d3130597' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='512'>
|
||||||
|
<var-decl name='stx_atime' type-id='94101016' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='640'>
|
||||||
|
<var-decl name='stx_btime' type-id='94101016' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='768'>
|
||||||
|
<var-decl name='stx_ctime' type-id='94101016' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='896'>
|
||||||
|
<var-decl name='stx_mtime' type-id='94101016' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='1024'>
|
||||||
|
<var-decl name='stx_rdev_major' type-id='3f1a6b60' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='1056'>
|
||||||
|
<var-decl name='stx_rdev_minor' type-id='3f1a6b60' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='1088'>
|
||||||
|
<var-decl name='stx_dev_major' type-id='3f1a6b60' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='1120'>
|
||||||
|
<var-decl name='stx_dev_minor' type-id='3f1a6b60' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='1152'>
|
||||||
|
<var-decl name='stx_mnt_id' type-id='d3130597' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='1216'>
|
||||||
|
<var-decl name='__spare2' type-id='d3130597' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
<data-member access='public' layout-offset-in-bits='1280'>
|
||||||
|
<var-decl name='__spare3' type-id='f63f23b9' visibility='default'/>
|
||||||
|
</data-member>
|
||||||
|
</class-decl>
|
||||||
<pointer-type-def type-id='56fe4a37' size-in-bits='64' id='b6b61d2f'/>
|
<pointer-type-def type-id='56fe4a37' size-in-bits='64' id='b6b61d2f'/>
|
||||||
<qualified-type-def type-id='b6b61d2f' restrict='yes' id='3cad23cd'/>
|
<qualified-type-def type-id='b6b61d2f' restrict='yes' id='3cad23cd'/>
|
||||||
|
<pointer-type-def type-id='720b04c5' size-in-bits='64' id='936b8e35'/>
|
||||||
|
<qualified-type-def type-id='936b8e35' restrict='yes' id='31d265b7'/>
|
||||||
<function-decl name='getmntent_r' visibility='default' binding='global' size-in-bits='64'>
|
<function-decl name='getmntent_r' visibility='default' binding='global' size-in-bits='64'>
|
||||||
<parameter type-id='e75a27e9'/>
|
<parameter type-id='e75a27e9'/>
|
||||||
<parameter type-id='3cad23cd'/>
|
<parameter type-id='3cad23cd'/>
|
||||||
@@ -1681,6 +1777,14 @@
|
|||||||
<parameter type-id='822cd80b'/>
|
<parameter type-id='822cd80b'/>
|
||||||
<return type-id='95e97e5e'/>
|
<return type-id='95e97e5e'/>
|
||||||
</function-decl>
|
</function-decl>
|
||||||
|
<function-decl name='statx' visibility='default' binding='global' size-in-bits='64'>
|
||||||
|
<parameter type-id='95e97e5e'/>
|
||||||
|
<parameter type-id='9d26089a'/>
|
||||||
|
<parameter type-id='95e97e5e'/>
|
||||||
|
<parameter type-id='f0981eeb'/>
|
||||||
|
<parameter type-id='31d265b7'/>
|
||||||
|
<return type-id='95e97e5e'/>
|
||||||
|
</function-decl>
|
||||||
</abi-instr>
|
</abi-instr>
|
||||||
<abi-instr address-size='64' path='lib/libspl/procfs_list.c' language='LANG_C99'>
|
<abi-instr address-size='64' path='lib/libspl/procfs_list.c' language='LANG_C99'>
|
||||||
<class-decl name='procfs_list' size-in-bits='768' is-struct='yes' visibility='default' id='0f4d3b87'>
|
<class-decl name='procfs_list' size-in-bits='768' is-struct='yes' visibility='default' id='0f4d3b87'>
|
||||||
@@ -3830,6 +3934,10 @@
|
|||||||
<parameter type-id='80f4b756'/>
|
<parameter type-id='80f4b756'/>
|
||||||
<return type-id='58603c44'/>
|
<return type-id='58603c44'/>
|
||||||
</function-decl>
|
</function-decl>
|
||||||
|
<function-decl name='zfs_prop_user' mangled-name='zfs_prop_user' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_prop_user'>
|
||||||
|
<parameter type-id='80f4b756'/>
|
||||||
|
<return type-id='c19b74c3'/>
|
||||||
|
</function-decl>
|
||||||
<function-decl name='nvlist_add_uint64' visibility='default' binding='global' size-in-bits='64'>
|
<function-decl name='nvlist_add_uint64' visibility='default' binding='global' size-in-bits='64'>
|
||||||
<parameter type-id='5ce45b60'/>
|
<parameter type-id='5ce45b60'/>
|
||||||
<parameter type-id='80f4b756'/>
|
<parameter type-id='80f4b756'/>
|
||||||
@@ -3854,9 +3962,6 @@
|
|||||||
<parameter type-id='7d3cd834'/>
|
<parameter type-id='7d3cd834'/>
|
||||||
<return type-id='95e97e5e'/>
|
<return type-id='95e97e5e'/>
|
||||||
</function-decl>
|
</function-decl>
|
||||||
<function-decl name='fnvlist_alloc' visibility='default' binding='global' size-in-bits='64'>
|
|
||||||
<return type-id='5ce45b60'/>
|
|
||||||
</function-decl>
|
|
||||||
<function-decl name='__ctype_b_loc' visibility='default' binding='global' size-in-bits='64'>
|
<function-decl name='__ctype_b_loc' visibility='default' binding='global' size-in-bits='64'>
|
||||||
<return type-id='c59e1ef0'/>
|
<return type-id='c59e1ef0'/>
|
||||||
</function-decl>
|
</function-decl>
|
||||||
@@ -4529,10 +4634,6 @@
|
|||||||
<parameter type-id='c19b74c3'/>
|
<parameter type-id='c19b74c3'/>
|
||||||
<return type-id='c19b74c3'/>
|
<return type-id='c19b74c3'/>
|
||||||
</function-decl>
|
</function-decl>
|
||||||
<function-decl name='zfs_prop_user' mangled-name='zfs_prop_user' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_prop_user'>
|
|
||||||
<parameter type-id='80f4b756'/>
|
|
||||||
<return type-id='c19b74c3'/>
|
|
||||||
</function-decl>
|
|
||||||
<function-decl name='zfs_prop_userquota' mangled-name='zfs_prop_userquota' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_prop_userquota'>
|
<function-decl name='zfs_prop_userquota' mangled-name='zfs_prop_userquota' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_prop_userquota'>
|
||||||
<parameter type-id='80f4b756'/>
|
<parameter type-id='80f4b756'/>
|
||||||
<return type-id='c19b74c3'/>
|
<return type-id='c19b74c3'/>
|
||||||
@@ -4642,6 +4743,9 @@
|
|||||||
<parameter type-id='7d3cd834'/>
|
<parameter type-id='7d3cd834'/>
|
||||||
<return type-id='95e97e5e'/>
|
<return type-id='95e97e5e'/>
|
||||||
</function-decl>
|
</function-decl>
|
||||||
|
<function-decl name='fnvlist_alloc' visibility='default' binding='global' size-in-bits='64'>
|
||||||
|
<return type-id='5ce45b60'/>
|
||||||
|
</function-decl>
|
||||||
<function-decl name='fnvlist_free' visibility='default' binding='global' size-in-bits='64'>
|
<function-decl name='fnvlist_free' visibility='default' binding='global' size-in-bits='64'>
|
||||||
<parameter type-id='5ce45b60'/>
|
<parameter type-id='5ce45b60'/>
|
||||||
<return type-id='48b5725f'/>
|
<return type-id='48b5725f'/>
|
||||||
@@ -4909,6 +5013,12 @@
|
|||||||
<parameter type-id='80f4b756' name='path'/>
|
<parameter type-id='80f4b756' name='path'/>
|
||||||
<return type-id='95e97e5e'/>
|
<return type-id='95e97e5e'/>
|
||||||
</function-decl>
|
</function-decl>
|
||||||
|
<function-decl name='zfs_create_ancestors_props' mangled-name='zfs_create_ancestors_props' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_create_ancestors_props'>
|
||||||
|
<parameter type-id='b0382bb3' name='hdl'/>
|
||||||
|
<parameter type-id='80f4b756' name='path'/>
|
||||||
|
<parameter type-id='5ce45b60' name='props'/>
|
||||||
|
<return type-id='95e97e5e'/>
|
||||||
|
</function-decl>
|
||||||
<function-decl name='zfs_create' mangled-name='zfs_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_create'>
|
<function-decl name='zfs_create' mangled-name='zfs_create' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_create'>
|
||||||
<parameter type-id='b0382bb3' name='hdl'/>
|
<parameter type-id='b0382bb3' name='hdl'/>
|
||||||
<parameter type-id='80f4b756' name='path'/>
|
<parameter type-id='80f4b756' name='path'/>
|
||||||
@@ -5155,6 +5265,19 @@
|
|||||||
<parameter type-id='0d41d328'/>
|
<parameter type-id='0d41d328'/>
|
||||||
<return type-id='95e97e5e'/>
|
<return type-id='95e97e5e'/>
|
||||||
</function-decl>
|
</function-decl>
|
||||||
|
<function-decl name='zfs_is_namespace_prop' visibility='default' binding='global' size-in-bits='64'>
|
||||||
|
<parameter type-id='58603c44'/>
|
||||||
|
<return type-id='c19b74c3'/>
|
||||||
|
</function-decl>
|
||||||
|
<function-decl name='zfs_namespace_prop_flag' visibility='default' binding='global' size-in-bits='64'>
|
||||||
|
<parameter type-id='58603c44'/>
|
||||||
|
<return type-id='8f92235e'/>
|
||||||
|
</function-decl>
|
||||||
|
<function-decl name='zfs_mount_setattr' visibility='default' binding='global' size-in-bits='64'>
|
||||||
|
<parameter type-id='9200a744'/>
|
||||||
|
<parameter type-id='8f92235e'/>
|
||||||
|
<return type-id='95e97e5e'/>
|
||||||
|
</function-decl>
|
||||||
<function-decl name='zpool_name_valid' visibility='default' binding='global' size-in-bits='64'>
|
<function-decl name='zpool_name_valid' visibility='default' binding='global' size-in-bits='64'>
|
||||||
<parameter type-id='b0382bb3'/>
|
<parameter type-id='b0382bb3'/>
|
||||||
<parameter type-id='c19b74c3'/>
|
<parameter type-id='c19b74c3'/>
|
||||||
@@ -8337,6 +8460,7 @@
|
|||||||
<parameter type-id='b0382bb3'/>
|
<parameter type-id='b0382bb3'/>
|
||||||
<parameter type-id='26a90f95'/>
|
<parameter type-id='26a90f95'/>
|
||||||
<parameter type-id='95e97e5e'/>
|
<parameter type-id='95e97e5e'/>
|
||||||
|
<parameter type-id='5ce45b60'/>
|
||||||
<return type-id='95e97e5e'/>
|
<return type-id='95e97e5e'/>
|
||||||
</function-decl>
|
</function-decl>
|
||||||
<function-decl name='zfs_send_progress' mangled-name='zfs_send_progress' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_send_progress'>
|
<function-decl name='zfs_send_progress' mangled-name='zfs_send_progress' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_send_progress'>
|
||||||
@@ -10331,6 +10455,12 @@
|
|||||||
<parameter type-id='c24fc2ee' name='zcp'/>
|
<parameter type-id='c24fc2ee' name='zcp'/>
|
||||||
<return type-id='48b5725f'/>
|
<return type-id='48b5725f'/>
|
||||||
</function-decl>
|
</function-decl>
|
||||||
|
<function-decl name='fletcher_4_byteswap_varsize' mangled-name='fletcher_4_byteswap_varsize' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fletcher_4_byteswap_varsize'>
|
||||||
|
<parameter type-id='eaa32e2f' name='buf'/>
|
||||||
|
<parameter type-id='9c313c2d' name='size'/>
|
||||||
|
<parameter type-id='c24fc2ee' name='zcp'/>
|
||||||
|
<return type-id='48b5725f'/>
|
||||||
|
</function-decl>
|
||||||
<function-decl name='fletcher_4_byteswap' mangled-name='fletcher_4_byteswap' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fletcher_4_byteswap'>
|
<function-decl name='fletcher_4_byteswap' mangled-name='fletcher_4_byteswap' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fletcher_4_byteswap'>
|
||||||
<parameter type-id='eaa32e2f' name='buf'/>
|
<parameter type-id='eaa32e2f' name='buf'/>
|
||||||
<parameter type-id='9c313c2d' name='size'/>
|
<parameter type-id='9c313c2d' name='size'/>
|
||||||
|
|||||||
@@ -499,6 +499,13 @@ fletcher_4_native_varsize(const void *buf, uint64_t size, zio_cksum_t *zcp)
|
|||||||
fletcher_4_scalar_native((fletcher_4_ctx_t *)zcp, buf, size);
|
fletcher_4_scalar_native((fletcher_4_ctx_t *)zcp, buf, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
fletcher_4_byteswap_varsize(const void *buf, uint64_t size, zio_cksum_t *zcp)
|
||||||
|
{
|
||||||
|
ZIO_SET_CHECKSUM(zcp, 0, 0, 0, 0);
|
||||||
|
fletcher_4_scalar_byteswap((fletcher_4_ctx_t *)zcp, buf, size);
|
||||||
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
fletcher_4_byteswap_impl(const void *buf, uint64_t size, zio_cksum_t *zcp)
|
fletcher_4_byteswap_impl(const void *buf, uint64_t size, zio_cksum_t *zcp)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -505,7 +505,11 @@ verify_perms(uint8_t *perms, uint64_t children, uint64_t nperms,
|
|||||||
int permssz = sizeof (uint8_t) * children * nperms;
|
int permssz = sizeof (uint8_t) * children * nperms;
|
||||||
zio_cksum_t cksum;
|
zio_cksum_t cksum;
|
||||||
|
|
||||||
|
#if defined(_ZFS_BIG_ENDIAN)
|
||||||
|
fletcher_4_byteswap_varsize(perms, permssz, &cksum);
|
||||||
|
#else
|
||||||
fletcher_4_native_varsize(perms, permssz, &cksum);
|
fletcher_4_native_varsize(perms, permssz, &cksum);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (checksum != cksum.zc_word[0]) {
|
if (checksum != cksum.zc_word[0]) {
|
||||||
kmem_free(counts, countssz);
|
kmem_free(counts, countssz);
|
||||||
|
|||||||
Reference in New Issue
Block a user