}
if (!dcr->dev_locked) { /* device already locked? */
- lock_device(dev); /* no, lock it */
+ dev->r_dlock(); /* no, lock it */
}
/*
bail_out:
if (!dcr->dev_locked) { /* did we lock dev above? */
- unlock_device(dev); /* unlock it now */
+ dev->dunlock(); /* unlock it now */
}
return stat;
}
if (retry > 0 && stat == -1 && errno == EBUSY) {
berrno be;
Dmsg4(100, "===== write retry=%d stat=%d errno=%d: ERR=%s\n",
- retry, stat, errno, be.strerror());
+ retry, stat, errno, be.bstrerror());
bmicrosleep(5, 0); /* pause a bit if busy or lots of errors */
dev->clrerror(-1);
}
if (dev->dev_errno != ENOSPC) {
dev->VolCatInfo.VolCatErrors++;
Jmsg4(jcr, M_ERROR, 0, _("Write error at %u:%u on device %s. ERR=%s.\n"),
- dev->file, dev->block_num, dev->print_name(), be.strerror());
+ dev->file, dev->block_num, dev->print_name(), be.bstrerror());
}
} else {
dev->dev_errno = ENOSPC; /* out of space */
berrno be;
ok = false;
Jmsg(jcr, M_ERROR, 0, _("Backspace file at EOT failed. ERR=%s\n"),
- be.strerror(dev->dev_errno));
+ be.bstrerror(dev->dev_errno));
}
if (ok && dev->has_cap(CAP_TWOEOF) && !dev->bsf(1)) {
berrno be;
ok = false;
Jmsg(jcr, M_ERROR, 0, _("Backspace file at EOT failed. ERR=%s\n"),
- be.strerror(dev->dev_errno));
+ be.bstrerror(dev->dev_errno));
}
/* Backspace over record */
if (ok && !dev->bsr(1)) {
berrno be;
ok = false;
Jmsg(jcr, M_ERROR, 0, _("Backspace record at EOT failed. ERR=%s\n"),
- be.strerror(dev->dev_errno));
+ be.bstrerror(dev->dev_errno));
/*
* On FreeBSD systems, if the user got here, it is likely that his/her
* tape drive is "frozen". The correct thing to do is a
bool ok;
DEVICE *dev = dcr->dev;
Dmsg0(200, "Enter read_block_from_device\n");
- lock_device(dev);
+ dev->r_dlock();
ok = read_block_from_dev(dcr, check_block_numbers);
- unlock_device(dev);
+ dev->dunlock();
Dmsg0(200, "Leave read_block_from_device\n");
return ok;
}
if ((retry > 0 && stat == -1 && errno == EBUSY)) {
berrno be;
Dmsg4(100, "===== read retry=%d stat=%d errno=%d: ERR=%s\n",
- retry, stat, errno, be.strerror());
+ retry, stat, errno, be.bstrerror());
bmicrosleep(10, 0); /* pause a bit if busy or lots of errors */
dev->clrerror(-1);
}
if (stat < 0) {
berrno be;
dev->clrerror(-1);
- Dmsg1(200, "Read device got: ERR=%s\n", be.strerror());
+ Dmsg1(200, "Read device got: ERR=%s\n", be.bstrerror());
block->read_len = 0;
Mmsg5(dev->errmsg, _("Read error on fd=%d at file:blk %u:%u on device %s. ERR=%s.\n"),
- dev->fd(), dev->file, dev->block_num, dev->print_name(), be.strerror());
+ dev->fd(), dev->file, dev->block_num, dev->print_name(), be.bstrerror());
Jmsg(jcr, M_ERROR, 0, "%s", dev->errmsg);
if (dev->at_eof()) { /* EOF just seen? */
dev->set_eot(); /* yes, error => EOT */
dev->VolCatInfo.VolCatReads++;
dev->VolCatInfo.VolCatRBytes += block->read_len;
- dev->VolCatInfo.VolCatBytes += block->block_len;
- dev->VolCatInfo.VolCatBlocks++;
- if (dev->VolCatInfo.VolFirstWritten == 0) {
- dev->VolCatInfo.VolFirstWritten = (utime_t)time(NULL); /* Set first written time */
- }
dev->EndBlock = dev->block_num;
dev->EndFile = dev->file;
dev->block_num++;