HomeFreeBSD

Refine split block reconstruction

Description

Refine split block reconstruction

Due to a flaw in 4589f3ae the number of unique combinations
could be calculated incorrectly. This could result in the
random combinations reconstruction being used when it would
have been possible to check all combinations.

This change fixes the unique combinations calculation and
simplifies the reconstruction logic by maintaining a per-
segment list of unique copies.

The vdev_indirect_splits_damage() function was introduced
to validate both the enumeration and random reconstruction
logic with ztest. It is implemented such it will never
make a known recoverable block unrecoverable.

Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Serapheim Dimitropoulos <serapheim@delphix.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #6900
Closes #7934

Details

Provenance
Brian Behlendorf <behlendorf1@llnl.gov>Authored on Oct 1 2018, 5:36 PM
GitHub <noreply@github.com>Committed on Oct 1 2018, 5:36 PM
Parents
rGd12614521a30: Fixes for procfs files backed by linked lists
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rG1258bd778e82: Refine split block reconstruction (authored by Brian Behlendorf <behlendorf1@llnl.gov>).Oct 1 2018, 5:36 PM