erasure: ReadFile should honor proper offsets. (#1542)

Fixes #1535
master
Harshavardhana 9 years ago
parent 76c511c9fe
commit a8fdd04e62
  1. 7
      xl-erasure-v1-readfile.go

@ -174,13 +174,14 @@ func (xl XL) ReadFile(volume, path string, startOffset int64) (io.ReadCloser, er
// Verify if the offset is right for the block, if not move to
// the next block.
if startOffset > 0 {
startOffset = startOffset - int64(len(dataBlocks))
if startOffset > int64(len(dataBlocks)) {
// Start offset is greater than or equal to zero, skip the dataBlocks.
if startOffset >= 0 {
continue
}
// Fetch back the overflow offset, to skip from the current data
// blocks.
// Now get back the remaining offset if startOffset is negative.
startOffset = startOffset + int64(len(dataBlocks))
}

Loading…
Cancel
Save