diff --git a/cmd/storage-rpc-client.go b/cmd/storage-rpc-client.go index 7dd6172f9..daa8abbfd 100644 --- a/cmd/storage-rpc-client.go +++ b/cmd/storage-rpc-client.go @@ -227,7 +227,7 @@ func (client *StorageRPCClient) ReadFile(volume string, path string, offset int6 Vol: volume, Path: path, Offset: offset, - Buffer: buffer, + Length: int64(len(buffer)), Verified: true, // mark read as verified by default } if verifier != nil { diff --git a/cmd/storage-rpc-server.go b/cmd/storage-rpc-server.go index bc7b71d50..e3cf9b6b4 100644 --- a/cmd/storage-rpc-server.go +++ b/cmd/storage-rpc-server.go @@ -127,7 +127,7 @@ type ReadFileArgs struct { Vol string Path string Offset int64 - Buffer []byte + Length int64 Algo BitrotAlgorithm ExpectedHash []byte Verified bool @@ -140,13 +140,14 @@ func (receiver *storageRPCReceiver) ReadFile(args *ReadFileArgs, reply *[]byte) verifier = NewBitrotVerifier(args.Algo, args.ExpectedHash) } - n, err := receiver.local.ReadFile(args.Vol, args.Path, args.Offset, args.Buffer, verifier) + buf := make([]byte, args.Length) + n, err := receiver.local.ReadFile(args.Vol, args.Path, args.Offset, buf, verifier) // Ignore io.ErrEnexpectedEOF for short reads i.e. less content available than requested. if err == io.ErrUnexpectedEOF { err = nil } - *reply = args.Buffer[0:n] + *reply = buf[0:n] return err }