Jmsg(jcr, M_FATAL, 0, _("Could not create JobMedia record for Volume=\"%s\" Job=%s\n"),
dcr->VolCatInfo.VolCatName, jcr->Job);
}
- /* If no more writers, write an EOF */
+ /* If no more writers, and no errors, and wrote something, write an EOF */
if (!dev->num_writers && dev->can_write() && dev->block_num > 0) {
dev->weof(1);
write_ansi_ibm_labels(dcr, ANSI_EOF_LABEL, dev->VolHdr.VolumeName);
- volume_unused(dcr);
+ }
+ if (!dev->num_writers) { /* if no more writers */
+ volume_unused(dcr); /* we obviously are not using the volume */
}
if (!dev->at_weot()) {
dev->VolCatInfo.VolCatFiles = dev->file; /* set number of files */
* DCRs open, each pointing to a different device.
*/
class DCR {
+private:
+ bool m_dev_locked; /* set if dev already locked */
+
public:
dlink dev_link; /* link to attach to dev */
JCR *jcr; /* pointer to JCR */
- DEVICE *dev; /* pointer to device */
+ DEVICE * volatile dev; /* pointer to device */
DEVRES *device; /* pointer to device resource */
DEV_BLOCK *block; /* pointer to block */
DEV_RECORD *rec; /* pointer to record */
bool spooling; /* set when actually spooling */
bool despooling; /* set when despooling */
bool despool_wait; /* waiting for despooling */
- bool m_dev_locked; /* set if dev already locked */
bool NewVol; /* set if new Volume mounted */
bool WroteVol; /* set if Volume written */
bool NewFile; /* set when EOF written */
#undef VERSION
#define VERSION "2.3.16"
-#define BDATE "06 April 2008"
-#define LSMDATE "06Apr08"
+#define BDATE "07 April 2008"
+#define LSMDATE "07Apr08"
#define PROG_COPYRIGHT "Copyright (C) %d-2008 Free Software Foundation Europe e.V.\n"
#define BYEAR "2008" /* year for copyright messages in progs */