General:
 
 Changes to 1.37.28:
+06Jul05
+- Modify mtx-changer.in script to return slot:barcode for
+  Volumes that are loaded in the drives.
+- Correct some more places where dev->is_blocked() needs
+  to be checked in dircmd.c in SD.
+- Update doc.
 05Jul05
 - Add code to ensure that reserved but unused volumes
   are freed. 
 
 
    list) 
 #     echo "Doing mtx -f $ctl -- to list volumes"
-      ${MTX} -f $ctl status | grep " *Storage Element [0-9]*:.*Full" | awk "{print \$3 \$4}" | sed "s/Full *\(:VolumeTag=\)*//"
-# Comment out the previous line and add a line here
-# to print "fake" barcodes.
+      ${MTX} -f $ctl status >${TMPDIR}/mtx.$$
+      rtn=$?
+      cat ${TMPDIR}/mtx.$$ | grep " *Storage Element [0-9]*:.*Full" | awk "{print \$3 \$4}" | sed "s/Full *\(:VolumeTag=\)*//"
+      cat ${TMPDIR}/mtx.$$ | grep "^Data Transfer Element [0-9]*:Full (Storage Element [0-9]*Loaded" | awk '{printf "%s:%s\n",$7,$10}'
 #
 # If you have a VXA PacketLoader and the above does not work, try
 #  turning it off and enabling the following line.
 #     ${MTX} -f $ctl status | grep " *Storage Element [0-9]*:.*Full" | sed "s/*Storage Element //" | sed "s/Full :VolumeTag=//"
+      exit $rtn
       ;;
 
    loaded)
 
    bool found = false;
 
    unbash_spaces(devname);
-// LockRes();
    foreach_res(device, R_DEVICE) {
       /* Find resource, and make sure we were able to open it */
       if (fnmatch(device->hdr.name, devname.c_str(), 0) == 0) {
 
    if (found) {
       jcr->dcr = new_dcr(jcr, device->dev);
-//    UnlockRes();
       jcr->dcr->device = device;
       return jcr->dcr->dev;
    }
-// UnlockRes();
    return NULL;
 }
 
          /* Under certain "safe" conditions, we can steal the lock */
          } else if (dev->can_steal_lock()) {
             autochanger_cmd(dcr, dir, cmd);
-         } else if (dev->is_busy()) {
+         } else if (dev->is_busy() || dev->is_blocked()) {
             send_dir_busy_message(dir, dev);
          } else {                     /* device not being used */
             autochanger_cmd(dcr, dir, cmd);
          /* Under certain "safe" conditions, we can steal the lock */
          } else if (dev->can_steal_lock()) {
             read_volume_label(jcr, dev, Slot);
-         } else if (dev->is_busy()) {
+         } else if (dev->is_busy() || dev->is_blocked()) {
             send_dir_busy_message(dir, dev);
          } else {                     /* device not being used */
             read_volume_label(jcr, dev, Slot);