HomeFreeBSD

libbe: promote activated BEs all the way

Description

libbe: promote activated BEs all the way

This matches the beadm behavior; generally, we need to keep promoting
until the BE is no longer a clone from a snapshot. This fixes scenarios
where the dataset associated with a BE's origin is itself a clone,
activating the BE previously would promote it to a clone of the origin's
origin.

We could keep using be_get_dataset_props here, except for two
annoyances:

1.) I couldn't find a clean way to just clear an nvlist rather than

having to re-alloc it, and I didn't want to just remove the one prop
we're inspecting out of it.

2.) That's a lot of overhead when all we want to do is fetch the origin

anyways.

Note that this is not a complete fix, but it does fix the majority of
cases; deep BE subordinates are still notably broken, pending a patch
from Christian.

Reported by: R. Christian McDonald <rcm@rcm.sh>
Reviewed by: rew
Differential Revision: https://reviews.freebsd.org/D40903

Details

Provenance
kevansAuthored on Jul 11 2023, 5:43 AM
Reviewer
rew
Differential Revision
D40903: libbe: promote activated BEs all the way
Parents
rG43ed91e00bbb: igc: Increase default per-queue interrupt rate to 20000.
Branches
Unknown
Tags
Unknown