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