HomeFreeBSD

Fix expandsz 16.0E vals and vdev_min_asize of RAIDZ children

Description

Fix expandsz 16.0E vals and vdev_min_asize of RAIDZ children

When a member of a RAIDZ has been replaced with a device smaller than the
original, then the top level vdev can report its expand size as 16.0E.

The reduced child asize causes the RAIDZ to have a vdev_asize lower than its
vdev_max_asize which then results in an underflow during the calculation of
the parents expand size.

Fix this by updating the vdev_asize if it shrinks, which is already
protected by a check against vdev_min_asize so should always be safe.

Also for RAIDZ vdevs, ensure that the sum of their child vdev_min_asize is
always greater than the parents vdev_min_size.

Fixes: https://www.illumos.org/issues/7885

MFC after: 2 weeks
Sponsored by: Multiplay

Details

Provenance
smhAuthored on
Parents
rS316459: Show high (blinking foreground/bright background) background colors. Format
Branches
Unknown
Tags
Unknown