Skip to content

Commit 6e4cc0a

Browse files
author
JojiiOfficial
committed
add rename namespaces
add umount retry
1 parent 8dd1434 commit 6e4cc0a

File tree

2 files changed

+32
-6
lines changed

2 files changed

+32
-6
lines changed

dmfs/dmfsRoot.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,25 @@ func (root *dmanagerRoot) Rmdir(ctx context.Context, name string) syscall.Errno
8383

8484
// Rename if virtual file was renamed
8585
func (root *dmanagerRoot) Rename(ctx context.Context, name string, newParent fs.InodeEmbedder, newName string, flags uint32) syscall.Errno {
86-
fmt.Println("renome")
86+
// Don't rename default ns
87+
if name == "default" {
88+
fmt.Println("Can't rename default namespace!")
89+
return syscall.EACCES
90+
}
91+
92+
// Get real namespace names
93+
oldNSName := addNSName(name, root.libdm.Config)
94+
newNSName := addNSName(newName, root.libdm.Config)
95+
root.debug("rename namespace", oldNSName, "->", newNSName)
96+
97+
// Make rename request
98+
_, err := root.libdm.UpdateNamespace(oldNSName, newNSName)
99+
if err != nil {
100+
fmt.Println(err)
101+
return syscall.ENONET
102+
}
103+
104+
// Return success
87105
return 0
88106
}
89107

dmfs/mount.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"os"
77
"os/signal"
88
"path/filepath"
9+
"time"
910

1011
"github.com/DataManager-Go/libdatamanager"
1112
dmConfig "github.com/DataManager-Go/libdatamanager/config"
@@ -87,11 +88,18 @@ func (mounter *Mounter) Mount() {
8788

8889
// Umount fs
8990
func (mounter *Mounter) umount() {
90-
err := mounter.server.Unmount()
91-
if err != nil {
92-
fmt.Println(err)
93-
} else {
94-
fmt.Println("Umounted")
91+
// On error retry after 3s
92+
for {
93+
err := mounter.server.Unmount()
94+
95+
if err != nil {
96+
fmt.Println(err)
97+
fmt.Println("retry in 3s")
98+
time.Sleep(3 * time.Second)
99+
} else {
100+
fmt.Println("Umounted")
101+
break
102+
}
95103
}
96104

97105
mounter.doneChan <- true

0 commit comments

Comments
 (0)