diff --git a/syncoid b/syncoid index 5c08120..bc7b3dc 100755 --- a/syncoid +++ b/syncoid @@ -699,11 +699,9 @@ sub syncdataset { # do an replication to it and replicate as always from oldest to newest # because bookmark sends doesn't support intermediates directly foreach my $snap ( sort { sortsnapshots(\%snaps, $a, $b, 'source') } keys %{ $snaps{'source'} }) { - my $comparisonkey = 'creation'; - if (defined $snaps{'source'}{$snap}{'createtxg'} && defined $bookmark{'createtxg'}) { - $comparisonkey = 'createtxg'; - } - if ($snaps{'source'}{$snap}{$comparisonkey} >= $bookmark{$comparisonkey}) { + my $comparetxg = defined $snaps{'source'}{$snap}{'createtxg'} && defined $bookmark{'createtxg'}; + if (($comparetxg && $snaps{'source'}{$snap}{'createtxg'} >= $bookmark{'createtxg'}) || + substr($snaps{'source'}{$snap}{'creation'}, 0, -3) >= $bookmark{'creation'}) { $nextsnapshot = $snap; last; }