Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bareos/bareos.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/dird/backup.cc')
-rw-r--r--core/src/dird/backup.cc35
1 files changed, 19 insertions, 16 deletions
diff --git a/core/src/dird/backup.cc b/core/src/dird/backup.cc
index 07a57ab6d..8ab09913a 100644
--- a/core/src/dird/backup.cc
+++ b/core/src/dird/backup.cc
@@ -385,7 +385,7 @@ bool DoNativeBackup(JobControlRecord* jcr)
Jmsg(jcr, M_INFO, 0, _("Start Backup JobId %s, Job=%s\n"),
edit_uint64(jcr->JobId, ed1), jcr->Job);
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
Dmsg2(100, "JobId=%d JobLevel=%c\n", jcr->impl->jr.JobId,
jcr->impl->jr.JobLevel);
if (!jcr->db->UpdateJobStartRecord(jcr, &jcr->impl->jr)) {
@@ -411,7 +411,7 @@ bool DoNativeBackup(JobControlRecord* jcr)
* will be contacting him for a backup session.
*/
Dmsg0(110, "Open connection with storage daemon\n");
- jcr->setJobStatus(JS_WaitSD);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitSD);
if (!ConnectToStorageDaemon(jcr, 10, me->SDConnectTimeout, true)) {
return false;
@@ -446,7 +446,7 @@ bool DoNativeBackup(JobControlRecord* jcr)
Dmsg0(150, "Storage daemon connection OK\n");
}
- jcr->setJobStatus(JS_WaitFD);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitFD);
if (!ConnectToFileDaemon(jcr, 10, me->FDConnectTimeout, true)) {
goto bail_out;
}
@@ -462,7 +462,7 @@ bool DoNativeBackup(JobControlRecord* jcr)
goto close_fd;
}
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
if (!SendLevelCommand(jcr)) { goto bail_out; }
@@ -616,7 +616,7 @@ close_fd:
}
bail_out:
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
WaitForJobTermination(jcr, me->FDConnectTimeout);
return false;
@@ -642,7 +642,7 @@ int WaitForJobTermination(JobControlRecord* jcr, int timeout)
int Encrypt = 0;
btimer_t* tid = NULL;
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
if (fd) {
if (timeout) {
@@ -656,8 +656,8 @@ int WaitForJobTermination(JobControlRecord* jcr, int timeout)
&ReadBytes, &JobBytes, &JobErrors, &VSS, &Encrypt)
== 7) {
fd_ok = true;
- jcr->setJobStatus(jcr->impl->FDJobStatus);
- Dmsg1(100, "FDStatus=%c\n", (char)jcr->JobStatus);
+ jcr->setJobStatusWithPriorityCheck(jcr->impl->FDJobStatus);
+ Dmsg1(100, "FDStatus=%c\n", (char)jcr->getJobStatus());
} else {
Jmsg(jcr, M_WARNING, 0, _("Unexpected Client Job message: %s\n"),
fd->msg);
@@ -683,11 +683,13 @@ int WaitForJobTermination(JobControlRecord* jcr, int timeout)
* the SD despool.
*/
Dmsg5(100, "cancel=%d fd_ok=%d FDJS=%d JS=%d SDJS=%d\n", jcr->IsCanceled(),
- fd_ok, jcr->impl->FDJobStatus, jcr->JobStatus, jcr->impl->SDJobStatus);
+ fd_ok, jcr->impl->FDJobStatus.load(), jcr->getJobStatus(),
+ jcr->impl->SDJobStatus.load());
if (jcr->IsCanceled()
|| (!jcr->impl->res.job->RescheduleIncompleteJobs && !fd_ok)) {
Dmsg4(100, "fd_ok=%d FDJS=%d JS=%d SDJS=%d\n", fd_ok,
- jcr->impl->FDJobStatus, jcr->JobStatus, jcr->impl->SDJobStatus);
+ jcr->impl->FDJobStatus.load(), jcr->getJobStatus(),
+ jcr->impl->SDJobStatus.load());
CancelStorageDaemonJob(jcr);
}
@@ -715,7 +717,7 @@ int WaitForJobTermination(JobControlRecord* jcr, int timeout)
if (!fd_ok || IsBnetError(fd)) { /* if fd not set, that use !fd_ok */
jcr->impl->FDJobStatus = JS_ErrorTerminated;
}
- if (jcr->JobStatus != JS_Terminated) { return jcr->JobStatus; }
+ if (jcr->getJobStatus() != JS_Terminated) { return jcr->getJobStatus(); }
if (jcr->impl->FDJobStatus != JS_Terminated) {
return jcr->impl->FDJobStatus;
}
@@ -743,7 +745,7 @@ void NativeBackupCleanup(JobControlRecord* jcr, int TermCode)
Jmsg(jcr, M_WARNING, 0,
_("Error getting Job record for Job report: ERR=%s\n"),
jcr->db->strerror());
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
}
bstrncpy(cr.Name, jcr->impl->res.client->resource_name_, sizeof(cr.Name));
@@ -755,7 +757,7 @@ void NativeBackupCleanup(JobControlRecord* jcr, int TermCode)
UpdateBootstrapFile(jcr);
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Terminated:
TermMsg = _("Backup OK");
break;
@@ -787,7 +789,8 @@ void NativeBackupCleanup(JobControlRecord* jcr, int TermCode)
break;
default:
TermMsg = term_code;
- sprintf(term_code, _("Inappropriate term code: %c\n"), jcr->JobStatus);
+ sprintf(term_code, _("Inappropriate term code: %c\n"),
+ jcr->getJobStatus());
break;
}
@@ -826,7 +829,7 @@ void UpdateBootstrapFile(JobControlRecord* jcr)
"update Bootstrap file. ERR=%s\n"),
jcr->db->strerror());
if (jcr->impl->SDJobFiles != 0) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
}
}
/* Start output with when and who wrote it */
@@ -867,7 +870,7 @@ void UpdateBootstrapFile(JobControlRecord* jcr)
_("Could not open WriteBootstrap file:\n"
"%s: ERR=%s\n"),
fname, be.bstrerror());
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
}
FreePoolMemory(fname);
}