]> git.sur5r.net Git - bacula/bacula/commitdiff
kes Enhance a couple of SD debug messages.
authorKern Sibbald <kern@sibbald.com>
Sat, 24 May 2008 09:31:52 +0000 (09:31 +0000)
committerKern Sibbald <kern@sibbald.com>
Sat, 24 May 2008 09:31:52 +0000 (09:31 +0000)
kes  Tweak unload flag setting and ensure it is set during swap.

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@7015 91ce42f0-d328-0410-95d8-f526ca767f89

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

index 97c0e1fbc48a86c8fe33af028ab2816afec7bd0d..e798d9fa6865ae4d5fbfb10ca420ccd7ef9f9199 100644 (file)
@@ -187,7 +187,7 @@ int autoload_device(DCR *dcr, int writing, BSOCK *dir)
           * Load the desired cassette
           */
          lock_changer(dcr);
-         Dmsg1(100, "Doing changer load slot %d\n", slot);
+         Dmsg2(100, "Doing changer load slot %d %s\n", slot, dev->print_name());
          Jmsg(jcr, M_INFO, 0,
               _("3304 Issuing autochanger \"load slot %d, drive %d\" command.\n"),
               slot, drive);
@@ -338,6 +338,7 @@ bool unload_autochanger(DCR *dcr, int loaded)
 
    /* Virtual disk autochanger */
    if (dcr->device->changer_command[0] == 0) {
+      dev->clear_unload();
       return true;
    }
 
@@ -371,12 +372,12 @@ bool unload_autochanger(DCR *dcr, int loaded)
       } else {
          dev->Slot = 0;            /* nothing loaded */
       }
-      dev->clear_unload();
       unlock_changer(dcr);
 
       free_volume(dev);            /* Free any volume associated with this drive */
       free_pool_memory(changer);
    }
+   dev->clear_unload();
    return ok;
 }
 
@@ -481,8 +482,8 @@ bool unload_dev(DCR *dcr, DEVICE *dev)
       ok = false;
       dev->Slot = -1;          /* unknown */
    } else {
+      Dmsg2(100, "Slot %d unloaded %s\n", dev->Slot, dev->print_name());
       dev->Slot = 0;           /* nothing loaded */
-      Dmsg0(100, "Slot unloaded\n");
    }
    dev->clear_unload();
    unlock_changer(dcr);
index 9387a4ac29b5518acc55849d16dec11f6817327f..5891d6d0ec05ac13a6ba4031db1a0b97264d4274 100644 (file)
@@ -917,7 +917,6 @@ static bool release_cmd(JCR *jcr)
             send_dir_busy_message(dir, dev);
          } else {                     /* device not being used */
             Dmsg0(90, "Device not in use, releasing\n");
-            unload_autochanger(dcr, -1);
             dcr->release_volume();
             dir->fsend(_("3022 Device %s released.\n"), 
                dev->print_name());
index 2f292de2091c3d28fd4cd36e465ac069f61ee6ce..48a050b875fcf3be338665682c08fe60ddef7b05 100644 (file)
@@ -474,7 +474,6 @@ void DCR::do_swapping(bool is_writing)
 {
    if (dev->must_unload()) {
       Dmsg1(100, "swapping: unloading %s\n", dev->print_name());
-      unload_autochanger(this, -1);
       release_volume();
       dev->clear_unload();
    }
@@ -670,6 +669,8 @@ void DCR::mark_volume_not_inchanger()
  */
 void DCR::release_volume()
 {
+   unload_autochanger(this, -1);
+
    if (WroteVol) {
       Jmsg0(jcr, M_ERROR, 0, _("Hey!!!!! WroteVol non-zero !!!!!\n"));
       Dmsg0(190, "Hey!!!!! WroteVol non-zero !!!!!\n");
index b9ad674d2fba709215532e58c9e7d114301177a3..f3118d861dfcc1aeb00fb7975f5a4bf8e823ca2a 100644 (file)
@@ -187,17 +187,6 @@ void debug_list_volumes(const char *imsg)
       Dmsg1(dbglvl, "%s", msg.c_str());
    }
 
-#ifdef xxx
-   DEVICE *dev = NULL;
-   foreach_dlist(vol, vol_list) {
-      if (vol->dev == dev) {
-         Dmsg0(dbglvl, "Two Volumes on same device.\n");
-         ASSERT(0);
-         dev = vol->dev;
-      }
-   }
-#endif
-
    unlock_volumes();
 }
 
@@ -358,6 +347,7 @@ VOLRES *reserve_volume(DCR *dcr, const char *VolumeName)
          }
          Dmsg2(dbglvl, "reserve_vol free vol=%s at %p\n", vol->vol_name, vol->vol_name);
          free_volume(dev);
+//       volume_unused(dcr);
          dev->set_unload();             /* have to unload current volume */
          debug_list_volumes("reserve_vol free");
       }
@@ -398,8 +388,10 @@ VOLRES *reserve_volume(DCR *dcr, const char *VolumeName)
             Dmsg3(dbglvl, "==== Swap vol=%s from dev=%s to %s\n", 
                VolumeName, vol->dev->print_name(), dev->print_name());
             free_volume(dev);            /* free any volume attached to our drive */
+//          volume_unused(dcr);
+            dev->set_unload();           /* Unload any volume that is on our drive */
             dcr->dev = vol->dev;         /* temp point to other dev */
-            slot = get_autochanger_loaded_slot(dcr);  /* get slot */
+            slot = get_autochanger_loaded_slot(dcr);  /* get slot on other drive */
             dcr->dev = dev;              /* restore dev */
             vol->set_slot(slot);         /* save slot */
             vol->dev->set_unload();      /* unload the other drive */
@@ -600,7 +592,7 @@ bool free_volume(DEVICE *dev)
    if (!vol->is_swapping()) {
       dev->vol = NULL;
       vol_list->remove(vol);
-      Dmsg2(dbglvl, "=== free_volume %s dev=%s\n", vol->vol_name, dev->print_name());
+      Dmsg2(dbglvl, "=== remove volume %s dev=%s\n", vol->vol_name, dev->print_name());
       free_vol_item(vol);
       debug_list_volumes("free_volume");
    }
index 9f4b0157ed3db0eee66bb7d1232ffbdef49106fc..fd666a695d53332ea7a2c6dfeff744455516920c 100644 (file)
@@ -3,9 +3,9 @@
  */
 
 #undef  VERSION
-#define VERSION "2.3.21"
-#define BDATE   "21 May 2008"
-#define LSMDATE "21May08"
+#define VERSION "2.3.22"
+#define BDATE   "24 May 2008"
+#define LSMDATE "24May08"
 
 #define PROG_COPYRIGHT "Copyright (C) %d-2008 Free Software Foundation Europe e.V.\n"
 #define BYEAR "2008"       /* year for copyright messages in progs */
index fdf992b50d2ca2b38a8f2721c3a9584b791bd039..a6edbba14f7060632cd5280b84756431d408a25a 100644 (file)
@@ -24,6 +24,9 @@ Add long term statistics job table
 
 
 General:
+24May08
+kes  Enhance a couple of SD debug messages.
+kes  Tweak unload flag setting and ensure it is set during swap.
 23May08
 ebl  Fix #1091 about bad output in estimate command.
 21May08