diff options
Diffstat (limited to 'weed/replication/repl_util')
| -rw-r--r-- | weed/replication/repl_util/replication_util.go | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/weed/replication/repl_util/replication_util.go b/weed/replication/repl_util/replication_util.go index ec0e80b2e..9682ca623 100644 --- a/weed/replication/repl_util/replication_util.go +++ b/weed/replication/repl_util/replication_util.go @@ -7,9 +7,10 @@ import ( "github.com/seaweedfs/seaweedfs/weed/util" ) -func CopyFromChunkViews(chunkViews []*filer.ChunkView, filerSource *source.FilerSource, writeFunc func(data []byte) error) error { +func CopyFromChunkViews(chunkViews *filer.IntervalList[*filer.ChunkView], filerSource *source.FilerSource, writeFunc func(data []byte) error) error { - for _, chunk := range chunkViews { + for x := chunkViews.Front(); x != nil; x = x.Next { + chunk := x.Value fileUrls, err := filerSource.LookupFileId(chunk.FileId) if err != nil { @@ -20,7 +21,7 @@ func CopyFromChunkViews(chunkViews []*filer.ChunkView, filerSource *source.Filer var shouldRetry bool for _, fileUrl := range fileUrls { - shouldRetry, err = util.ReadUrlAsStream(fileUrl, chunk.CipherKey, chunk.IsGzipped, chunk.IsFullChunk(), chunk.Offset, int(chunk.Size), func(data []byte) { + shouldRetry, err = util.ReadUrlAsStream(fileUrl, chunk.CipherKey, chunk.IsGzipped, chunk.IsFullChunk(), chunk.OffsetInChunk, int(chunk.ViewSize), func(data []byte) { writeErr = writeFunc(data) }) if err != nil { |
