Lines Matching refs:fs
69 fs := &fsys{}
70 fs.mu.Lock()
71 defer fs.mu.Unlock()
72 ip := fs.newInode()
74 fs.dirlink(ip, ".", ip)
75 fs.dirlink(ip, "..", ip)
76 fs.cwd = ip
77 fs.root = ip
78 return fs
81 var fs = newFsys()
106 // expect fs.mu to have been locked by the caller.
109 func (fs *fsys) newInode() *inode {
110 fs.inum++
113 Ino: fs.inum,
121 func (fs *fsys) atime(ip *inode) {
127 func (fs *fsys) mtime(ip *inode) {
134 func (fs *fsys) dirlookup(dp *inode, name string) (de *dirent, index int, err error) {
135 fs.atime(dp)
139 fs.atime(de.inode)
148 func (fs *fsys) dirlink(dp *inode, name string, ip *inode) {
149 fs.mtime(dp)
150 fs.atime(ip)
191 func (fs *fsys) namei(path string, parent bool) (ip *inode, elem string, err error) {
205 ip = fs.root
207 ip = fs.cwd
232 de, _, err := fs.dirlookup(ip, elem)
247 func (fs *fsys) open(name string, openmode int, mode uint32) (fileImpl, error) {
248 dp, elem, err := fs.namei(name, true)
256 de, _, err := fs.dirlookup(dp, elem)
261 ip = fs.newInode()
263 fs.dirlink(dp, elem, ip)
265 fs.dirlink(ip, ".", ip)
266 fs.dirlink(ip, "..", dp)
280 if ip.Rdev < 0 || ip.Rdev >= int64(len(fs.dev)) || fs.dev[ip.Rdev] == nil {
283 dev, err = fs.dev[ip.Rdev]()
315 fsys: fs,
421 fs.atime(f.inode)
440 fs.atime(f.inode)
474 fs.mu.Lock()
475 defer fs.mu.Unlock()
476 f, err := fs.open(path, openmode, perm&0777|S_IFREG)
484 fs.mu.Lock()
485 defer fs.mu.Unlock()
486 _, err := fs.open(path, O_CREATE|O_EXCL, perm&0777|S_IFDIR)
497 fs.mu.Lock()
498 defer fs.mu.Unlock()
499 ip, _, err := fs.namei(path, false)
513 fs.mu.Lock()
514 defer fs.mu.Unlock()
515 dp, elem, err := fs.namei(path, true)
522 de, _, err := fs.dirlookup(dp, elem)
555 fs.mu.Lock()
556 defer fs.mu.Unlock()
557 ip, _, err := fs.namei(path, false)
578 fs.mu.Lock()
579 defer fs.mu.Unlock()
580 ip, _, err := fs.namei(path, false)
590 fs.mu.Lock()
591 defer fs.mu.Unlock()
612 fs.mu.Lock()
613 defer fs.mu.Unlock()
614 ip, _, err := fs.namei(path, false)
627 ip, _, err := fs.namei(path, false)
631 dp, elem, err := fs.namei(link, true)
638 fs.dirlink(dp, elem, ip)
644 fdp, felem, err := fs.namei(from, true)
648 fde, _, err := fs.dirlookup(fdp, felem)
652 tdp, telem, err := fs.namei(to, true)
656 fs.dirlink(tdp, telem, fde.inode)
664 func (fs *fsys) truncate(ip *inode, length int64) error {
681 fs.mu.Lock()
682 defer fs.mu.Unlock()
683 ip, _, err := fs.namei(path, false)
687 return fs.truncate(ip, length)
706 fs.mu.Lock()
707 defer fs.mu.Unlock()
708 ip, _, err := fs.namei(path, false)
712 fs.cwd = ip
726 fs.cwd = f.inode
745 f, err := fs.open(path, O_CREATE|O_RDONLY|O_EXCL, S_IFCHR|mode)
750 ip.Rdev = int64(len(fs.dev))
751 fs.dev = append(fs.dev, open)
812 fs.mu.Lock()
813 defer fs.mu.Unlock()
814 f, err := fs.open(name, O_CREATE|O_EXCL, mode)
817 ip, _, err := fs.namei(name, false)