mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-09-19 15:17:56 +08:00
generate inode via path and time
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package util
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
)
|
||||
@@ -43,29 +42,9 @@ func (fp FullPath) Child(name string) FullPath {
|
||||
}
|
||||
|
||||
// AsInode an in-memory only inode representation
|
||||
func (fp FullPath) AsInode(fileMode os.FileMode) uint64 {
|
||||
func (fp FullPath) AsInode(unixTime int64) uint64 {
|
||||
inode := uint64(HashStringToLong(string(fp)))
|
||||
inode = inode - inode%16
|
||||
if fileMode == 0 {
|
||||
} else if fileMode&os.ModeDir > 0 {
|
||||
inode += 1
|
||||
} else if fileMode&os.ModeSymlink > 0 {
|
||||
inode += 2
|
||||
} else if fileMode&os.ModeDevice > 0 {
|
||||
if fileMode&os.ModeCharDevice > 0 {
|
||||
inode += 6
|
||||
} else {
|
||||
inode += 3
|
||||
}
|
||||
} else if fileMode&os.ModeNamedPipe > 0 {
|
||||
inode += 4
|
||||
} else if fileMode&os.ModeSocket > 0 {
|
||||
inode += 5
|
||||
} else if fileMode&os.ModeCharDevice > 0 {
|
||||
inode += 6
|
||||
} else if fileMode&os.ModeIrregular > 0 {
|
||||
inode += 7
|
||||
}
|
||||
inode = inode + uint64(unixTime)*37
|
||||
return inode
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user