diff --git a/syncoid b/syncoid index 975d7c5..9052a23 100755 --- a/syncoid +++ b/syncoid @@ -24,7 +24,7 @@ GetOptions(\%args, "no-command-checks", "monitor-version", "compress=s", "dumpsn "source-bwlimit=s", "target-bwlimit=s", "sshkey=s", "sshport=i", "sshcipher|c=s", "sshoption|o=s@", "debug", "quiet", "no-stream", "no-sync-snap", "no-resume", "exclude=s@", "skip-parent", "identifier=s", "no-clone-handling", "no-privilege-elevation", "force-delete", "no-clone-rollback", "no-rollback", - "create-bookmark", + "create-bookmark", "preserve-recordsize", "mbuffer-size=s" => \$mbuffer_size) or pod2usage(2); my %compressargs = %{compressargset($args{'compress'} || 'default')}; # Can't be done with GetOptions arg, as default still needs to be set @@ -418,6 +418,11 @@ sub syncdataset { } my $oldestsnapescaped = escapeshellparam($oldestsnap); + if (defined $args{'preserve-recordsize'}) { + my $recordsize = getzfsvalue($sourcehost,$sourcefs,$sourceisroot,'recordsize'); + $recvoptions .= "-o recordsize=$recordsize" + } + my $sendcmd = "$sourcesudocmd $zfscmd send $sendoptions $sourcefsescaped\@$oldestsnapescaped"; my $recvcmd = "$targetsudocmd $zfscmd receive $recvoptions $receiveextraargs $forcedrecv $targetfsescaped";