]> git.sur5r.net Git - bacula/bacula/commitdiff
Tweak volume swapping code so it works.
authorKern Sibbald <kern@sibbald.com>
Thu, 10 Apr 2008 18:25:56 +0000 (18:25 +0000)
committerKern Sibbald <kern@sibbald.com>
Thu, 10 Apr 2008 18:25:56 +0000 (18:25 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6792 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/stored/autochanger.c
bacula/src/stored/mount.c
bacula/src/stored/reserve.c
bacula/technotes-2.3

index 3416c632917f91c110ecf6f3f86dba0acbea39c1..a6f37b671675216edf4b35bba60ea46c8f7cf9bf 100644 (file)
@@ -436,7 +436,7 @@ bool unload_dev(DCR *dcr, DEVICE *dev)
    DEVICE *save_dev;
    int save_slot;
 
-   if (!changer) {
+   if (!changer || dev->Slot <= 0) {
       return false;
    }
    dev->dlock();
index ed7fd6bf54f50c26cb787872c6614810b45d7265..08b0b33d474c0b2a255aeb82fa334f209d54be5a 100644 (file)
@@ -114,6 +114,7 @@ mount_next_vol:
     *  volume to our drive.
     */
    if (swap_dev) {
+      Dmsg1(150, "Swap vol=%d\n", swap_dev->vol->vol_name);
       dev->vol = swap_dev->vol;      /* take its volume */
       swap_dev->vol = NULL;
       unload_dev(dcr, swap_dev);
index 3d5455669e76eedda5074f752e27f5dafb9219af..d1fce56d977c01ca748ca8458f476efaa1765f97 100644 (file)
@@ -402,9 +402,12 @@ VOLRES *reserve_volume(DCR *dcr, const char *VolumeName)
             vol = NULL;                 /* device busy */
             goto get_out;
          }
+      } else {
+         dev->vol = vol;
       }
+   } else {
+      dev->vol = vol;                    /* point to newly inserted volume */
    }
-   dev->vol = vol;
 
 get_out:
    if (vol) {
index 3e47d4dc13fb5e08d34fbd6b0ada7e614e413f89..a4fb85ceb83a6a4edfe098641e5ed51c95797fc7 100644 (file)
@@ -25,6 +25,7 @@ Add long term statistics job table
 
 General:
 10Apr08
+kes  Tweak volume swapping code so it works.
 kes  Correct name overloading in mount.c
 kes  Replace released flag in VOLRES with reserved and add access
      methods for the VOLRES class.