]> git.sur5r.net Git - bacula/bacula/commitdiff
More reservations tweaks
authorKern Sibbald <kern@sibbald.com>
Sun, 6 Jan 2008 20:50:03 +0000 (20:50 +0000)
committerKern Sibbald <kern@sibbald.com>
Sun, 6 Jan 2008 20:50:03 +0000 (20:50 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6249 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/stored/dircmd.c
bacula/src/stored/reserve.c

index 57e960f94c79b7cd605409734c9ba426eb898320..1529367f08b489e2c2dd45185f9e9a9f53485bb3 100644 (file)
@@ -1,7 +1,7 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2001-2007 Free Software Foundation Europe e.V.
+   Copyright (C) 2001-2008 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.
index e65c6bb984de589300d4bff38bf85dc738d7d091..e9557e301d2bc9c2c0ad4c211cd5600a1b4345bd 100644 (file)
@@ -456,8 +456,8 @@ VOLRES *find_volume(DCR *dcr)
 }
 
 /* 
- * Remove any reservation from a drive and tell the system
- *  that the volume is unused at least by us.
+ * Remove any reservation from a drive and if no one is using
+ *  the volume, mark it unused.
  */
 void unreserve_device(DCR *dcr)
 {
@@ -475,8 +475,10 @@ void unreserve_device(DCR *dcr)
          Jmsg1(dcr->jcr, M_ERROR, 0, _("Hey! num_writers=%d!!!!\n"), dev->num_writers);
          dev->num_writers = 0;
       }
+      if (dev->reserved_device == 0 && dev->num_writers == 0) {
+         volume_unused(dcr);
+      }
    }
-   volume_unused(dcr);
 }
 
 /*  
@@ -499,11 +501,15 @@ bool volume_unused(DCR *dcr)
       return false;
    }
 
+#ifdef xxx
    if (dev->is_busy()) {
       Dmsg1(dbglvl, "vol_unused: busy on %s\n", dev->print_name());
       debug_list_volumes("dev busy cannot unreserve_volume");
       return false;
    }
+#endif
+   Dmsg2(dbglvl, "mark released. num_writers=%d reserved=%d\n",
+      dev->num_writers, dev->reserved_device);
 
    /*  
     * If this is a tape, we do not free the volume, rather we wait