diff --git a/cmd/stfs/cmd/recovery_fetch.go b/cmd/stfs/cmd/recovery_fetch.go index 5eb6f78..048da2a 100644 --- a/cmd/stfs/cmd/recovery_fetch.go +++ b/cmd/stfs/cmd/recovery_fetch.go @@ -79,6 +79,7 @@ var recoveryFetchCmd = &cobra.Command{ Compression: viper.GetString(compressionFlag), Encryption: viper.GetString(encryptionFlag), Signature: viper.GetString(signatureFlag), + RecordSize: viper.GetInt(recordSizeFlag), }, config.CryptoConfig{ Recipient: recipient, @@ -102,7 +103,6 @@ var recoveryFetchCmd = &cobra.Command{ return os.MkdirAll(path, mode) }, - viper.GetInt(recordSizeFlag), viper.GetInt(recordFlag), viper.GetInt(blockFlag), viper.GetString(toFlag), diff --git a/cmd/stfs/cmd/recovery_index.go b/cmd/stfs/cmd/recovery_index.go index dbaa793..d2f9734 100644 --- a/cmd/stfs/cmd/recovery_index.go +++ b/cmd/stfs/cmd/recovery_index.go @@ -89,7 +89,6 @@ var recoveryIndexCmd = &cobra.Command{ Password: viper.GetString(passwordFlag), }, - viper.GetInt(recordSizeFlag), viper.GetInt(recordFlag), viper.GetInt(blockFlag), viper.GetBool(overwriteFlag), diff --git a/cmd/stfs/cmd/recovery_query.go b/cmd/stfs/cmd/recovery_query.go index bb6d869..9a64dd1 100644 --- a/cmd/stfs/cmd/recovery_query.go +++ b/cmd/stfs/cmd/recovery_query.go @@ -64,6 +64,7 @@ var recoveryQueryCmd = &cobra.Command{ Compression: viper.GetString(compressionFlag), Encryption: viper.GetString(encryptionFlag), Signature: viper.GetString(signatureFlag), + RecordSize: viper.GetInt(recordSizeFlag), }, config.CryptoConfig{ Recipient: recipient, @@ -71,7 +72,6 @@ var recoveryQueryCmd = &cobra.Command{ Password: viper.GetString(passwordFlag), }, - viper.GetInt(recordSizeFlag), viper.GetInt(recordFlag), viper.GetInt(blockFlag), diff --git a/pkg/fs/filesystem.go b/pkg/fs/filesystem.go index 67afea3..0ad096b 100644 --- a/pkg/fs/filesystem.go +++ b/pkg/fs/filesystem.go @@ -220,7 +220,6 @@ func (f *STFS) Initialize(rootProposal string, rootPerm os.FileMode) (root strin f.readOps.GetPipes(), f.readOps.GetCrypto(), - f.readOps.GetPipes().RecordSize, 0, 0, true, diff --git a/pkg/operations/archive.go b/pkg/operations/archive.go index 491dce5..c5363ab 100644 --- a/pkg/operations/archive.go +++ b/pkg/operations/archive.go @@ -274,7 +274,6 @@ func (o *Operations) Archive( o.pipes, o.crypto, - o.pipes.RecordSize, int(lastIndexedRecord), int(lastIndexedBlock), overwrite, diff --git a/pkg/operations/delete.go b/pkg/operations/delete.go index 864cc5b..4d547a0 100644 --- a/pkg/operations/delete.go +++ b/pkg/operations/delete.go @@ -122,7 +122,6 @@ func (o *Operations) Delete(name string) error { o.pipes, o.crypto, - o.pipes.RecordSize, int(lastIndexedRecord), int(lastIndexedBlock), false, diff --git a/pkg/operations/move.go b/pkg/operations/move.go index 8fb7cf5..eb744aa 100644 --- a/pkg/operations/move.go +++ b/pkg/operations/move.go @@ -141,7 +141,6 @@ func (o *Operations) Move(from string, to string) error { o.pipes, o.crypto, - o.pipes.RecordSize, int(lastIndexedRecord), int(lastIndexedBlock), false, diff --git a/pkg/operations/restore.go b/pkg/operations/restore.go index a716e16..c0ba2b1 100644 --- a/pkg/operations/restore.go +++ b/pkg/operations/restore.go @@ -97,7 +97,6 @@ func (o *Operations) Restore( getDst, mkdirAll, - o.pipes.RecordSize, int(dbhdr.Record), int(dbhdr.Block), dst, diff --git a/pkg/operations/update.go b/pkg/operations/update.go index 49fe188..9f091cb 100644 --- a/pkg/operations/update.go +++ b/pkg/operations/update.go @@ -302,7 +302,6 @@ func (o *Operations) Update( o.pipes, o.crypto, - o.pipes.RecordSize, int(lastIndexedRecord), int(lastIndexedBlock), false, diff --git a/pkg/recovery/fetch.go b/pkg/recovery/fetch.go index 4e1a97a..7c54a2c 100644 --- a/pkg/recovery/fetch.go +++ b/pkg/recovery/fetch.go @@ -26,7 +26,6 @@ func Fetch( getDst func(path string, mode fs.FileMode) (io.WriteCloser, error), mkdirAll func(path string, mode fs.FileMode) error, - recordSize int, record int, block int, to string, @@ -39,7 +38,7 @@ func Fetch( var tr *tar.Reader if reader.DriveIsRegular { // Seek to record and block - if _, err := reader.Drive.Seek(int64((recordSize*mtio.BlockSize*record)+block*mtio.BlockSize), io.SeekStart); err != nil { + if _, err := reader.Drive.Seek(int64((pipes.RecordSize*mtio.BlockSize*record)+block*mtio.BlockSize), io.SeekStart); err != nil { return err } @@ -51,7 +50,7 @@ func Fetch( } // Seek to block - br := bufio.NewReaderSize(drive.Drive, mtio.BlockSize*recordSize) + br := bufio.NewReaderSize(drive.Drive, mtio.BlockSize*pipes.RecordSize) if _, err := br.Read(make([]byte, block*mtio.BlockSize)); err != nil { return err } diff --git a/pkg/recovery/index.go b/pkg/recovery/index.go index c1c350d..87f9c41 100644 --- a/pkg/recovery/index.go +++ b/pkg/recovery/index.go @@ -26,7 +26,6 @@ func Index( pipes config.PipeConfig, crypto config.CryptoConfig, - recordSize int, record int, block int, overwrite bool, @@ -51,7 +50,7 @@ func Index( if reader.DriveIsRegular { // Seek to record and block - if _, err := reader.Drive.Seek(int64((recordSize*mtio.BlockSize*record)+block*mtio.BlockSize), 0); err != nil { + if _, err := reader.Drive.Seek(int64((pipes.RecordSize*mtio.BlockSize*record)+block*mtio.BlockSize), 0); err != nil { return err } @@ -71,19 +70,19 @@ func Index( } nextTotalBlocks := math.Ceil(float64((curr)) / float64(mtio.BlockSize)) - record = int64(nextTotalBlocks) / int64(recordSize) - block = int64(nextTotalBlocks) - (record * int64(recordSize)) + record = int64(nextTotalBlocks) / int64(pipes.RecordSize) + block = int64(nextTotalBlocks) - (record * int64(pipes.RecordSize)) if block < 0 { record-- - block = int64(recordSize) - 1 - } else if block >= int64(recordSize) { + block = int64(pipes.RecordSize) - 1 + } else if block >= int64(pipes.RecordSize) { record++ block = 0 } // Seek to record and block - if _, err := reader.Drive.Seek(int64((recordSize*mtio.BlockSize*int(record))+int(block)*mtio.BlockSize), io.SeekStart); err != nil { + if _, err := reader.Drive.Seek(int64((pipes.RecordSize*mtio.BlockSize*int(record))+int(block)*mtio.BlockSize), io.SeekStart); err != nil { return err } @@ -138,10 +137,10 @@ func Index( } nextTotalBlocks := math.Ceil(float64(curr+(currAndSize-curr)) / float64(mtio.BlockSize)) - record = int64(nextTotalBlocks) / int64(recordSize) - block = int64(nextTotalBlocks) - (record * int64(recordSize)) + record = int64(nextTotalBlocks) / int64(pipes.RecordSize) + block = int64(nextTotalBlocks) - (record * int64(pipes.RecordSize)) - if block > int64(recordSize) { + if block > int64(pipes.RecordSize) { record++ block = 0 } @@ -155,7 +154,7 @@ func Index( } // Seek to block - br := bufio.NewReaderSize(drive.Drive, mtio.BlockSize*recordSize) + br := bufio.NewReaderSize(drive.Drive, mtio.BlockSize*pipes.RecordSize) if _, err := br.Read(make([]byte, block*mtio.BlockSize)); err != nil { return err } @@ -163,7 +162,7 @@ func Index( record := int64(record) block := int64(block) - curr := int64((recordSize * mtio.BlockSize * int(record)) + (int(block) * mtio.BlockSize)) + curr := int64((pipes.RecordSize * mtio.BlockSize * int(record)) + (int(block) * mtio.BlockSize)) counter := &ioext.CounterReader{Reader: br, BytesRead: int(curr)} i := 0 @@ -184,8 +183,8 @@ func Index( } block = 0 - br = bufio.NewReaderSize(drive.Drive, mtio.BlockSize*recordSize) - curr = int64(int64(recordSize) * mtio.BlockSize * record) + br = bufio.NewReaderSize(drive.Drive, mtio.BlockSize*pipes.RecordSize) + curr = int64(int64(pipes.RecordSize) * mtio.BlockSize * record) counter = &ioext.CounterReader{Reader: br, BytesRead: int(curr)} tr = tar.NewReader(counter) @@ -218,10 +217,10 @@ func Index( currAndSize := int64(counter.BytesRead) nextTotalBlocks := math.Ceil(float64(curr+(currAndSize-curr)) / float64(mtio.BlockSize)) - record = int64(nextTotalBlocks) / int64(recordSize) - block = int64(nextTotalBlocks) - (record * int64(recordSize)) + record = int64(nextTotalBlocks) / int64(pipes.RecordSize) + block = int64(nextTotalBlocks) - (record * int64(pipes.RecordSize)) - if block > int64(recordSize) { + if block > int64(pipes.RecordSize) { record++ block = 0 } diff --git a/pkg/recovery/query.go b/pkg/recovery/query.go index 68549d3..4f6381f 100644 --- a/pkg/recovery/query.go +++ b/pkg/recovery/query.go @@ -20,7 +20,6 @@ func Query( pipes config.PipeConfig, crypto config.CryptoConfig, - recordSize int, record int, block int, @@ -30,7 +29,7 @@ func Query( if state.DriveIsRegular { // Seek to record and block - if _, err := state.Drive.Seek(int64((recordSize*mtio.BlockSize*record)+block*mtio.BlockSize), 0); err != nil { + if _, err := state.Drive.Seek(int64((pipes.RecordSize*mtio.BlockSize*record)+block*mtio.BlockSize), 0); err != nil { return []*tar.Header{}, err } @@ -49,19 +48,19 @@ func Query( } nextTotalBlocks := math.Ceil(float64((curr)) / float64(mtio.BlockSize)) - record = int64(nextTotalBlocks) / int64(recordSize) - block = int64(nextTotalBlocks) - (record * int64(recordSize)) + record = int64(nextTotalBlocks) / int64(pipes.RecordSize) + block = int64(nextTotalBlocks) - (record * int64(pipes.RecordSize)) if block < 0 { record-- - block = int64(recordSize) - 1 - } else if block >= int64(recordSize) { + block = int64(pipes.RecordSize) - 1 + } else if block >= int64(pipes.RecordSize) { record++ block = 0 } // Seek to record and block - if _, err := state.Drive.Seek(int64((recordSize*mtio.BlockSize*int(record))+int(block)*mtio.BlockSize), io.SeekStart); err != nil { + if _, err := state.Drive.Seek(int64((pipes.RecordSize*mtio.BlockSize*int(record))+int(block)*mtio.BlockSize), io.SeekStart); err != nil { return []*tar.Header{}, err } @@ -122,10 +121,10 @@ func Query( } nextTotalBlocks := math.Ceil(float64(curr+(currAndSize-curr)) / float64(mtio.BlockSize)) - record = int64(nextTotalBlocks) / int64(recordSize) - block = int64(nextTotalBlocks) - (record * int64(recordSize)) + record = int64(nextTotalBlocks) / int64(pipes.RecordSize) + block = int64(nextTotalBlocks) - (record * int64(pipes.RecordSize)) - if block > int64(recordSize) { + if block > int64(pipes.RecordSize) { record++ block = 0 } @@ -137,7 +136,7 @@ func Query( } // Seek to block - br := bufio.NewReaderSize(state.Drive, mtio.BlockSize*recordSize) + br := bufio.NewReaderSize(state.Drive, mtio.BlockSize*pipes.RecordSize) if _, err := br.Read(make([]byte, block*mtio.BlockSize)); err != nil { return []*tar.Header{}, err } @@ -145,7 +144,7 @@ func Query( record := int64(record) block := int64(block) - curr := int64((recordSize * mtio.BlockSize * int(record)) + (int(block) * mtio.BlockSize)) + curr := int64((pipes.RecordSize * mtio.BlockSize * int(record)) + (int(block) * mtio.BlockSize)) counter := &ioext.CounterReader{Reader: br, BytesRead: int(curr)} tr := tar.NewReader(counter) @@ -165,8 +164,8 @@ func Query( } block = 0 - br = bufio.NewReaderSize(state.Drive, mtio.BlockSize*recordSize) - curr := int64(int64(recordSize) * mtio.BlockSize * record) + br = bufio.NewReaderSize(state.Drive, mtio.BlockSize*pipes.RecordSize) + curr := int64(int64(pipes.RecordSize) * mtio.BlockSize * record) counter := &ioext.CounterReader{Reader: br, BytesRead: int(curr)} tr = tar.NewReader(counter) @@ -202,10 +201,10 @@ func Query( currAndSize := int64(counter.BytesRead) nextTotalBlocks := math.Ceil(float64(curr+(currAndSize-curr)) / float64(mtio.BlockSize)) - record = int64(nextTotalBlocks) / int64(recordSize) - block = int64(nextTotalBlocks) - (record * int64(recordSize)) + record = int64(nextTotalBlocks) / int64(pipes.RecordSize) + block = int64(nextTotalBlocks) - (record * int64(pipes.RecordSize)) - if block > int64(recordSize) { + if block > int64(pipes.RecordSize) { record++ block = 0 }