aboutsummaryrefslogtreecommitdiff
path: root/weed/mount/filehandle_map.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/mount/filehandle_map.go')
-rw-r--r--weed/mount/filehandle_map.go8
1 files changed, 3 insertions, 5 deletions
diff --git a/weed/mount/filehandle_map.go b/weed/mount/filehandle_map.go
index f0051f061..852ef9e35 100644
--- a/weed/mount/filehandle_map.go
+++ b/weed/mount/filehandle_map.go
@@ -1,6 +1,7 @@
package mount
import (
+ "github.com/seaweedfs/seaweedfs/weed/util"
"sync"
"github.com/seaweedfs/seaweedfs/weed/pb/filer_pb"
@@ -8,7 +9,6 @@ import (
type FileHandleToInode struct {
sync.RWMutex
- nextFh FileHandleId
inode2fh map[uint64]*FileHandle
fh2inode map[FileHandleId]uint64
}
@@ -17,7 +17,6 @@ func NewFileHandleToInode() *FileHandleToInode {
return &FileHandleToInode{
inode2fh: make(map[uint64]*FileHandle),
fh2inode: make(map[FileHandleId]uint64),
- nextFh: 0,
}
}
@@ -43,14 +42,13 @@ func (i *FileHandleToInode) AcquireFileHandle(wfs *WFS, inode uint64, entry *fil
defer i.Unlock()
fh, found := i.inode2fh[inode]
if !found {
- fh = newFileHandle(wfs, i.nextFh, inode, entry)
- i.nextFh++
+ fh = newFileHandle(wfs, FileHandleId(util.RandomUint64()), inode, entry)
i.inode2fh[inode] = fh
i.fh2inode[fh.fh] = inode
} else {
fh.counter++
}
- if fh.GetEntry() != entry {
+ if fh.GetEntry().GetEntry() != entry {
fh.SetEntry(entry)
}
return fh