aboutsummaryrefslogtreecommitdiff
path: root/weed/replication/repl_util
diff options
context:
space:
mode:
Diffstat (limited to 'weed/replication/repl_util')
-rw-r--r--weed/replication/repl_util/replication_util.go7
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 {