Lines Matching refs:ns

49     nspace      *ns;
70 static int rootfs_read_vnode(void *ns, vnode_id vnid, char r,
72 static int rootfs_write_vnode(void *ns, void *node, char r);
73 static int rootfs_remove_vnode(void *ns, void *node, char r);
74 static int rootfs_walk(void *ns, void *base, const char *file,
76 static int rootfs_access(void *ns, void *node, int mode);
77 static int rootfs_symlink(void *ns, void *dir, const char *name,
79 static int rootfs_mkdir(void *ns, void *dir, const char *name,
81 static int rootfs_rename(void *ns, void *olddir, const char *oldname,
83 static int rootfs_unlink(void *ns, void *dir, const char *name);
84 static int rootfs_rmdir(void *ns, void *dir, const char *name);
85 static int rootfs_readlink(void *ns, void *node, char *buf,
87 static int rootfs_opendir(void *ns, void *node, void **cookie);
88 static int rootfs_closedir(void *ns, void *node, void *cookie);
89 static int rootfs_free_dircookie(void *ns, void *node, void *cookie);
90 static int rootfs_rewinddir(void *ns, void *node, void *cookie);
91 static int rootfs_readdir(void *ns, void *node, void *cookie,
93 static int rootfs_rstat(void *ns, void *node, struct my_stat *st);
94 static int rootfs_wstat(void *ns, void *node, struct my_stat *st, long mask);
97 static int rootfs_unmount(void *ns);
100 static int do_create(nspace *ns, vnode *dir, const char *name,
102 static int do_unlink(nspace *ns, vnode *dir, const char *name, bool isdir);
156 nspace *ns;
162 ns = (nspace *) _ns;
165 LOCK(ns->lock);
185 err = get_vnode(ns->nsid, base->vnid, (void *)&vn);
196 err = get_vnode(ns->nsid, base->parent->vnid, (void *)&vn);
245 err = get_vnode(ns->nsid, vn->vnid, (void *)&vn);
251 UNLOCK(ns->lock);
259 nspace *ns;
264 ns = (nspace *) _ns;
267 LOCK(ns->lock);
268 err = do_create(ns, dir, name, (perms & ~MY_S_IFMT) | MY_S_IFDIR, &vn);
269 UNLOCK(ns->lock);
276 nspace *ns;
282 ns = (nspace *) _ns;
291 LOCK(ns->lock);
292 err = do_create(ns, dir, name, MY_S_IFLNK, &vn);
296 UNLOCK(ns->lock);
300 UNLOCK(ns->lock);
310 nspace *ns;
316 ns = (nspace *) _ns;
320 LOCK(ns->lock);
374 while (avn != ns->root) {
401 if (nvn == nvn->ns->root) {
410 err = get_vnode(ns->nsid, nvn->vnid, (void *)&nvn);
414 err = remove_vnode(ns->nsid, nvn->vnid);
426 put_vnode(ns->nsid, nvn->vnid);
457 UNLOCK(ns->lock);
461 UNLOCK(ns->lock);
468 nspace *ns;
471 ns = (nspace *) _ns;
474 return do_unlink(ns, dir, name, FALSE);
480 nspace *ns;
483 ns = (nspace *) _ns;
486 return do_unlink(ns, dir, name, TRUE);
494 nspace *ns;
498 ns = (nspace *) _ns;
501 LOCK(ns->lock);
503 fakevn.ns = ns;
504 vn = SearchSL(ns->skiplist, &fakevn);
508 UNLOCK(ns->lock);
521 nspace *ns;
524 ns = (nspace *) _ns;
528 LOCK(ns->lock);
529 DeleteSL(ns->skiplist, node);
531 UNLOCK(ns->lock);
533 atomic_add(&ns->vnnum, -1);
545 nspace *ns;
550 ns = (nspace *) _ns;
572 nspace *ns;
577 ns = (nspace *) _ns;
613 nspace *ns;
617 ns = (nspace *) _ns;
629 nspace *ns;
633 ns = (nspace *) _ns;
648 nspace *ns;
659 ns = (nspace *) _ns;
663 LOCK(ns->lock);
703 UNLOCK(ns->lock);
710 nspace *ns;
713 ns = (nspace *) _ns;
716 LOCK(ns->lock);
717 st->dev = ns->nsid;
726 UNLOCK(ns->lock);
733 nspace *ns;
736 ns = (nspace *) _ns;
742 LOCK(ns->lock);
755 UNLOCK(ns->lock);
764 nspace *ns;
773 ns = (nspace *) malloc(sizeof(nspace));
774 if (!ns) {
787 ns->nsid = nsid;
788 ns->vnnum = 0;
789 ns->nxvnid = rvnid;
790 ns->root = root;
791 if (new_lock(&ns->lock, "rootfs") < 0) {
795 ns->skiplist = NewSL(&compare_vnode, NULL, NO_DUPLICATES);
796 if (!ns->skiplist) {
803 root->ns = ns;
820 *data = ns;
826 FreeSL(ns->skiplist);
828 free_lock(&ns->lock);
832 free(ns);
840 nspace *ns;
843 ns = (nspace *) _ns;
845 vn = ns->root;
850 if (vn == ns->root)
859 rootfs_remove_vnode(ns, avn, TRUE);
861 free(ns->root);
862 free_lock(&ns->lock);
863 FreeSL(ns->skiplist);
864 free(ns);
888 do_create(nspace *ns, vnode *dir, const char *name, mode_t mode, vnode **vnp)
959 vnid = ++ns->nxvnid;
963 vn->ns = ns;
990 atomic_add(&ns->vnnum, 1);
992 InsertSL(ns->skiplist, vn);
1008 do_unlink(nspace *ns, vnode *dir, const char *name, bool isdir)
1013 LOCK(ns->lock);
1066 if (vn == vn->ns->root) {
1080 err = get_vnode(ns->nsid, vn->vnid, (void *)&vn);
1084 err = remove_vnode(ns->nsid, vn->vnid);
1098 put_vnode(ns->nsid, vn->vnid);
1100 UNLOCK(ns->lock);
1105 UNLOCK(ns->lock);