func (c *rawBridge) Open(input *fuse.OpenIn, out *fuse.OpenOut) (status fuse.Status) { node := c.toInode(input.NodeId) f, code := node.fsInode.Open(input.Flags, &input.Context) if !code.Ok() || f == nil { return code } h, opened := node.mount.registerFileHandle(node, nil, f, input.Flags) out.OpenFlags = opened.FuseFlags out.Fh = h return fuse.OK }
func (c *rawBridge) OpenDir(input *fuse.OpenIn, out *fuse.OpenOut) (code fuse.Status) { node := c.toInode(input.NodeId) stream, err := node.fsInode.OpenDir(&input.Context) if err != fuse.OK { return err } stream = append(stream, node.getMountDirEntries()...) de := &connectorDir{ node: node.Node(), stream: append(stream, fuse.DirEntry{Mode: fuse.S_IFDIR, Name: "."}, fuse.DirEntry{Mode: fuse.S_IFDIR, Name: ".."}), rawFS: c, } h, opened := node.mount.registerFileHandle(node, de, nil, input.Flags) out.OpenFlags = opened.FuseFlags out.Fh = h return fuse.OK }