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