diff -up bacula-2.0.3/src/stored/dev.h.restore bacula-2.0.3/src/stored/dev.h --- bacula-2.0.3/src/stored/dev.h.restore 2007-09-13 12:32:46.000000000 +0200 +++ bacula-2.0.3/src/stored/dev.h 2007-09-13 12:34:56.000000000 +0200 @@ -438,6 +438,7 @@ public: uint32_t StartFile; /* Start write file */ uint32_t StartBlock; /* Start write block */ uint32_t EndBlock; /* Ending block written */ + int64_t VolMediaId; /* MediaId */ int64_t job_spool_size; /* Current job spool size */ int64_t max_job_spool_size; /* Max job spool size */ char VolumeName[MAX_NAME_LENGTH]; /* Volume name */ diff -up bacula-2.0.3/src/stored/askdir.c.restore bacula-2.0.3/src/stored/askdir.c --- bacula-2.0.3/src/stored/askdir.c.restore 2007-09-13 12:32:54.000000000 +0200 +++ bacula-2.0.3/src/stored/askdir.c 2007-09-13 12:34:56.000000000 +0200 @@ -391,7 +391,7 @@ bool dir_create_jobmedia_record(DCR *dcr dcr->StartFile, dcr->EndFile, dcr->StartBlock, dcr->EndBlock, dcr->Copy, dcr->Stripe, - edit_uint64(dcr->dev->VolCatInfo.VolMediaId, ed1)); + edit_uint64(dcr->VolMediaId, ed1)); Dmsg1(100, ">dird: %s", dir->msg); if (bnet_recv(dir) <= 0) { Dmsg0(190, "create_jobmedia error bnet_recv\n"); diff -up bacula-2.0.3/src/stored/bscan.c.restore bacula-2.0.3/src/stored/bscan.c --- bacula-2.0.3/src/stored/bscan.c.restore 2007-09-13 12:32:36.000000000 +0200 +++ bacula-2.0.3/src/stored/bscan.c 2007-09-13 12:34:56.000000000 +0200 @@ -328,6 +328,7 @@ static bool bscan_mount_next_read_volume // mdcr->EndBlock = (uint32_t)dcr->file_addr; // mdcr->EndFile = (uint32_t)(dcr->file_addr >> 32); } + mdcr->VolMediaId = dcr->VolMediaId; mjcr->read_dcr->VolLastIndex = dcr->VolLastIndex; if (!create_jobmedia_record(db, mjcr)) { Pmsg2(000, _("Could not create JobMedia record for Volume=%s Job=%s\n"), @@ -472,6 +473,7 @@ static bool record_cb(DCR *dcr, DEV_RECO dcr->VolFirstIndex = dcr->FileIndex = 0; dcr->StartBlock = dcr->EndBlock = 0; dcr->StartFile = dcr->EndFile = 0; + dcr->VolMediaId = 0; } Pmsg1(000, _("VOL_LABEL: OK for Volume: %s\n"), mr.VolumeName); @@ -1174,6 +1176,7 @@ static int create_jobmedia_record(B_DB * dcr->EndFile = (uint32_t)(dev->file_addr >> 32); #endif } + dcr->VolMediaId = dev->VolCatInfo.VolMediaId; memset(&jmr, 0, sizeof(jmr)); jmr.JobId = mjcr->JobId; diff -up bacula-2.0.3/src/stored/block.c.restore bacula-2.0.3/src/stored/block.c --- bacula-2.0.3/src/stored/block.c.restore 2007-09-13 12:32:42.000000000 +0200 +++ bacula-2.0.3/src/stored/block.c 2007-09-13 12:34:56.000000000 +0200 @@ -612,6 +612,7 @@ bool write_block_to_dev(DCR *dcr) dev->block_num = dcr->EndBlock; dev->file = dcr->EndFile; } + dcr->VolMediaId = dev->VolCatInfo.VolMediaId; if (dcr->VolFirstIndex == 0 && block->FirstIndex > 0) { dcr->VolFirstIndex = block->FirstIndex; } @@ -1107,6 +1108,7 @@ reread: dev->block_num = dcr->EndBlock; dev->file = dcr->EndFile; } + dcr->VolMediaId = dev->VolCatInfo.VolMediaId; dev->file_addr += block->read_len; dev->file_size += block->read_len;