]> git.sur5r.net Git - bacula/bacula/commitdiff
Better fix for bug #1603 restart of Virtual Full
authorKern Sibbald <kern@sibbald.com>
Fri, 25 Feb 2011 05:06:08 +0000 (06:06 +0100)
committerKern Sibbald <kern@sibbald.com>
Sat, 20 Apr 2013 12:43:29 +0000 (14:43 +0200)
bacula/src/dird/jobq.c
bacula/src/dird/vbackup.c
bacula/src/jcr.h

index 42d2cea16d97c05c14c27f8d465503963348a327..026b0f84e9f60bf256bc1cc9cefed0fd1400ee5d 100644 (file)
@@ -663,7 +663,7 @@ static bool reschedule_job(JCR *jcr, jobq_t *jq, jobq_item_t *je)
           * Special test here since a Virtual Full gets marked
           *  as a Full, so we look at the resource record
           */
-         if (jcr->job->JobLevel == L_VIRTUAL_FULL) {
+         if (jcr->wasVirtualFull) {
             jcr->setJobLevel(L_VIRTUAL_FULL);
          }
          jobq_add(jq, jcr);     /* queue the job to run again */
@@ -686,7 +686,7 @@ static bool reschedule_job(JCR *jcr, jobq_t *jq, jobq_item_t *je)
        * Special test here since a Virtual Full gets marked
        *  as a Full, so we look at the resource record
        */
-      if (jcr->job->JobLevel == L_VIRTUAL_FULL) {
+      if (jcr->wasVirtualFull) {
          njcr->setJobLevel(L_VIRTUAL_FULL);
       } else {
          njcr->setJobLevel(jcr->getJobLevel());
index 0375a0d0ad2b046dd058d0abf7f2f47fe39f9783..59c33efb6fd12a01d7e1c1657f9842a6818ab25e 100644 (file)
@@ -1,7 +1,7 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2008-2009 Free Software Foundation Europe e.V.
+   Copyright (C) 2008-2011 Free Software Foundation Europe e.V.
 
    The main author of Bacula is Kern Sibbald, with contributions from
    many others, a complete list can be found in the file AUTHORS.
@@ -41,7 +41,6 @@
  *       to do the backup.
  *     When the File daemon finishes the job, update the DB.
  *
- *   Version $Id: $
  */
 
 #include "bacula.h"
@@ -142,6 +141,8 @@ bool do_vbackup(JCR *jcr)
       ((STORE *)jcr->rstorage->first())->name(),
       ((STORE *)jcr->wstorage->first())->name());
 
+   jcr->wasVirtualFull = true;        /* remember where we came from */
+
    /* Print Job Start message */
    Jmsg(jcr, M_INFO, 0, _("Start Virtual Backup JobId %s, Job=%s\n"),
         edit_uint64(jcr->JobId, ed1), jcr->Job);
index adb760aa899880ceee174320a078cef253a1b1aa..e4fecfacabdea2b73c144eb7327f53a4c8718057 100644 (file)
@@ -342,6 +342,7 @@ public:
    int32_t reschedule_count;          /* Number of times rescheduled */
    int32_t FDVersion;                 /* File daemon version number */
    int64_t spool_size;                /* Spool size for this job */
+   bool wasVirtualFull;               /* set if job was VirtualFull */
    bool spool_data;                   /* Spool data in SD */
    bool acquired_resource_locks;      /* set if resource locks acquired */
    bool term_wait_inited;             /* Set when cond var inited */