+ case PRE_LABEL:
+ Pmsg0(000, _("Volume is prelabeled. This volume cannot be copied.\n"));
+ return false;
+ case VOL_LABEL:
+ Pmsg0(000, _("Volume label not copied.\n"));
+ return true;
+ case SOS_LABEL:
+ if (bsr && rec->match_stat < 1) {
+ /* Skipping record, because does not match BSR filter */
+ if (verbose) {
+ Pmsg0(-1, _("Copy skipped. Record does not match BSR filter.\n"));
+ }
+ } else {
+ jobs++;
+ }
+ break;
+ case EOS_LABEL:
+ if (bsr && rec->match_stat < 1) {
+ /* Skipping record, because does not match BSR filter */
+ return true;
+ }
+ while (!write_record_to_block(out_block, rec)) {
+ Dmsg2(150, "!write_record_to_block data_len=%d rem=%d\n", rec->data_len,
+ rec->remainder);
+ if (!write_block_to_device(out_jcr->dcr)) {
+ Dmsg2(90, "Got write_block_to_dev error on device %s: ERR=%s\n",
+ out_dev->print_name(), out_dev->bstrerror());
+ Jmsg(out_jcr, M_FATAL, 0, _("Cannot fixup device error. %s\n"),
+ out_dev->bstrerror());
+ return false;
+ }
+ }
+ if (!write_block_to_device(out_jcr->dcr)) {
+ Dmsg2(90, "Got write_block_to_dev error on device %s: ERR=%s\n",
+ out_dev->print_name(), out_dev->bstrerror());
+ Jmsg(out_jcr, M_FATAL, 0, _("Cannot fixup device error. %s\n"),
+ out_dev->bstrerror());
+ return false;
+ }
+ return true;
+ case EOM_LABEL:
+ Pmsg0(000, _("EOM label not copied.\n"));
+ return true;
+ case EOT_LABEL: /* end of all tapes */
+ Pmsg0(000, _("EOT label not copied.\n"));
+ return true;
+ default:
+ return true;