]> git.sur5r.net Git - bacula/bacula/commitdiff
Implement new attached_dcrs code
authorKern Sibbald <kern@sibbald.com>
Sun, 18 Jul 2004 18:57:50 +0000 (18:57 +0000)
committerKern Sibbald <kern@sibbald.com>
Sun, 18 Jul 2004 18:57:50 +0000 (18:57 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@1483 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/stored/acquire.c
bacula/src/stored/block.c
bacula/src/stored/bscan.c

index e1fe5acfab31b17050ca8bc02537731ff9ce196c..147137deae138f94580ccc2f9956f63ff6f00411 100644 (file)
@@ -214,7 +214,7 @@ default_path:
 
    dev->state &= ~ST_APPEND;         /* clear any previous append mode */
    dev->state |= ST_READ;            /* set read mode */
-   attach_jcr_to_device(dev, jcr);    /* attach jcr to device */
+// attach_jcr_to_device(dev, jcr);    /* attach jcr to device */
    set_jcr_job_status(jcr, JS_Running);
    dir_send_job_status(jcr);
    Jmsg(jcr, M_INFO, 0, _("Ready to read from volume \"%s\" on device %s.\n"),
@@ -344,7 +344,7 @@ DCR *acquire_device_for_append(JCR *jcr)
    if (jcr->NumVolumes == 0) {
       jcr->NumVolumes = 1;
    }
-   attach_jcr_to_device(dev, jcr);    /* attach jcr to device */
+// attach_jcr_to_device(dev, jcr);    /* attach jcr to device */
    set_jcr_job_status(jcr, JS_Running);
    dir_send_job_status(jcr);
    goto ok_out;
@@ -411,7 +411,7 @@ bool release_device(JCR *jcr)
       Jmsg2(jcr, M_ERROR, 0, _("BAD ERROR: release_device %s, Volume \"%s\" not in use.\n"), 
            dev_name(dev), NPRT(jcr->VolumeName));
    }
-   detach_jcr_from_device(dev, jcr);
+// detach_jcr_from_device(dev, jcr);
    if (dev->prev && !dev_state(dev, ST_READ) && !dev->num_writers) {
       P(mutex);
       unlock_device(dev);
index 91b6a5546693ba39fc0e6d600ad536930e22de6b..0c8f24d440c84c7682d08e961e2a9d488b315545 100644 (file)
@@ -326,7 +326,6 @@ bool write_block_to_device(DCR *dcr, DEV_BLOCK *block)
    DEVICE *dev = dcr->dev;
    JCR *jcr = dcr->jcr;
 
-
    if (dcr->spooling) {
       stat = write_block_to_spool_file(dcr, block);
       return stat;
@@ -503,12 +502,26 @@ bool write_block_to_dev(DCR *dcr, DEV_BLOCK *block)
        * Walk through all attached jcrs indicating the file has changed   
        */
       Dmsg1(100, "Walk attached jcrs. Volume=%s\n", dev->VolCatInfo.VolCatName);
+#ifdef xxx
       for (JCR *mjcr=NULL; (mjcr=next_attached_jcr(dev, mjcr)); ) {
         if (mjcr->JobId == 0) {
            continue;                 /* ignore console */
         }
         mjcr->dcr->NewFile = true;   /* set reminder to do set_new_file_params */
       }
+#endif
+      /*
+       * Walk through all attached dcrs setting flag to call
+       * set_new_file_parameters() when that dcr is next used.
+       */
+      DCR *mdcr;
+      foreach_dlist(mdcr, dev->attached_dcrs) {
+        if (mdcr->jcr->JobId == 0) {
+           continue;
+        }
+        mdcr->NewFile = true;        /* set reminder to do set_new_file_params */
+      }
+      /* Set new file/block parameters for current dcr */
       set_new_file_parameters(dcr);
    }
 
index cea25ce223759e94755ec0f8ca871b487421df1c..189ce81df5fe912cd534679bc8d94091bcc0fad7 100644 (file)
@@ -1152,7 +1152,7 @@ static JCR *create_jcr(JOB_DBR *jr, DEV_RECORD *rec, uint32_t JobId)
    jobjcr->VolSessionId = rec->VolSessionId;
    jobjcr->VolSessionTime = rec->VolSessionTime;
    jobjcr->ClientId = jr->ClientId;
-   attach_jcr_to_device(dev, jobjcr);
+// attach_jcr_to_device(dev, jobjcr);
    new_dcr(jobjcr, dev);
    return jobjcr;
 }