mirror of
https://github.com/minio/minio.git
synced 2025-11-13 15:21:36 -05:00
Copy metadata before spawning goroutine + prealloc maps (#10458)
In `(*cacheObjects).GetObjectNInfo` copy the metadata before spawning a goroutine. Clean up a few map[string]string copies as well, reducing allocs and simplifying the code. Fixes #10426
This commit is contained in:
10
cmd/fs-v1.go
10
cmd/fs-v1.go
@@ -635,10 +635,7 @@ func (fs *FSObjects) CopyObject(ctx context.Context, srcBucket, srcObject, dstBu
|
||||
fsMeta = fs.defaultFsJSON(srcObject)
|
||||
}
|
||||
|
||||
fsMeta.Meta = map[string]string{}
|
||||
for k, v := range srcInfo.UserDefined {
|
||||
fsMeta.Meta[k] = v
|
||||
}
|
||||
fsMeta.Meta = cloneMSS(srcInfo.UserDefined)
|
||||
fsMeta.Meta["etag"] = srcInfo.ETag
|
||||
if _, err = fsMeta.WriteTo(wlk); err != nil {
|
||||
return oi, toObjectErr(err, srcBucket, srcObject)
|
||||
@@ -1124,10 +1121,7 @@ func (fs *FSObjects) putObject(ctx context.Context, bucket string, object string
|
||||
data := r.Reader
|
||||
|
||||
// No metadata is set, allocate a new one.
|
||||
meta := make(map[string]string)
|
||||
for k, v := range opts.UserDefined {
|
||||
meta[k] = v
|
||||
}
|
||||
meta := cloneMSS(opts.UserDefined)
|
||||
var err error
|
||||
|
||||
// Validate if bucket name is valid and exists.
|
||||
|
||||
Reference in New Issue
Block a user