tape: fix write_media_set_label - move to correct position
This commit is contained in:
parent
0ec79339f7
commit
d108b610fd
|
@ -193,6 +193,17 @@ impl LinuxTapeHandle {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn mtfsf(&mut self, count: i32) -> Result<(), Error> {
|
||||||
|
|
||||||
|
let cmd = mtop { mt_op: MTCmd::MTFSF, mt_count: count, };
|
||||||
|
|
||||||
|
unsafe {
|
||||||
|
mtioctop(self.file.as_raw_fd(), &cmd)
|
||||||
|
}.map_err(|err| format_err!("tape fsf {} failed - {}", count, err))?;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
/// Set tape compression feature
|
/// Set tape compression feature
|
||||||
pub fn set_compression(&self, on: bool) -> Result<(), Error> {
|
pub fn set_compression(&self, on: bool) -> Result<(), Error> {
|
||||||
|
|
||||||
|
@ -354,6 +365,12 @@ impl TapeDriver for LinuxTapeHandle {
|
||||||
|
|
||||||
fn write_media_set_label(&mut self, media_set_label: &MediaSetLabel) -> Result<(), Error> {
|
fn write_media_set_label(&mut self, media_set_label: &MediaSetLabel) -> Result<(), Error> {
|
||||||
|
|
||||||
|
let file_number = self.current_file_number()?;
|
||||||
|
if file_number != 1 {
|
||||||
|
self.rewind()?;
|
||||||
|
self.mtfsf(1)?; // skip label
|
||||||
|
}
|
||||||
|
|
||||||
let file_number = self.current_file_number()?;
|
let file_number = self.current_file_number()?;
|
||||||
if file_number != 1 {
|
if file_number != 1 {
|
||||||
bail!("write_media_set_label failed - got wrong file number ({} != 1)", file_number);
|
bail!("write_media_set_label failed - got wrong file number ({} != 1)", file_number);
|
||||||
|
|
Loading…
Reference in New Issue