mirror of https://github.com/minio/minio.git
Compare commits
12 Commits
2ee19fb52e
...
1211f16c90
Author | SHA1 | Date |
---|---|---|
|
1211f16c90 | |
|
4e08f3596f | |
|
ab449bb59d | |
|
f13bda98fd | |
|
e857649a7f | |
|
ce89222f92 | |
|
ed45e8cb2c | |
|
1a42f79a6e | |
|
7e72150297 | |
|
4424af9668 | |
|
6affa6e886 | |
|
b409ac511a |
|
@ -635,15 +635,18 @@ func (z *erasureServerPools) getPoolIdxNoLock(ctx context.Context, bucket, objec
|
|||
// if none are found falls back to most available space pool, this function is
|
||||
// designed to be only used by PutObject, CopyObject (newObject creation) and NewMultipartUpload.
|
||||
func (z *erasureServerPools) getPoolIdx(ctx context.Context, bucket, object string, size int64) (idx int, err error) {
|
||||
idx, err = z.getPoolIdxExistingWithOpts(ctx, bucket, object, ObjectOptions{
|
||||
pinfo, _, err := z.getPoolInfoExistingWithOpts(ctx, bucket, object, ObjectOptions{
|
||||
SkipDecommissioned: true,
|
||||
SkipRebalancing: true,
|
||||
})
|
||||
|
||||
if err != nil && !isErrObjectNotFound(err) {
|
||||
return idx, err
|
||||
return -1, err
|
||||
}
|
||||
|
||||
if isErrObjectNotFound(err) {
|
||||
idx = pinfo.Index
|
||||
if isErrObjectNotFound(err) || pinfo.Err == nil {
|
||||
// will generate a temp object
|
||||
idx = z.getAvailablePoolIdx(ctx, bucket, object, size)
|
||||
if idx < 0 {
|
||||
return -1, toObjectErr(errDiskFull)
|
||||
|
@ -1089,6 +1092,10 @@ func (z *erasureServerPools) PutObject(ctx context.Context, bucket string, objec
|
|||
|
||||
object = encodeDirObject(object)
|
||||
if z.SinglePool() {
|
||||
_, err := z.getPoolIdx(ctx, bucket, object, data.Size())
|
||||
if err != nil {
|
||||
return ObjectInfo{}, err
|
||||
}
|
||||
return z.serverPools[0].PutObject(ctx, bucket, object, data, opts)
|
||||
}
|
||||
|
||||
|
@ -1816,6 +1823,10 @@ func (z *erasureServerPools) PutObjectPart(ctx context.Context, bucket, object,
|
|||
}
|
||||
|
||||
if z.SinglePool() {
|
||||
_, err := z.getPoolIdx(ctx, bucket, object, data.Size())
|
||||
if err != nil {
|
||||
return PartInfo{}, err
|
||||
}
|
||||
return z.serverPools[0].PutObjectPart(ctx, bucket, object, uploadID, partID, data, opts)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue