FUSE(Bazil-Go):如何实现MkDir请求?

时间:2018-03-15 18:10:22

标签: go mkdir fuse

我正在尝试在Go中实现函数mkdir,用Go编写,我正在使用Bazil library。我已成功实现了一个简单的只读fs,现在我希望能够在任何现有目录中调用mkdir来创建一个新的。{/ p>

我确保所有现有目录都是可写的,(attr.Mode = os.ModeDir | 0777)。 现在我刚刚添加了这个功能:

func (d Dir) MkDir(ctx context.Context, req *fuse.MkdirRequest) (fs.Node, error) {
    dir := &Dir{name: req.Name, files: 0, inode: 10 /*a random inode*/,mode: os.FileMode(0777),nextdir: nil, nextfile: nil}
    d.nextdir = dir
    return dir, nil
}

在我自己实施的巴西图书馆hello fs example中。但这似乎没有任何区别。

当我从终端呼叫mkdir new_dir_name时,我收到错误:“mkdir:无法创建目录'new_dir_name':操作不被允许”,即使我添加了mkdir功能。

关于为什么会发生这种情况的任何见解,以及我应该在代码中添加什么才能使其正常工作将会很棒。另外,这是我的第一个stackoverflow问题,所以如果我没有明确要求,我很抱歉。

1 个答案:

答案 0 :(得分:0)

像这样的make目录的正确功能

func (d *Dir) Mkdir(ctx context.Context, req *fuse.MkdirRequest) (fs.Node, error) {

}