From 772019c4a239087b44ebab93ce3a5ef3b71a4cdd Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Sun, 24 May 2015 18:05:45 +0900 Subject: [PATCH] Work in progress --- dir.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/dir.go b/dir.go index d47cafc..6ae7f81 100644 --- a/dir.go +++ b/dir.go @@ -49,12 +49,13 @@ func newVersionedDir(node *versionedNode, inode uint64, parent *versionedDir) *v func (this *versionedDir) createDir(name string) (*versionedDir, error) { childPath := path.Join(this.node.path, name) + childPathFull := this.node.ver.rebasePath(childPath) - if err := os.Mkdir(childPath, 0755); err != nil { + if err := os.Mkdir(childPathFull, 0755); err != nil { return nil, err } - info, err := os.Stat(childPath) + info, err := os.Stat(childPathFull) if err != nil { return nil, err } @@ -65,14 +66,15 @@ func (this *versionedDir) createDir(name string) (*versionedDir, error) { func (this *versionedDir) createFile(name string, flags int) (*versionedFile, error) { childPath := path.Join(this.node.path, name) + childPathFull := this.node.ver.rebasePath(childPath) - file, err := os.OpenFile(name, flags, 0644) + file, err := os.OpenFile(childPathFull, flags, 0644) if err != nil { return nil, err } defer file.Close() - info, err := os.Stat(childPath) + info, err := os.Stat(childPathFull) if err != nil { return nil, err } @@ -104,6 +106,10 @@ func (this *versionedDir) Create(ctx context.Context, req *fuse.CreateRequest, r } } +func (this *versionedDir) Mkdir(ctx context.Context, req *fuse.MkdirRequest) (fs.Node, error) { + return this.createDir(req.Name) +} + func (this *versionedDir) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) { entries := []fuse.Dirent{{Inode: this.inode, Name: ".", Type: fuse.DT_Dir}} if this.parent != nil {