//
// SPDX-License-Identifier: AGPL-3.0
-package main
+package keepstore
import (
"context"
sort.Slice(vm.writables, func(i, j int) bool {
return less(vm.writables[i], vm.writables[j])
})
+ sort.Slice(vm.mounts, func(i, j int) bool {
+ return less(vm.mounts[i], vm.mounts[j])
+ })
return vm, nil
}
// each volume gets a turn to be first. Used by PutBlock to distribute
// new data across available volumes.
func (vm *RRVolumeManager) NextWritable() []*VolumeMount {
+ if len(vm.writables) == 0 {
+ return nil
+ }
offset := (int(atomic.AddUint32(&vm.counter, 1)) - 1) % len(vm.writables)
return append(append([]*VolumeMount(nil), vm.writables[offset:]...), vm.writables[:offset]...)
}