+ return unload_dev(dcr, dev);
+}
+
+/*
+ * Unconditionally unload a specified drive
+ */
+bool unload_dev(DCR *dcr, DEVICE *dev)
+{
+ JCR *jcr = dcr->jcr;
+ bool ok = true;
+ uint32_t timeout = dcr->device->max_changer_wait;
+ AUTOCHANGER *changer = dcr->dev->device->changer_res;
+ DEVICE *save_dev;
+ int save_slot;
+
+ if (!changer) {
+ return false;
+ }
+
+ save_dev = dcr->dev; /* save dcr device */
+ dcr->dev = dev; /* temporarily point dcr at other device */
+
+ if (dev->get_slot() <= 0 && get_autochanger_loaded_slot(dcr) <= 0) {
+ dcr->dev = save_dev;
+ return false;
+ }
+ save_slot = dcr->VolCatInfo.Slot;
+ dcr->VolCatInfo.Slot = dev->get_slot();
+
+// dev->dlock();