HomeFreeBSD

loader: zfs reader should check all labels

Description

loader: zfs reader should check all labels

The current zfs reader is only checking first label from each device, however,
we do have 4 labels on device and we should check all 4 to be protected
against disk failures and incomplete label updates.

The difficulty is about the fact that 2 label copies are in front of the
pool data, and 2 are at the end, which means, we have to know the size of
the pool data area.

Since we have now the mechanism from common/disk.c to use the partition
information, it does help us in this task; however, there are still some
corner cases.

Namely, if the pool is created without partition, directly on the disk,
and firmware will give us the wrong size for the disk, we only can check
the first two label copies.

Reviewed by: allanjude
Differential Revision: https://reviews.freebsd.org/D10203

Details

Provenance
tsoomeAuthored on
Reviewer
allanjude
Differential Revision
D10203: loader: zfs reader should check all labels
Parents
rS316584: smbfs: Fix an indentation level
Branches
Unknown
Tags
Unknown