]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/askdir.c
Tweak debug levels in reservations + Correct typo in UTF-8 error message as reported by:
[bacula/bacula] / bacula / src / stored / askdir.c
index 3f728742b4eb03956cb330c510273ec20cfe7d7d..b93b9337164041fc28821326c26cfb124a9c7151 100644 (file)
@@ -268,7 +268,7 @@ bool dir_find_next_appendable_volume(DCR *dcr)
        Dmsg1(100, ">dird: %s", dir->msg);
        bool ok = do_get_volume_info(dcr);
        if (ok) {
-          if (dcr->any_volume || !is_volume_in_use(dcr)) {
+          if (!is_volume_in_use(dcr)) {
              found = true;
              break;
           } else {
@@ -284,11 +284,17 @@ bool dir_find_next_appendable_volume(DCR *dcr)
     }
     if (found) {
        Dmsg0(400, "dir_find_next_appendable_volume return true\n");
-       reserve_volume(dcr, dcr->VolumeName);   /* reserve volume */
+       if (reserve_volume(dcr, dcr->VolumeName) == 0) {
+          Dmsg2(100, "Could not reserve volume %s on %s\n", dcr->VolumeName,
+              dcr->dev->print_name());
+          goto bail_out;
+       }
        V(vol_info_mutex);
        unlock_reservations();
        return true;
     }
+
+bail_out:
     dcr->VolumeName[0] = 0;
     V(vol_info_mutex);
     unlock_reservations();
@@ -481,12 +487,12 @@ bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr)
 "Job %s waiting. Cannot find any appendable volumes.\n"
 "Please use the \"label\"  command to create a new Volume for:\n"
 "    Storage:      %s\n"
-"    Media type:   %s\n"
-"    Pool:         %s\n"),
+"    Pool:         %s\n"
+"    Media type:   %s\n"),
                jcr->Job,
                dev->print_name(),
-               dcr->media_type,
-               dcr->pool_name);
+               dcr->pool_name,
+               dcr->media_type);
          }
       }
 
@@ -565,8 +571,16 @@ bool dir_ask_sysop_to_mount_volume(DCR *dcr)
        *   Otherwise skip it.
        */
       if (!dev->poll && (stat == W_TIMEOUT || stat == W_MOUNT)) {
-         Jmsg(jcr, M_MOUNT, 0, _("Please mount Volume \"%s\" on Storage Device %s for Job %s\n"),
-              dcr->VolumeName, dev->print_name(), jcr->Job);
+         Jmsg(jcr, M_MOUNT, 0, _("Please mount Volume \"%s\" or label a new one for:\n"
+              "    Job:          %s\n"
+              "    Storage:      %s\n"
+              "    Pool:         %s\n"
+              "    Media type:   %s\n"),
+              dcr->VolumeName,
+              jcr->Job,
+              dev->print_name(),
+              dcr->pool_name,
+              dcr->media_type);
          Dmsg3(400, "Mount \"%s\" on device \"%s\" for Job %s\n",
                dcr->VolumeName, dev->print_name(), jcr->Job);
       }
@@ -579,7 +593,7 @@ bool dir_ask_sysop_to_mount_volume(DCR *dcr)
       if (dev->poll) {
          Dmsg1(400, "Poll timeout in mount vol on device %s\n", dev->print_name());
          Dmsg1(400, "Blocked=%s\n", dev->print_blocked());
-         return true;
+         goto bail_out;
       }
 
       if (stat == W_TIMEOUT) {
@@ -601,6 +615,8 @@ bool dir_ask_sysop_to_mount_volume(DCR *dcr)
       Dmsg1(400, "Someone woke me for device %s\n", dev->print_name());
       break;
    }
+
+bail_out:
    set_jcr_job_status(jcr, JS_Running);
    dir_send_job_status(jcr);
    Dmsg0(400, "leave dir_ask_sysop_to_mount_volume\n");