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
path: root/core
diff options
context:
space:
mode:
authorAlaa Eddine Elamri <alaeddine.elamri@bareos.com>2022-10-21 17:55:09 +0300
committerAndreas Rogge <andreas.rogge@bareos.com>2022-11-07 19:16:28 +0300
commit7f903c52bf86c154de67d6d0b4058d0fc797351c (patch)
tree2e8e5d5d7028dc33ee0be63aebf7c0e0b774f68e /core
parent26fe7f497a9361d871d76eff464a8c8513c8b2a8 (diff)
jcr_private: FDJobStatus from volatile to atomic
Diffstat (limited to 'core')
-rw-r--r--core/src/dird/backup.cc4
-rw-r--r--core/src/dird/dir_plugins.cc2
-rw-r--r--core/src/dird/jcr_private.h2
-rw-r--r--core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc5
4 files changed, 7 insertions, 6 deletions
diff --git a/core/src/dird/backup.cc b/core/src/dird/backup.cc
index 3174cd55e..b6a0d75ca 100644
--- a/core/src/dird/backup.cc
+++ b/core/src/dird/backup.cc
@@ -683,12 +683,12 @@ 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,
+ fd_ok, jcr->impl->FDJobStatus.load(), jcr->JobStatus,
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->FDJobStatus.load(), jcr->JobStatus,
jcr->impl->SDJobStatus.load());
CancelStorageDaemonJob(jcr);
}
diff --git a/core/src/dird/dir_plugins.cc b/core/src/dird/dir_plugins.cc
index 869c86754..6c6637796 100644
--- a/core/src/dird/dir_plugins.cc
+++ b/core/src/dird/dir_plugins.cc
@@ -682,7 +682,7 @@ static bRC bareosGetValue(PluginContext* ctx, brDirVariable var, void* value)
case bDirVarFDJobStatus:
*((int*)value) = jcr->impl->FDJobStatus;
Dmsg1(debuglevel, "dir-plugin: return bDirVarFDJobStatus=%c\n",
- jcr->impl->FDJobStatus);
+ jcr->impl->FDJobStatus.load());
break;
case bDirVarSDJobStatus:
*((int*)value) = jcr->impl->SDJobStatus;
diff --git a/core/src/dird/jcr_private.h b/core/src/dird/jcr_private.h
index ecc16c49d..d72e09e17 100644
--- a/core/src/dird/jcr_private.h
+++ b/core/src/dird/jcr_private.h
@@ -112,7 +112,7 @@ struct JobControlRecordPrivate {
uint64_t SDJobBytes{}; /**< Number of bytes processed this job */
uint32_t SDErrors{}; /**< Number of non-fatal errors */
std::atomic<int32_t> SDJobStatus{}; /**< Storage Job Status */
- volatile int32_t FDJobStatus{}; /**< File daemon Job Status */
+ std::atomic<int32_t> FDJobStatus{}; /**< File daemon Job Status */
uint32_t DumpLevel{}; /**< Dump level when doing a NDMP backup */
uint32_t ExpectedFiles{}; /**< Expected restore files */
uint32_t MediaId{}; /**< DB record IDs associated with this job */
diff --git a/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc b/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc
index 8677b40a9..e879a1f31 100644
--- a/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc
+++ b/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc
@@ -332,9 +332,10 @@ static inline int NdmpWaitForJobTermination(JobControlRecord* jcr)
* so that we let the SD despool.
*/
Dmsg4(100, "cancel=%d FDJS=%d JS=%d SDJS=%d\n", jcr->IsCanceled(),
- jcr->impl->FDJobStatus, jcr->JobStatus, jcr->impl->SDJobStatus.load());
+ jcr->impl->FDJobStatus.load(), jcr->JobStatus,
+ jcr->impl->SDJobStatus.load());
if (jcr->IsCanceled() || (!jcr->impl->res.job->RescheduleIncompleteJobs)) {
- Dmsg3(100, "FDJS=%d JS=%d SDJS=%d\n", jcr->impl->FDJobStatus,
+ Dmsg3(100, "FDJS=%d JS=%d SDJS=%d\n", jcr->impl->FDJobStatus.load(),
jcr->JobStatus, jcr->impl->SDJobStatus.load());
CancelStorageDaemonJob(jcr);
}