X-Git-Url: https://git.gag.com/?p=debian%2Famanda;a=blobdiff_plain;f=device-src%2Famtapetype.pl;h=bbc7d32aa34e0a8572b0aedb2f3c54a75e294734;hp=171f5a2c57d42dba440191ed4dd2b971e614e1cf;hb=b116e9366c7b2ea2c2eb53b0a13df4090e176235;hpb=fd48f3e498442f0cbff5f3606c7c403d0566150e diff --git a/device-src/amtapetype.pl b/device-src/amtapetype.pl index 171f5a2..bbc7d32 100644 --- a/device-src/amtapetype.pl +++ b/device-src/amtapetype.pl @@ -22,6 +22,7 @@ use lib '@amperldir@'; use strict; +use warnings; use File::Basename; use Getopt::Long; @@ -159,7 +160,7 @@ sub write_one_file(%) { } else { die "Unknown PATTERN $pattern"; } - $dest = Amanda::Xfer::Dest::Device->new($device, 0); + $dest = Amanda::Xfer::Dest::Device->new($device, 1); $xfer = Amanda::Xfer->new([$source, $dest]); # set up the relevant callbacks @@ -216,6 +217,10 @@ sub write_one_file(%) { return $device->error_or_status(); } + if ($got_error && $got_error =~ /LEOM detected/) { + return "LEOM"; + } + if ($got_error) { return $got_error; } @@ -456,12 +461,12 @@ sub check_property { if ($need_fsf_after_filemark == 0 && $fsf_after_filemark_works == 0) { if (defined $opt_property || $fsf_after_filemark) { - print STDOUT "device_property \"FSF_AFTER_FILEMARK\" \"false\"\n"; + print STDOUT "device-property \"FSF_AFTER_FILEMARK\" \"false\"\n"; } $device->property_set('FSF_AFTER_FILEMARK', 0); } elsif ($need_fsf_after_filemark == 1 && $fsf_after_filemark_works == 1) { if (defined $opt_property || !$fsf_after_filemark) { - print STDOUT "device_property \"FSF_AFTER_FILEMARK\" \"true\"\n"; + print STDOUT "device-property \"FSF_AFTER_FILEMARK\" \"true\"\n"; } $device->property_set('FSF_AFTER_FILEMARK', 1); } else { @@ -575,6 +580,12 @@ sub make_tapetype { $speed_estimate = int $speed_estimate; print STDERR "Wrote $volume_size_estimate bytes at $speed_estimate kb/sec\n"; + my $leom = 0; + if ($err eq 'LEOM') { + print STDERR "Got LEOM indication, so drive and kernel together support LEOM\n"; + $leom = 1; + } + # now we want to write about 100 filemarks; round down to the blocksize # to avoid counting padding as part of the filemark my $file_size = $volume_size_estimate / 100; @@ -604,13 +615,13 @@ sub make_tapetype { my $volume_size_estimate_kb = $volume_size_estimate/1024; my $filemark_kb = $filemark_estimate/1024; - # and suggest using device_property for blocksize if it's not an even multiple + # and suggest using device-property for blocksize if it's not an even multiple # of 1kb my $blocksize_line; if ($blocksize % 1024 == 0) { $blocksize_line = "blocksize " . $blocksize/1024 . " kbytes"; } else { - $blocksize_line = "# add device_property \"BLOCK_SIZE\" \"$blocksize\" to the device"; + $blocksize_line = "# add device-property \"BLOCK_SIZE\" \"$blocksize\" to the device"; } print <