Example #1
0
func (fs *DeviceFs) trimUnused(todo int64, node *fuse.Inode) (done int64) {
	for _, ch := range node.Children() {
		if done > todo {
			break
		}

		if fn, ok := ch.FsNode().(*classicNode); ok {
			done += fn.trim()
		} else if ch.IsDir() {
			done += fs.trimUnused(todo-done, ch)
		}
	}
	return
}
Example #2
0
func toFileNode(n *fuse.Inode) *fileNode {
	switch f := n.FsNode().(type) {
	case *fileNode:
		return f
	case *folderNode:
		return f.fileNode
	}
	return nil
}
Example #3
0
func mtpFile(n *fuse.Inode) *File {
	switch f := n.FsNode().(type) {
	case *fileNode:
		return f.File()
	case *folderNode:
		return f.File()
	}
	return nil
}