X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fstored%2Fappend.c;h=402324fa4da84a091367f77c2d09deef69ead8fd;hb=403039bef0356afd64dc72a70edf83c58ea35fb5;hp=b00c8119f1c85da8399b5971248501c453019217;hpb=f3b4206edb45f57c82fd689ca70facf39dd832ec;p=bacula%2Fbacula diff --git a/bacula/src/stored/append.c b/bacula/src/stored/append.c index b00c8119f1..402324fa4d 100644 --- a/bacula/src/stored/append.c +++ b/bacula/src/stored/append.c @@ -7,7 +7,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2000-2006 Free Software Foundation Europe e.V. + Copyright (C) 2000-2007 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. @@ -38,6 +38,7 @@ /* Responses sent to the File daemon */ static char OK_data[] = "3000 OK data\n"; +static char OK_append[] = "3000 OK append data\n"; /* Forward referenced functions */ @@ -83,7 +84,6 @@ bool do_append_data(JCR *jcr) if (!acquire_device_for_append(dcr)) { set_jcr_job_status(jcr, JS_ErrorTerminated); - jcr->dcr = NULL; return false; } @@ -262,6 +262,14 @@ bool do_append_data(JCR *jcr) } } + /* Create Job status for end of session label */ + set_jcr_job_status(jcr, ok?JS_Terminated:JS_ErrorTerminated); + + /* Terminate connection with FD */ + bnet_fsend(ds, OK_append); + do_fd_commands(jcr); /* finish dialog with FD */ + + time_t job_elapsed = time(NULL) - jcr->run_time; if (job_elapsed <= 0) { @@ -272,8 +280,6 @@ bool do_append_data(JCR *jcr) job_elapsed / 3600, job_elapsed % 3600 / 60, job_elapsed % 60, edit_uint64_with_suffix(jcr->JobBytes / job_elapsed, ec)); - /* Create Job status for end of session label */ - set_jcr_job_status(jcr, ok?JS_Terminated:JS_ErrorTerminated); Dmsg1(200, "Write EOS label JobStatus=%c\n", jcr->JobStatus); @@ -304,8 +310,9 @@ bool do_append_data(JCR *jcr) Pmsg0(000, _("NULL Volume name. This shouldn't happen!!!\n")); } + + if (!ok) { - Dmsg1(000, "Tape block=%d\n", dev->block_num); discard_data_spool(dcr); } else { /* Note: if commit is OK, the device will remain locked */