X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fstored%2Faskdir.c;h=685b74f43ddddde73983fb83ae9a1c8f24dac611;hb=217e5ed47147cd420ed0799a96868a561bfd6b57;hp=a5ad1a6976ae86b5f848e58720aef21d8b2a914e;hpb=c326757fd31a78bdef28df7a41adfab2f813c23c;p=bacula%2Fbacula diff --git a/bacula/src/stored/askdir.c b/bacula/src/stored/askdir.c index a5ad1a6976..685b74f43d 100644 --- a/bacula/src/stored/askdir.c +++ b/bacula/src/stored/askdir.c @@ -20,7 +20,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - Bacula® is a registered trademark of John Walker. + Bacula® is a registered trademark of Kern Sibbald. The licensor of Bacula is the Free Software Foundation Europe (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, Switzerland, email:ftf@fsfeurope.org. @@ -283,7 +283,7 @@ bool dir_find_next_appendable_volume(DCR *dcr) bstrncpy(lastVolume, dcr->VolumeName, sizeof(lastVolume)); if (dcr->can_i_use_volume()) { Dmsg1(100, "Call reserve_volume. Vol=%s\n", dcr->VolumeName); - if (reserve_volume(dcr, dcr->VolumeName) == 0) { + if (reserve_volume(dcr, dcr->VolumeName) == NULL) { Dmsg2(100, "Could not reserve volume %s on %s\n", dcr->VolumeName, dcr->dev->print_name()); continue; @@ -491,14 +491,12 @@ bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr) Jmsg(jcr, M_INFO, 0, "%s", dev->errmsg); return false; } - dev->dlock(); got_vol = dir_find_next_appendable_volume(dcr); /* get suggested volume */ - dev->dunlock(); if (got_vol) { - return true; + goto get_out; } else { if (stat == W_TIMEOUT || stat == W_MOUNT) { - Jmsg(jcr, M_MOUNT, 0, _( + Mmsg(dev->errmsg, _( "Job %s waiting. Cannot find any appendable volumes.\n" "Please use the \"label\" command to create a new Volume for:\n" " Storage: %s\n" @@ -508,6 +506,8 @@ bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr) dev->print_name(), dcr->pool_name, dcr->media_type); + Jmsg(jcr, M_MOUNT, 0, "%s", dev->errmsg); + Dmsg1(100, "%s", dev->errmsg); } } @@ -539,6 +539,8 @@ bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr) } Dmsg1(100, "Someone woke me for device %s\n", dev->print_name()); } + +get_out: set_jcr_job_status(jcr, JS_Running); dir_send_job_status(jcr); Dmsg0(100, "leave dir_ask_sysop_to_mount_create_appendable_volume\n"); @@ -618,7 +620,7 @@ bool dir_ask_sysop_to_mount_volume(DCR *dcr, int mode) 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()); - goto bail_out; + goto get_out; } if (stat == W_TIMEOUT) { @@ -641,7 +643,7 @@ bool dir_ask_sysop_to_mount_volume(DCR *dcr, int mode) break; } -bail_out: +get_out: set_jcr_job_status(jcr, JS_Running); dir_send_job_status(jcr); Dmsg0(400, "leave dir_ask_sysop_to_mount_volume\n");