MCPcopy
hub / github.com/rclone/rclone / Mkdir

Method Mkdir

cmd/mount2/node.go:328–342  ·  view source on GitHub ↗

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)

Source from the content-addressed store, hash-verified

326// Mkdir is similar to Lookup, but must create a directory entry and Inode.
327// Default is to return EROFS.
328func (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
344var _ = (fusefs.NodeMkdirer)((*Node)(nil))
345

Callers

nothing calls this directly

Implementers 2

Filevfs/file.go
Dirvfs/dir.go

Calls 5

TraceFunction · 0.92
newNodeFunction · 0.85
setEntryOutMethod · 0.80
translateErrorFunction · 0.70
MkdirMethod · 0.65

Tested by

no test coverage detected