* grub-core/fs/zfs/zfs.c (uberblock_verify): Accept version 5000.
(check_pool_label): Likewise. * include/grub/zfs/zfs.h: Rewrite SPA_VERSION_* macros.
This commit is contained in:
parent
53618046da
commit
c71dbd40a9
3 changed files with 18 additions and 12 deletions
|
@ -490,15 +490,11 @@ uberblock_verify (uberblock_phys_t * ub, grub_uint64_t offset,
|
|||
|
||||
if (grub_zfs_to_cpu64 (uber->ub_magic, GRUB_ZFS_LITTLE_ENDIAN)
|
||||
== UBERBLOCK_MAGIC
|
||||
&& grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_LITTLE_ENDIAN) > 0
|
||||
&& grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_LITTLE_ENDIAN)
|
||||
<= SPA_VERSION)
|
||||
endian = GRUB_ZFS_LITTLE_ENDIAN;
|
||||
&& SPA_VERSION_IS_SUPPORTED(grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_LITTLE_ENDIAN)))
|
||||
endian = GRUB_ZFS_LITTLE_ENDIAN;
|
||||
|
||||
if (grub_zfs_to_cpu64 (uber->ub_magic, GRUB_ZFS_BIG_ENDIAN) == UBERBLOCK_MAGIC
|
||||
&& grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_BIG_ENDIAN) > 0
|
||||
&& grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_BIG_ENDIAN)
|
||||
<= SPA_VERSION)
|
||||
&& SPA_VERSION_IS_SUPPORTED(grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_BIG_ENDIAN)))
|
||||
endian = GRUB_ZFS_BIG_ENDIAN;
|
||||
|
||||
if (endian == GRUB_ZFS_UNKNOWN_ENDIAN)
|
||||
|
@ -845,13 +841,13 @@ check_pool_label (struct grub_zfs_data *data,
|
|||
}
|
||||
grub_dprintf ("zfs", "check 8 passed\n");
|
||||
|
||||
if (version > SPA_VERSION)
|
||||
if (!SPA_VERSION_IS_SUPPORTED(version))
|
||||
{
|
||||
grub_free (nvlist);
|
||||
return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
|
||||
"too new version %llu > %llu",
|
||||
(unsigned long long) version,
|
||||
(unsigned long long) SPA_VERSION);
|
||||
(unsigned long long) SPA_VERSION_BEFORE_FEATURES);
|
||||
}
|
||||
grub_dprintf ("zfs", "check 9 passed\n");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue