* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal