Lines Matching refs:root
30 static DEFINE_SPINLOCK(kernfs_idr_lock); /* root->ino_idr */
95 /* worst case b and a will be the same at root */
106 * where kn_from is treated as root of the path.
107 * @kn_from: kernfs node which should be treated as root for the path
213 * be on the same kernfs-root. If @from is not parent of @to, then a relative
482 struct kernfs_root *root = kernfs_root(kn);
484 lockdep_assert_held_write(&root->kernfs_rwsem);
497 up_write(&root->kernfs_rwsem);
505 wait_event(root->deactivate_waitq,
516 down_write(&root->kernfs_rwsem);
541 struct kernfs_root *root;
545 root = kernfs_root(kn);
567 idr_remove(&root->ino_idr, (u32)kernfs_ino(kn));
576 /* just released the root kn, free @root too */
577 idr_destroy(&root->ino_idr);
578 kfree(root);
601 static struct kernfs_node *__kernfs_new_node(struct kernfs_root *root,
621 ret = idr_alloc_cyclic(&root->ino_idr, kn, 1, 0, GFP_ATOMIC);
622 if (ret >= 0 && ret < root->last_id_lowbits)
623 root->id_highbits++;
624 id_highbits = root->id_highbits;
625 root->last_id_lowbits = ret;
663 idr_remove(&root->ino_idr, (u32)kernfs_ino(kn));
702 * @root: the kernfs root
711 struct kernfs_node *kernfs_find_and_get_node_by_id(struct kernfs_root *root,
720 kn = idr_find(&root->ino_idr, (u32)ino);
764 struct kernfs_root *root = kernfs_root(parent);
769 down_write(&root->kernfs_rwsem);
791 down_write(&root->kernfs_iattr_rwsem);
799 up_write(&root->kernfs_iattr_rwsem);
800 up_write(&root->kernfs_rwsem);
814 up_write(&root->kernfs_rwsem);
907 struct kernfs_root *root = kernfs_root(parent);
909 down_read(&root->kernfs_rwsem);
912 up_read(&root->kernfs_rwsem);
933 struct kernfs_root *root = kernfs_root(parent);
935 down_read(&root->kernfs_rwsem);
938 up_read(&root->kernfs_rwsem);
949 * Return: the root of the new hierarchy on success, ERR_PTR() value on
955 struct kernfs_root *root;
958 root = kzalloc(sizeof(*root), GFP_KERNEL);
959 if (!root)
962 idr_init(&root->ino_idr);
963 init_rwsem(&root->kernfs_rwsem);
964 init_rwsem(&root->kernfs_iattr_rwsem);
965 init_rwsem(&root->kernfs_supers_rwsem);
966 INIT_LIST_HEAD(&root->supers);
975 root->id_highbits = 0;
977 root->id_highbits = 1;
979 kn = __kernfs_new_node(root, NULL, "", S_IFDIR | S_IRUGO | S_IXUGO,
983 idr_destroy(&root->ino_idr);
984 kfree(root);
989 kn->dir.root = root;
991 root->syscall_ops = scops;
992 root->flags = flags;
993 root->kn = kn;
994 init_waitqueue_head(&root->deactivate_waitq);
996 if (!(root->flags & KERNFS_ROOT_CREATE_DEACTIVATED))
999 return root;
1004 * @root: root of the hierarchy to destroy
1006 * Destroy the hierarchy anchored at @root by removing all existing
1007 * directories and destroying @root.
1009 void kernfs_destroy_root(struct kernfs_root *root)
1012 * kernfs_remove holds kernfs_rwsem from the root so the root
1015 kernfs_get(root->kn);
1016 kernfs_remove(root->kn);
1017 kernfs_put(root->kn); /* will also free @root */
1022 * @root: root to use to lookup
1024 * Return: @root's kernfs_node
1026 struct kernfs_node *kernfs_root_to_node(struct kernfs_root *root)
1028 return root->kn;
1057 kn->dir.root = parent->dir.root;
1090 kn->dir.root = parent->dir.root;
1106 struct kernfs_root *root;
1131 root = kernfs_root_from_sb(dentry->d_sb);
1132 down_read(&root->kernfs_rwsem);
1136 up_read(&root->kernfs_rwsem);
1140 up_read(&root->kernfs_rwsem);
1149 root = kernfs_root(kn);
1150 down_read(&root->kernfs_rwsem);
1169 up_read(&root->kernfs_rwsem);
1172 up_read(&root->kernfs_rwsem);
1186 struct kernfs_root *root;
1190 root = kernfs_root(parent);
1191 down_read(&root->kernfs_rwsem);
1202 up_read(&root->kernfs_rwsem);
1217 up_read(&root->kernfs_rwsem);
1329 * @root: kernfs_node whose descendants to walk
1331 * Find the next descendant to visit for post-order traversal of @root's
1332 * descendants. @root is included in the iteration and the last node to be
1338 struct kernfs_node *root)
1342 lockdep_assert_held_write(&kernfs_root(root)->kernfs_rwsem);
1344 /* if first iteration, visit leftmost descendant which may be root */
1346 return kernfs_leftmost_descendant(root);
1348 /* if we visited @root, we're done */
1349 if (pos == root)
1380 * If the root has KERNFS_ROOT_CREATE_DEACTIVATED set, a newly created node
1392 struct kernfs_root *root = kernfs_root(kn);
1394 down_write(&root->kernfs_rwsem);
1400 up_write(&root->kernfs_rwsem);
1411 * %KERNFS_ROOT_CREATE_DEACTIVATED root which hasn't been activated yet.
1417 struct kernfs_root *root = kernfs_root(kn);
1422 down_write(&root->kernfs_rwsem);
1435 up_write(&root->kernfs_rwsem);
1442 /* Short-circuit if non-root @kn has already finished removal. */
1511 struct kernfs_root *root;
1516 root = kernfs_root(kn);
1518 down_write(&root->kernfs_rwsem);
1520 up_write(&root->kernfs_rwsem);
1608 struct kernfs_root *root = kernfs_root(kn);
1610 down_write(&root->kernfs_rwsem);
1638 up_write(&root->kernfs_rwsem);
1640 down_write(&root->kernfs_rwsem);
1653 up_write(&root->kernfs_rwsem);
1671 struct kernfs_root *root;
1679 root = kernfs_root(parent);
1680 down_write(&root->kernfs_rwsem);
1689 up_write(&root->kernfs_rwsem);
1710 struct kernfs_root *root;
1714 /* can't move or rename root */
1718 root = kernfs_root(kn);
1719 down_write(&root->kernfs_rwsem);
1773 up_write(&root->kernfs_rwsem);
1838 struct kernfs_root *root;
1844 root = kernfs_root(parent);
1845 down_read(&root->kernfs_rwsem);
1862 up_read(&root->kernfs_rwsem);
1865 down_read(&root->kernfs_rwsem);
1867 up_read(&root->kernfs_rwsem);