/*
Bacula® - The Network Backup Solution
- Copyright (C) 2002-2008 Free Software Foundation Europe e.V.
+ Copyright (C) 2002-2010 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.
*
* Kern Sibbald, August MMII
*
- * Version $Id$
*/
#include "bacula.h" /* pull in global headers */
slot = dcr->VolCatInfo.InChanger ? dcr->VolCatInfo.Slot : 0;
Dmsg3(100, "autoload: slot=%d InChgr=%d Vol=%s\n", dcr->VolCatInfo.Slot,
- dcr->VolCatInfo.InChanger, dcr->VolCatInfo.VolCatName);
+ dcr->VolCatInfo.InChanger, dcr->getVolCatName());
/*
* Handle autoloaders here. If we cannot autoload it, we
* will return 0 so that the sysop will be asked to load it.
changer = get_pool_memory(PM_FNAME);
if (slot <= 0) {
Jmsg(jcr, M_INFO, 0, _("Invalid slot=%d defined in catalog for Volume \"%s\" "
- "on %s. Manual load may be required.\n"), slot, dcr->VolCatInfo.VolCatName,
+ "on %s. Manual load may be required.\n"), slot, dcr->getVolCatName(),
dev->print_name());
rtn_stat = 0;
} else if (!dcr->device->changer_name) {
break;
}
if (dev->is_busy()) {
- Jmsg(dcr->jcr, M_WARNING, 0, _("Volume \"%s\" is in use by device %s\n"),
- dcr->VolumeName, dev->print_name());
+ Jmsg(dcr->jcr, M_WARNING, 0, _("Volume \"%s\" wanted on %s is in use by device %s\n"),
+ dcr->VolumeName, dcr->dev->print_name(), dev->print_name());
Dmsg4(100, "Vol %s for dev=%s is busy dev=%s slot=%d\n",
dcr->VolumeName, dcr->dev->print_name(), dev->print_name(), dev->get_slot());
Dmsg2(100, "num_writ=%d reserv=%d\n", dev->num_writers, dev->num_reserved());
+ volume_unused(dcr);
return false;
}
return unload_dev(dcr, dev);
save_slot = dcr->VolCatInfo.Slot;
dcr->VolCatInfo.Slot = dev->get_slot();
- dev->dlock();
+// dev->dlock();
POOLMEM *changer_cmd = get_pool_memory(PM_FNAME);
POOL_MEM results(PM_MESSAGE);
}
unlock_changer(dcr);
- dev->dunlock();
+// dev->dunlock();
free_volume(dev); /* Free any volume associated with this drive */
free_pool_memory(changer_cmd);
dir->fsend(_("3996 Open bpipe failed.\n"));
goto bail_out;
}
- if (strcmp(cmd, "list") == 0) {
+ if (bstrcmp(cmd, "list") || bstrcmp(cmd, "listall")) {
/* Get output from changer */
while (fgets(dir->msg, len, bpipe->rfd)) {
dir->msglen = strlen(dir->msg);