aboutsummaryrefslogtreecommitdiff
path: root/weed/mount/weedfs.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/mount/weedfs.go')
-rw-r--r--weed/mount/weedfs.go22
1 files changed, 13 insertions, 9 deletions
diff --git a/weed/mount/weedfs.go b/weed/mount/weedfs.go
index aaaa2877d..d7d5695da 100644
--- a/weed/mount/weedfs.go
+++ b/weed/mount/weedfs.go
@@ -2,7 +2,16 @@ package mount
import (
"context"
+ "math/rand"
+ "os"
+ "path"
+ "path/filepath"
+ "sync/atomic"
+ "time"
+
"github.com/hanwen/go-fuse/v2/fuse"
+ "google.golang.org/grpc"
+
"github.com/seaweedfs/seaweedfs/weed/filer"
"github.com/seaweedfs/seaweedfs/weed/mount/meta_cache"
"github.com/seaweedfs/seaweedfs/weed/pb"
@@ -13,12 +22,6 @@ import (
"github.com/seaweedfs/seaweedfs/weed/util/chunk_cache"
"github.com/seaweedfs/seaweedfs/weed/util/grace"
"github.com/seaweedfs/seaweedfs/weed/wdclient"
- "google.golang.org/grpc"
- "math/rand"
- "os"
- "path"
- "path/filepath"
- "time"
"github.com/hanwen/go-fuse/v2/fs"
)
@@ -26,7 +29,7 @@ import (
type Option struct {
MountDirectory string
FilerAddresses []pb.ServerAddress
- filerIndex int
+ filerIndex int32
GrpcDialOption grpc.DialOption
FilerMountRootPath string
Collection string
@@ -86,7 +89,7 @@ func NewSeaweedFileSystem(option *Option) *WFS {
dhmap: NewDirectoryHandleToInode(),
}
- wfs.option.filerIndex = rand.Intn(len(option.FilerAddresses))
+ wfs.option.filerIndex = int32(rand.Intn(len(option.FilerAddresses)))
wfs.option.setupUniqueCacheDirectory()
if option.CacheSizeMB > 0 {
wfs.chunkCache = chunk_cache.NewTieredChunkCache(256, option.getUniqueCacheDir(), option.CacheSizeMB, 1024*1024)
@@ -181,7 +184,8 @@ func (wfs *WFS) LookupFn() wdclient.LookupFileIdFunctionType {
}
func (wfs *WFS) getCurrentFiler() pb.ServerAddress {
- return wfs.option.FilerAddresses[wfs.option.filerIndex]
+ i := atomic.LoadInt32(&wfs.option.filerIndex)
+ return wfs.option.FilerAddresses[i]
}
func (option *Option) setupUniqueCacheDirectory() {