public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* Re: [pbs-devel] [PATCH proxmox-backup 1/2] tape: simplify export_media_set for pool writer
@ 2021-10-18  8:38 Dietmar Maurer
  0 siblings, 0 replies; 2+ messages in thread
From: Dietmar Maurer @ 2021-10-18  8:38 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Dominik Csapak

> so drop the code that unloads the tape from the drive, and let the
> export code itself handle that

But you drop much more functionality??

> 
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
> tested on my virtual tape library, but would be grateful if someone else
> tests this again on real hardware
> 
>  src/tape/pool_writer/mod.rs | 14 +-------------
>  1 file changed, 1 insertion(+), 13 deletions(-)
> 
> diff --git a/src/tape/pool_writer/mod.rs b/src/tape/pool_writer/mod.rs
> index cc069ff5..9ff4a173 100644
> --- a/src/tape/pool_writer/mod.rs
> +++ b/src/tape/pool_writer/mod.rs
> @@ -150,21 +150,9 @@ impl PoolWriter {
>  
>      /// Export current media set and drop PoolWriterState (close drive)
>      pub fn export_media_set(&mut self, worker: &WorkerTask) -> Result<(), Error> {
> -        let mut status = self.status.take();
> -
>          let (drive_config, _digest) = pbs_config::drive::config()?;
>  
>          if let Some((mut changer, _)) = media_changer(&drive_config, &self.drive_name)? {
> -
> -            if let Some(ref mut status) = status {
> -                task_log!(worker, "eject media");
> -                status.drive.eject_media()?; // rewind and eject early, so that unload_media is faster
> -            }

What about this rewind?

> -            drop(status); // close drive

and this drop()?

> -
> -            task_log!(worker, "unload media");
> -            changer.unload_media(None)?;
> -
>              for media_uuid in self.pool.current_media_list()? {
>                  let media = self.pool.lookup_media(media_uuid)?;
>                  let label_text = media.label_text();
> @@ -175,7 +163,7 @@ impl PoolWriter {
>                  }
>              }
>  
> -        } else if let Some(mut status) = status {
> +        } else if let Some(mut status) = self.status.take() {
>              task_log!(worker, "standalone drive - ejecting media instead of export");
>              status.drive.eject_media()?;
>          }
> -- 
> 2.30.2
> 
> 
> 
> _______________________________________________
> pbs-devel mailing list
> pbs-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel




^ permalink raw reply	[flat|nested] 2+ messages in thread
* [pbs-devel] [PATCH proxmox-backup 1/2] tape: simplify export_media_set for pool writer
@ 2021-10-15  8:32 Dominik Csapak
  0 siblings, 0 replies; 2+ messages in thread
From: Dominik Csapak @ 2021-10-15  8:32 UTC (permalink / raw)
  To: pbs-devel

our export code can handle if the tape is inside the drive, so unloading
it first does not have an benefit, it even makes the exporting slower,
since we first unload it into its original slot, and then moving it
to an import/export slot

so drop the code that unloads the tape from the drive, and let the
export code itself handle that

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
tested on my virtual tape library, but would be grateful if someone else
tests this again on real hardware

 src/tape/pool_writer/mod.rs | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/src/tape/pool_writer/mod.rs b/src/tape/pool_writer/mod.rs
index cc069ff5..9ff4a173 100644
--- a/src/tape/pool_writer/mod.rs
+++ b/src/tape/pool_writer/mod.rs
@@ -150,21 +150,9 @@ impl PoolWriter {
 
     /// Export current media set and drop PoolWriterState (close drive)
     pub fn export_media_set(&mut self, worker: &WorkerTask) -> Result<(), Error> {
-        let mut status = self.status.take();
-
         let (drive_config, _digest) = pbs_config::drive::config()?;
 
         if let Some((mut changer, _)) = media_changer(&drive_config, &self.drive_name)? {
-
-            if let Some(ref mut status) = status {
-                task_log!(worker, "eject media");
-                status.drive.eject_media()?; // rewind and eject early, so that unload_media is faster
-            }
-            drop(status); // close drive
-
-            task_log!(worker, "unload media");
-            changer.unload_media(None)?;
-
             for media_uuid in self.pool.current_media_list()? {
                 let media = self.pool.lookup_media(media_uuid)?;
                 let label_text = media.label_text();
@@ -175,7 +163,7 @@ impl PoolWriter {
                 }
             }
 
-        } else if let Some(mut status) = status {
+        } else if let Some(mut status) = self.status.take() {
             task_log!(worker, "standalone drive - ejecting media instead of export");
             status.drive.eject_media()?;
         }
-- 
2.30.2





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-10-18  8:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-18  8:38 [pbs-devel] [PATCH proxmox-backup 1/2] tape: simplify export_media_set for pool writer Dietmar Maurer
  -- strict thread matches above, loose matches on Subject: below --
2021-10-15  8:32 Dominik Csapak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal