Lines Matching refs:root
226 struct kernfs_root *root; in kernfs_path_from_node() local
230 root = kernfs_root(to); in kernfs_path_from_node()
231 if (!(root->flags & KERNFS_ROOT_INVARIANT_PARENT)) { in kernfs_path_from_node()
493 struct kernfs_root *root = kernfs_root(kn); in kernfs_drain() local
495 lockdep_assert_held_write(&root->kernfs_rwsem); in kernfs_drain()
508 up_write(&root->kernfs_rwsem); in kernfs_drain()
516 wait_event(root->deactivate_waitq, in kernfs_drain()
527 down_write(&root->kernfs_rwsem); in kernfs_drain()
567 struct kernfs_root *root; in kernfs_put() local
571 root = kernfs_root(kn); in kernfs_put()
588 idr_remove(&root->ino_idr, (u32)kernfs_ino(kn)); in kernfs_put()
599 idr_destroy(&root->ino_idr); in kernfs_put()
600 kfree_rcu(root, rcu); in kernfs_put()
623 static struct kernfs_node *__kernfs_new_node(struct kernfs_root *root, in __kernfs_new_node() argument
643 ret = idr_alloc_cyclic(&root->ino_idr, kn, 1, 0, GFP_ATOMIC); in __kernfs_new_node()
644 if (ret >= 0 && ret < root->last_id_lowbits) in __kernfs_new_node()
645 root->id_highbits++; in __kernfs_new_node()
646 id_highbits = root->id_highbits; in __kernfs_new_node()
647 root->last_id_lowbits = ret; in __kernfs_new_node()
685 idr_remove(&root->ino_idr, (u32)kernfs_ino(kn)); in __kernfs_new_node()
733 struct kernfs_node *kernfs_find_and_get_node_by_id(struct kernfs_root *root, in kernfs_find_and_get_node_by_id() argument
742 kn = idr_find(&root->ino_idr, (u32)ino); in kernfs_find_and_get_node_by_id()
785 struct kernfs_root *root = kernfs_root(kn); in kernfs_add_one() local
791 down_write(&root->kernfs_rwsem); in kernfs_add_one()
815 down_write(&root->kernfs_iattr_rwsem); in kernfs_add_one()
823 up_write(&root->kernfs_iattr_rwsem); in kernfs_add_one()
824 up_write(&root->kernfs_rwsem); in kernfs_add_one()
838 up_write(&root->kernfs_rwsem); in kernfs_add_one()
931 struct kernfs_root *root = kernfs_root(parent); in kernfs_find_and_get_ns() local
933 down_read(&root->kernfs_rwsem); in kernfs_find_and_get_ns()
936 up_read(&root->kernfs_rwsem); in kernfs_find_and_get_ns()
957 struct kernfs_root *root = kernfs_root(parent); in kernfs_walk_and_get_ns() local
959 down_read(&root->kernfs_rwsem); in kernfs_walk_and_get_ns()
962 up_read(&root->kernfs_rwsem); in kernfs_walk_and_get_ns()
984 struct kernfs_root *root; in kernfs_create_root() local
987 root = kzalloc(sizeof(*root), GFP_KERNEL); in kernfs_create_root()
988 if (!root) in kernfs_create_root()
991 idr_init(&root->ino_idr); in kernfs_create_root()
992 init_rwsem(&root->kernfs_rwsem); in kernfs_create_root()
993 init_rwsem(&root->kernfs_iattr_rwsem); in kernfs_create_root()
994 init_rwsem(&root->kernfs_supers_rwsem); in kernfs_create_root()
995 INIT_LIST_HEAD(&root->supers); in kernfs_create_root()
1004 root->id_highbits = 0; in kernfs_create_root()
1006 root->id_highbits = 1; in kernfs_create_root()
1008 kn = __kernfs_new_node(root, NULL, "", S_IFDIR | S_IRUGO | S_IXUGO, in kernfs_create_root()
1012 idr_destroy(&root->ino_idr); in kernfs_create_root()
1013 kfree(root); in kernfs_create_root()
1018 kn->dir.root = root; in kernfs_create_root()
1020 root->syscall_ops = scops; in kernfs_create_root()
1021 root->flags = flags; in kernfs_create_root()
1022 root->kn = kn; in kernfs_create_root()
1023 init_waitqueue_head(&root->deactivate_waitq); in kernfs_create_root()
1025 if (!(root->flags & KERNFS_ROOT_CREATE_DEACTIVATED)) in kernfs_create_root()
1028 return root; in kernfs_create_root()
1038 void kernfs_destroy_root(struct kernfs_root *root) in kernfs_destroy_root() argument
1044 kernfs_get(root->kn); in kernfs_destroy_root()
1045 kernfs_remove(root->kn); in kernfs_destroy_root()
1046 kernfs_put(root->kn); /* will also free @root */ in kernfs_destroy_root()
1055 struct kernfs_node *kernfs_root_to_node(struct kernfs_root *root) in kernfs_root_to_node() argument
1057 return root->kn; in kernfs_root_to_node()
1086 kn->dir.root = parent->dir.root; in kernfs_create_dir_ns()
1119 kn->dir.root = parent->dir.root; in kernfs_create_empty_dir()
1136 struct kernfs_root *root; in kernfs_dop_revalidate() local
1159 root = kernfs_root_from_sb(dentry->d_sb); in kernfs_dop_revalidate()
1160 down_read(&root->kernfs_rwsem); in kernfs_dop_revalidate()
1164 up_read(&root->kernfs_rwsem); in kernfs_dop_revalidate()
1168 up_read(&root->kernfs_rwsem); in kernfs_dop_revalidate()
1177 root = kernfs_root(kn); in kernfs_dop_revalidate()
1178 down_read(&root->kernfs_rwsem); in kernfs_dop_revalidate()
1198 up_read(&root->kernfs_rwsem); in kernfs_dop_revalidate()
1201 up_read(&root->kernfs_rwsem); in kernfs_dop_revalidate()
1215 struct kernfs_root *root; in kernfs_iop_lookup() local
1219 root = kernfs_root(parent); in kernfs_iop_lookup()
1220 down_read(&root->kernfs_rwsem); in kernfs_iop_lookup()
1231 up_read(&root->kernfs_rwsem); in kernfs_iop_lookup()
1246 up_read(&root->kernfs_rwsem); in kernfs_iop_lookup()
1367 struct kernfs_node *root) in kernfs_next_descendant_post() argument
1371 lockdep_assert_held_write(&kernfs_root(root)->kernfs_rwsem); in kernfs_next_descendant_post()
1375 return kernfs_leftmost_descendant(root); in kernfs_next_descendant_post()
1378 if (pos == root) in kernfs_next_descendant_post()
1421 struct kernfs_root *root = kernfs_root(kn); in kernfs_activate() local
1423 down_write(&root->kernfs_rwsem); in kernfs_activate()
1429 up_write(&root->kernfs_rwsem); in kernfs_activate()
1446 struct kernfs_root *root = kernfs_root(kn); in kernfs_show() local
1451 down_write(&root->kernfs_rwsem); in kernfs_show()
1464 up_write(&root->kernfs_rwsem); in kernfs_show()
1540 struct kernfs_root *root; in kernfs_remove() local
1545 root = kernfs_root(kn); in kernfs_remove()
1547 down_write(&root->kernfs_rwsem); in kernfs_remove()
1549 up_write(&root->kernfs_rwsem); in kernfs_remove()
1637 struct kernfs_root *root = kernfs_root(kn); in kernfs_remove_self() local
1639 down_write(&root->kernfs_rwsem); in kernfs_remove_self()
1667 up_write(&root->kernfs_rwsem); in kernfs_remove_self()
1669 down_write(&root->kernfs_rwsem); in kernfs_remove_self()
1682 up_write(&root->kernfs_rwsem); in kernfs_remove_self()
1700 struct kernfs_root *root; in kernfs_remove_by_name_ns() local
1708 root = kernfs_root(parent); in kernfs_remove_by_name_ns()
1709 down_write(&root->kernfs_rwsem); in kernfs_remove_by_name_ns()
1718 up_write(&root->kernfs_rwsem); in kernfs_remove_by_name_ns()
1739 struct kernfs_root *root; in kernfs_rename_ns() local
1747 root = kernfs_root(kn); in kernfs_rename_ns()
1748 down_write(&root->kernfs_rwsem); in kernfs_rename_ns()
1756 if (root->flags & KERNFS_ROOT_INVARIANT_PARENT) { in kernfs_rename_ns()
1817 up_write(&root->kernfs_rwsem); in kernfs_rename_ns()
1883 struct kernfs_root *root; in kernfs_fop_readdir() local
1889 root = kernfs_root(parent); in kernfs_fop_readdir()
1890 down_read(&root->kernfs_rwsem); in kernfs_fop_readdir()
1908 up_read(&root->kernfs_rwsem); in kernfs_fop_readdir()
1912 up_read(&root->kernfs_rwsem); in kernfs_fop_readdir()