@ -444,27 +444,29 @@ func (b bucket) writeObjectData(k, m uint8, writers []io.WriteCloser, objectData
var length int
inputData := make ( [ ] byte , chunkSize )
length , e = objectData . Read ( inputData )
encodedBlocks , err := encoder . Encode ( inputData )
if err != nil {
return 0 , 0 , err . Trace ( )
}
if _ , err := hashWriter . Write ( inputData [ 0 : length ] ) ; err != nil {
return 0 , 0 , probe . NewError ( err )
}
for blockIndex , block := range encodedBlocks {
errCh := make ( chan error , 1 )
go func ( writer io . Writer , reader io . Reader , errCh chan <- error ) {
defer close ( errCh )
_ , err := io . Copy ( writer , reader )
errCh <- err
} ( writers [ blockIndex ] , bytes . NewReader ( block ) , errCh )
if err := <- errCh ; err != nil {
// Returning error is fine here CleanupErrors() would cleanup writers
if length != 0 {
encodedBlocks , err := encoder . Encode ( inputData [ 0 : length ] )
if err != nil {
return 0 , 0 , err . Trace ( )
}
if _ , err := hashWriter . Write ( inputData [ 0 : length ] ) ; err != nil {
return 0 , 0 , probe . NewError ( err )
}
for blockIndex , block := range encodedBlocks {
errCh := make ( chan error , 1 )
go func ( writer io . Writer , reader io . Reader , errCh chan <- error ) {
defer close ( errCh )
_ , err := io . Copy ( writer , reader )
errCh <- err
} ( writers [ blockIndex ] , bytes . NewReader ( block ) , errCh )
if err := <- errCh ; err != nil {
// Returning error is fine here CleanupErrors() would cleanup writers
return 0 , 0 , probe . NewError ( err )
}
}
totalLength += length
chunkCount = chunkCount + 1
}
totalLength += length
chunkCount = chunkCount + 1
}
if e != io . EOF {
return 0 , 0 , probe . NewError ( e )