tape: do not query density_code in SgTape::new()
Because this can fail with NoSense/MediumChanged and other informational Sense codes.
This commit is contained in:
parent
4be6beab6f
commit
8e898895cc
|
@ -107,7 +107,6 @@ pub struct LtoTapeStatus {
|
||||||
pub struct SgTape {
|
pub struct SgTape {
|
||||||
file: File,
|
file: File,
|
||||||
info: InquiryInfo,
|
info: InquiryInfo,
|
||||||
max_density_code: u8, // drive type
|
|
||||||
encryption_key_loaded: bool,
|
encryption_key_loaded: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,12 +125,9 @@ impl SgTape {
|
||||||
bail!("not a tape device (peripheral_type = {})", info.peripheral_type);
|
bail!("not a tape device (peripheral_type = {})", info.peripheral_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
let max_density_code = report_density(&mut file)?;
|
|
||||||
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
file,
|
file,
|
||||||
info,
|
info,
|
||||||
max_density_code,
|
|
||||||
encryption_key_loaded: false,
|
encryption_key_loaded: false,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -145,8 +141,11 @@ impl SgTape {
|
||||||
&self.info
|
&self.info
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn max_density_code(&self) -> u8 {
|
/// Return the maximum supported density code
|
||||||
self.max_density_code
|
///
|
||||||
|
/// This can be used to detect the drive generation.
|
||||||
|
pub fn max_density_code(&mut self) -> Result<u8, Error> {
|
||||||
|
report_density(&mut self.file)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn open<P: AsRef<Path>>(path: P) -> Result<SgTape, Error> {
|
pub fn open<P: AsRef<Path>>(path: P) -> Result<SgTape, Error> {
|
||||||
|
|
Loading…
Reference in New Issue