HomeFreeBSD

fix dsl_scan_ds_clone_swapped logic

Description

fix dsl_scan_ds_clone_swapped logic

It was incorrect with respect to swapping dataset IDs both in the
on-disk ZAP object and the in-memory queue.

In both cases, if only ds1 was already present, then it would be first
replaced with ds2 and then ds2 would be replaced back with ds1. Also,
both cases did not properly handle a situation where both ds1 and ds2
are already queued. A duplicate insertion would be attempted and its
failure would result in a panic.

This change has also been submitted to ZoL as zfsonlinux/zfs@dd262c9

PR: 239566
Reported by: pascal.guitierrez@gmail.com
MFC after: 4 days
Sponsored by: CyberSecure

Details

Provenance
avgAuthored on
Parents
rS352505: vt: fix problems with trying to switch to a closed VT
Branches
Unknown
Tags
Unknown