Priority:
+- the director seg faulted when I omitted the pool directive from a
+job resource. I was experimenting and thought it redundant that I had
+specified Pool, Full Backup Pool. and Differential Backup Pool. but
+apparently not. This happened when I removed the pool directive and
+started the director.
+
- On restore add Restore Client, Original Client.
01-Apr 00:42 rufus-dir: Start Backup JobId 55, Job=kernsave.2007-04-01_00.42.48
01-Apr 00:42 rufus-sd: Python SD JobStart: JobId=55 Client=Rufus
-/*
- *
- * Routines for handling the autochanger.
- *
- * Kern Sibbald, August MMII
- *
- * Version $Id$
- */
/*
Bacula® - The Network Backup Solution
- Copyright (C) 2002-2006 Free Software Foundation Europe e.V.
+ Copyright (C) 2002-2007 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.
(FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
Switzerland, email:ftf@fsfeurope.org.
*/
+/*
+ *
+ * Routines for handling the autochanger.
+ *
+ * Kern Sibbald, August MMII
+ *
+ * Version $Id$
+ */
#include "bacula.h" /* pull in global headers */
#include "stored.h" /* pull in Storage Deamon headers */
*/
void DEVICE::clear_volhdr()
{
- free_volume(this);
+ /* If we have an unused volume associated with this drive, free it */
+ if (vol && !is_busy()) {
+ free_volume(this);
+ }
Dmsg1(100, "Clear volhdr vol=%s\n", VolHdr.VolumeName);
memset(&VolHdr, 0, sizeof(VolHdr));
}
*/
void _block_device(const char *file, int line, DEVICE *dev, int state)
{
- Dmsg3(sd_dbglvl, "block set %d from %s:%d\n", state, file, line);
-
ASSERT(dev->blocked() == BST_NOT_BLOCKED);
dev->set_blocked(state); /* make other threads wait */
dev->no_wait_id = pthread_self(); /* allow us to continue */
+ Dmsg3(sd_dbglvl, "set blocked=%s from %s:%d\n", dev->print_blocked(), file, line);
}
/*
goto bail_out;
}
- if (relabel) {
- dev->close_part(dcr); /* make sure closed for rename */
+ if (relabel && !dev->is_tape()) {
+ dev->close_part(dcr); /* make sure DVD/file closed for rename */
}
/* Set the new filename for open, ... */
* when adding a new volume that no newly scheduled
* job can reserve it.
*/
-// lock_reservations();
P(vol_list_lock);
debug_list_volumes("begin reserve_volume", debug_nolock);
/*
get_out:
debug_list_volumes("end new volume", debug_nolock);
V(vol_list_lock);
-// unlock_reservations();
return vol;
}
#undef VERSION
#define VERSION "2.1.8"
-#define BDATE "18 April 2007"
-#define LSMDATE "18Apr07"
+#define BDATE "20 April 2007"
+#define LSMDATE "20Apr07"
#define PROG_COPYRIGHT "Copyright (C) %d-2007 Free Software Foundation Europe e.V.\n"
#define BYEAR "2007" /* year for copyright messages in progs */
General:
20Apr07
+kes Don't call close_part in label.c if tape and relabel.
+kes Don't free volume if busy in close() -- should help with
+ bug 801.
ebl Fix #824 RunScript bug (After script could be execute twice)
Now, Before Script can use RunsOnSuccess and RunsOnFailure options
By default (like before) RunsOnSuccess=true and RunsOnFailure=false