continue;
} else if (dev->at_eof()) {
+#ifdef neeeded_xxx
if (verbose) {
char *fp;
uint32_t fp_num;
fp_num = dev->file;
}
Jmsg(jcr, M_INFO, 0, _("End of %s %u on device %s, Volume \"%s\"\n"),
- fp, fp_num, dev->print_name(), dcr->VolumeName);
+ fp, fp_num, dev->print_name(), dcr->VolumeName);
}
+#endif
Dmsg3(200, "End of file %u on device %s, Volume \"%s\"\n",
dev->file, dev->print_name(), dcr->VolumeName);
continue;
rec->match_stat = match_bsr(jcr->bsr, rec, &dev->VolHdr, &sessrec, jcr);
if (rec->match_stat == -1) { /* no more possible matches */
done = true; /* all items found, stop */
- Dmsg2(100, "All done=(file:block) %u:%u\n", dev->file, dev->block_num);
+ Dmsg2(dbglvl, "All done=(file:block) %u:%u\n", dev->file, dev->block_num);
break;
} else if (rec->match_stat == 0) { /* no match */
- Dmsg4(100, "BSR no match: clear rem=%d FI=%d before set_eof pos %u:%u\n",
+ Dmsg4(dbglvl, "BSR no match: clear rem=%d FI=%d before set_eof pos %u:%u\n",
rec->remainder, rec->FileIndex, dev->file, dev->block_num);
rec->remainder = 0;
rec->state &= ~REC_PARTIAL_RECORD;
* when find_next_bsr() is fixed not to return a bsr already
* completed.
*/
- if (dev->file > bsr->volfile->sfile ||
- (dev->file == bsr->volfile->sfile && dev->block_num > bsr->volblock->sblock)) {
+ uint32_t block, file;
+ /* TODO: use dev->file_addr ? */
+ uint64_t dev_addr = (((uint64_t) dev->file)<<32) | dev->block_num;
+ uint64_t bsr_addr = get_bsr_start_addr(bsr, &file, &block);
+
+ if (dev_addr > bsr_addr) {
return false;
}
- if (verbose) {
- Jmsg(jcr, M_INFO, 0, _("Reposition from (file:block) %u:%u to %u:%u\n"),
- dev->file, dev->block_num, bsr->volfile->sfile,
- bsr->volblock->sblock);
- }
Dmsg4(10, "Try_Reposition from (file:block) %u:%u to %u:%u\n",
- dev->file, dev->block_num, bsr->volfile->sfile,
- bsr->volblock->sblock);
- dev->reposition(dcr, bsr->volfile->sfile, bsr->volblock->sblock);
+ dev->file, dev->block_num, file, block);
+ dev->reposition(dcr, file, block);
rec->Block = 0;
}
return false;
{
BSR *bsr = NULL;
DEVICE *dev = dcr->dev;
+ uint32_t file, block;
/*
* Now find and position to first file and block
* on this tape.
if (jcr->bsr) {
jcr->bsr->reposition = true; /* force repositioning */
bsr = find_next_bsr(jcr->bsr, dev);
- if (bsr && (bsr->volfile->sfile != 0 || bsr->volblock->sblock != 0)) {
+
+ if (get_bsr_start_addr(bsr, &file, &block) > 0) {
Jmsg(jcr, M_INFO, 0, _("Forward spacing Volume \"%s\" to file:block %u:%u.\n"),
- dev->VolHdr.VolumeName,
- bsr->volfile->sfile, bsr->volblock->sblock);
- dev->reposition(dcr, bsr->volfile->sfile, bsr->volblock->sblock);
+ dev->VolHdr.VolumeName, file, block);
+ dev->reposition(dcr, file, block);
}
}
return bsr;