aboutsummaryrefslogtreecommitdiff
path: root/weed/filer
diff options
context:
space:
mode:
Diffstat (limited to 'weed/filer')
-rw-r--r--weed/filer/entry.go1
-rw-r--r--weed/filer/entry_codec.go2
-rw-r--r--weed/filer/filer_delete_entry.go2
-rw-r--r--weed/filer/filer_hardlink.go16
4 files changed, 19 insertions, 2 deletions
diff --git a/weed/filer/entry.go b/weed/filer/entry.go
index 23eb2091b..ddb339bfb 100644
--- a/weed/filer/entry.go
+++ b/weed/filer/entry.go
@@ -25,6 +25,7 @@ type Attr struct {
Md5 []byte
FileSize uint64
Rdev uint32
+ Inode uint64
}
func (attr Attr) IsDirectory() bool {
diff --git a/weed/filer/entry_codec.go b/weed/filer/entry_codec.go
index ddbb5b08c..683e83cde 100644
--- a/weed/filer/entry_codec.go
+++ b/weed/filer/entry_codec.go
@@ -49,6 +49,7 @@ func EntryAttributeToPb(entry *Entry) *filer_pb.FuseAttributes {
Md5: entry.Attr.Md5,
FileSize: entry.Attr.FileSize,
Rdev: entry.Attr.Rdev,
+ Inode: entry.Attr.Inode,
}
}
@@ -76,6 +77,7 @@ func PbToEntryAttribute(attr *filer_pb.FuseAttributes) Attr {
t.Md5 = attr.Md5
t.FileSize = attr.FileSize
t.Rdev = attr.Rdev
+ t.Inode = attr.Inode
return t
}
diff --git a/weed/filer/filer_delete_entry.go b/weed/filer/filer_delete_entry.go
index bda69b15f..425da7cea 100644
--- a/weed/filer/filer_delete_entry.go
+++ b/weed/filer/filer_delete_entry.go
@@ -9,8 +9,6 @@ import (
"github.com/chrislusf/seaweedfs/weed/util"
)
-type HardLinkId []byte
-
const (
MsgFailDelNonEmptyFolder = "fail to delete non-empty folder"
)
diff --git a/weed/filer/filer_hardlink.go b/weed/filer/filer_hardlink.go
new file mode 100644
index 000000000..7a91602fd
--- /dev/null
+++ b/weed/filer/filer_hardlink.go
@@ -0,0 +1,16 @@
+package filer
+
+import (
+ "github.com/chrislusf/seaweedfs/weed/util"
+)
+
+const (
+ HARD_LINK_MARKER = '\x01'
+)
+
+type HardLinkId []byte // 16 bytes + 1 marker byte
+
+func NewHardLinkId() HardLinkId {
+ bytes := append(util.RandomBytes(16), HARD_LINK_MARKER)
+ return bytes
+}