aboutsummaryrefslogtreecommitdiff
path: root/weed/filesys
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-10-20 23:48:29 -0700
committerChris Lu <chris.lu@gmail.com>2020-10-20 23:48:29 -0700
commitc31b2542489ea4cddffbf1efedbdb867fb6cdb2f (patch)
tree9762a4b1c79c6c27b83bfef3c3b285aa7a613c65 /weed/filesys
parentf64252023ee882264ea1b220afbdf0321e26a56b (diff)
downloadseaweedfs-c31b2542489ea4cddffbf1efedbdb867fb6cdb2f.tar.xz
seaweedfs-c31b2542489ea4cddffbf1efedbdb867fb6cdb2f.zip
mount: shortcut when there is only one chunk
Diffstat (limited to 'weed/filesys')
-rw-r--r--weed/filesys/dirty_page_interval.go7
1 files changed, 6 insertions, 1 deletions
diff --git a/weed/filesys/dirty_page_interval.go b/weed/filesys/dirty_page_interval.go
index afa2755ed..f143fe3e4 100644
--- a/weed/filesys/dirty_page_interval.go
+++ b/weed/filesys/dirty_page_interval.go
@@ -3,6 +3,8 @@ package filesys
import (
"bytes"
"io"
+
+ "github.com/chrislusf/seaweedfs/weed/util"
)
type IntervalNode struct {
@@ -200,10 +202,13 @@ func (c *ContinuousIntervals) ReadDataAt(data []byte, startOffset int64) (maxSto
func (l *IntervalLinkedList) ToReader() io.Reader {
var readers []io.Reader
t := l.Head
- readers = append(readers, bytes.NewReader(t.Data))
+ readers = append(readers, util.NewBytesReader(t.Data))
for t.Next != nil {
t = t.Next
readers = append(readers, bytes.NewReader(t.Data))
}
+ if len(readers) == 1 {
+ return readers[0]
+ }
return io.MultiReader(readers...)
}