diff options
| author | chrislu <chris.lu@gmail.com> | 2022-08-21 11:49:29 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2022-08-21 11:49:29 -0700 |
| commit | 388f82f322fcadfeb91ccaf14109162f1641888a (patch) | |
| tree | a26ab957d3622017268357758117430837575cda | |
| parent | 77e4b1376e55e3437d5d18f3fe4c7003882121e8 (diff) | |
| download | seaweedfs-388f82f322fcadfeb91ccaf14109162f1641888a.tar.xz seaweedfs-388f82f322fcadfeb91ccaf14109162f1641888a.zip | |
minor
| -rw-r--r-- | weed/filer/reader_at.go | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/weed/filer/reader_at.go b/weed/filer/reader_at.go index 6f9734b7e..9d1fab20a 100644 --- a/weed/filer/reader_at.go +++ b/weed/filer/reader_at.go @@ -129,8 +129,7 @@ func (c *ChunkReadAt) doReadAt(p []byte, offset int64) (n int, err error) { if startOffset < chunk.LogicOffset { gap := chunk.LogicOffset - startOffset glog.V(4).Infof("zero [%d,%d)", startOffset, chunk.LogicOffset) - zero(p, startOffset-offset, gap) - n += int(min(gap, remaining)) + n += zero(p, startOffset-offset, gap) startOffset, remaining = chunk.LogicOffset, remaining-gap if remaining <= 0 { break @@ -166,8 +165,7 @@ func (c *ChunkReadAt) doReadAt(p []byte, offset int64) (n int, err error) { startOffset = max(startOffset-offset, startOffset-remaining-offset) } glog.V(4).Infof("zero2 [%d,%d) of file size %d bytes", startOffset, startOffset+delta, c.fileSize) - zero(p, startOffset, delta) - n += int(delta) + n += zero(p, startOffset, delta) } if err == nil && offset+int64(len(p)) >= c.fileSize { @@ -206,11 +204,13 @@ func (c *ChunkReadAt) readChunkSliceAt(buffer []byte, chunkView *ChunkView, next return } -func zero(buffer []byte, start, length int64) { +func zero(buffer []byte, start, length int64) int { end := min(start+length, int64(len(buffer))) + start = max(start, 0) // zero the bytes for o := start; o < end; o++ { buffer[o] = 0 } + return int(end - start) } |
