Browse Source

fix removing path from inode2path

pull/3354/head
chrislu 2 years ago
parent
commit
d24db396cc
  1. 4
      weed/mount/inode_to_path.go
  2. 14
      weed/mount/inode_to_path_test.go

4
weed/mount/inode_to_path.go

@ -34,8 +34,8 @@ func (ie *InodeEntry) removeOnePath(p util.FullPath) bool {
if idx < 0 {
return false
}
for x := len(ie.paths) - 2; x > idx; x-- {
ie.paths[x-1] = ie.paths[x]
for x := idx; x < len(ie.paths)-1; x++ {
ie.paths[x] = ie.paths[x+1]
}
ie.paths = ie.paths[0 : len(ie.paths)-1]
return true

14
weed/mount/inode_to_path_test.go

@ -13,6 +13,15 @@ func TestInodeEntry_removeOnePath(t *testing.T) {
want bool
count int
}{
{
name: "actual case",
entry: InodeEntry{
paths: []util.FullPath{"/pjd/nx", "/pjd/n0"},
},
p: "/pjd/nx",
want: true,
count: 1,
},
{
name: "empty",
entry: InodeEntry{},
@ -74,6 +83,11 @@ func TestInodeEntry_removeOnePath(t *testing.T) {
if tt.count != len(tt.entry.paths) {
t.Errorf("removeOnePath path count = %v, want %v", len(tt.entry.paths), tt.count)
}
for i, p := range tt.entry.paths {
if p == tt.p {
t.Errorf("removeOnePath found path still exists at %v, %v", i, p)
}
}
})
}
}
Loading…
Cancel
Save