* [pbs-devel] [PATCH] tape restore: fix datastore locking
@ 2021-04-16 7:11 Dietmar Maurer
0 siblings, 0 replies; only message in thread
From: Dietmar Maurer @ 2021-04-16 7:11 UTC (permalink / raw)
To: pbs-devel
---
src/api2/tape/restore.rs | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/api2/tape/restore.rs b/src/api2/tape/restore.rs
index 33176bd7..6e1c81f6 100644
--- a/src/api2/tape/restore.rs
+++ b/src/api2/tape/restore.rs
@@ -320,6 +320,15 @@ pub fn restore(
.join(";")
);
+ let mut datastore_locks = Vec::new();
+ for store_name in store_map.used_datastores() {
+ // explicit create shared lock to prevent GC on newly created chunks
+ if let Some(store) = store_map.get_datastore(store_name) {
+ let shared_store_lock = store.try_shared_chunk_store_lock()?;
+ datastore_locks.push(shared_store_lock);
+ }
+ }
+
for media_id in media_id_list.iter() {
request_and_restore_media(
&worker,
@@ -333,6 +342,8 @@ pub fn restore(
)?;
}
+ drop(datastore_locks);
+
task_log!(worker, "Restore mediaset '{}' done", media_set);
if let Err(err) = set_tape_device_state(&drive, "") {
--
2.20.1
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-04-16 7:12 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-16 7:11 [pbs-devel] [PATCH] tape restore: fix datastore locking Dietmar Maurer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox