From 8ee5a5d30202e319a39e49ddc3280e69b5315036 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Mon, 22 Jan 2024 12:50:31 +0100 Subject: [PATCH] tape: don't call sg-tape-cmd for unloading encryption keys since sg-tape-cmd is only necessary if we want to load the key, we don't have to call it when we don't have one. Signed-off-by: Dominik Csapak --- src/tape/drive/lto/mod.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/tape/drive/lto/mod.rs b/src/tape/drive/lto/mod.rs index 4b113f7d..ae4bc734 100644 --- a/src/tape/drive/lto/mod.rs +++ b/src/tape/drive/lto/mod.rs @@ -271,18 +271,18 @@ impl TapeDriver for LtoTapeHandle { &mut self, key_fingerprint: Option<(Fingerprint, Uuid)>, ) -> Result<(), Error> { - let output = if let Some((fingerprint, uuid)) = key_fingerprint { + if let Some((fingerprint, uuid)) = key_fingerprint { let fingerprint = fingerprint.signature(); - run_sg_tape_cmd( + let output = run_sg_tape_cmd( "encryption", &["--fingerprint", &fingerprint, "--uuid", &uuid.to_string()], self.sg_tape.file_mut().as_raw_fd(), - )? + )?; + let result: Result<(), String> = serde_json::from_str(&output)?; + result.map_err(|err| format_err!("{}", err)) } else { - run_sg_tape_cmd("encryption", &[], self.sg_tape.file_mut().as_raw_fd())? - }; - let result: Result<(), String> = serde_json::from_str(&output)?; - result.map_err(|err| format_err!("{}", err)) + self.sg_tape.set_encryption(None) + } } }