Mkdir is similar to Lookup, but must create a directory entry and Inode. Default is to return EROFS.
(ctx context.Context, name string, mode uint32, out *fuse.EntryOut)
| 326 | // Mkdir is similar to Lookup, but must create a directory entry and Inode. |
| 327 | // Default is to return EROFS. |
| 328 | func (n *Node) Mkdir(ctx context.Context, name string, mode uint32, out *fuse.EntryOut) (inode *fusefs.Inode, errno syscall.Errno) { |
| 329 | defer log.Trace(name, "mode=0%o", mode)("inode=%v, errno=%v", &inode, &errno) |
| 330 | dir, ok := n.node.(*vfs.Dir) |
| 331 | if !ok { |
| 332 | return nil, syscall.ENOTDIR |
| 333 | } |
| 334 | newDir, err := dir.Mkdir(name) |
| 335 | if err != nil { |
| 336 | return nil, translateError(err) |
| 337 | } |
| 338 | newNode := newNode(n.fsys, newDir) |
| 339 | n.fsys.setEntryOut(newNode.node, out) |
| 340 | newInode := n.NewInode(ctx, newNode, fusefs.StableAttr{Mode: out.Attr.Mode}) |
| 341 | return newInode, 0 |
| 342 | } |
| 343 | |
| 344 | var _ = (fusefs.NodeMkdirer)((*Node)(nil)) |
| 345 |
nothing calls this directly
no test coverage detected