Lines Matching refs:group
79 * from the youngest non-default group ancestor.
81 * For a non-default group A having default groups A/B, A/C, and A/C/D, default
83 * default_group_class[0], and default group A/C/D will be in
117 * sd->s_depth == -1 iff we are a non default group.
118 * else (we are a default group) sd->s_depth > 0 (see
123 * We are a non default group and we are going to create
442 * Fake invisibility if dir belongs to a group/default groups hierarchy
498 /* Mark that we're trying to drop the group */
616 static void detach_groups(struct config_group *group)
618 struct dentry * dentry = dget(group->cg_item.ci_dentry);
661 struct config_group *group,
669 if (!group->cg_item.ci_name)
670 group->cg_item.ci_name = group->cg_item.ci_namebuf;
673 child = d_alloc_name(parent, group->cg_item.ci_name);
678 &group->cg_item, child, frag);
692 static int populate_groups(struct config_group *group,
698 list_for_each_entry(new_group, &group->default_groups, group_entry) {
699 ret = create_default_group(group, new_group, frag);
701 detach_groups(group);
709 void configfs_remove_default_groups(struct config_group *group)
713 list_for_each_entry_safe(g, n, &group->default_groups, group_entry) {
727 struct config_group *group;
729 group = item->ci_group;
730 if (group) {
740 config_group_put(group);
747 * Parent seems redundant with group, but it makes certain
766 static void unlink_group(struct config_group *group)
770 list_for_each_entry(new_group, &group->default_groups, group_entry)
773 group->cg_subsys = NULL;
774 unlink_obj(&group->cg_item);
777 static void link_group(struct config_group *parent_group, struct config_group *group)
782 link_obj(&parent_group->cg_item, &group->cg_item);
787 subsys = to_configfs_subsystem(group);
790 group->cg_subsys = subsys;
792 list_for_each_entry(new_group, &group->default_groups, group_entry)
793 link_group(group, new_group);
861 * We must lock the group's inode to avoid races with the VFS
885 /* Caller holds the mutex of the group's inode */
1259 struct config_group *group = NULL;
1272 * Fake invisibility if dir belongs to a group/default groups hierarchy
1329 group = type->ct_group_ops->make_group(to_config_group(parent_item), name);
1330 if (!group)
1331 group = ERR_PTR(-ENOMEM);
1332 if (!IS_ERR(group)) {
1333 link_group(to_config_group(parent_item), group);
1334 item = &group->cg_item;
1336 ret = PTR_ERR(group);
1392 if (group)
1409 if (group)
1410 unlink_group(group);
1570 * Fake invisibility if dir belongs to a group/default groups hierarchy
1715 * @parent_group: parent group
1716 * @group: child group
1724 struct config_group *group)
1736 link_group(parent_group, group);
1742 ret = create_default_group(parent_group, group, frag);
1747 configfs_dir_set_ready(group->cg_item.ci_dentry->d_fsdata);
1755 unlink_group(group);
1763 * configfs_unregister_group() - unregisters a child group from its parent
1764 * @group: parent group to be unregistered
1768 void configfs_unregister_group(struct config_group *group)
1770 struct configfs_subsystem *subsys = group->cg_subsys;
1771 struct dentry *dentry = group->cg_item.ci_dentry;
1772 struct dentry *parent = group->cg_item.ci_parent->ci_dentry;
1785 configfs_detach_group(&group->cg_item);
1795 unlink_group(group);
1801 * configfs_register_default_group() - allocates and registers a child group
1802 * @parent_group: parent group
1803 * @name: child group name
1806 * boilerplate to allocate and register a child group with its parent. We need
1809 * Return: allocated config group or ERR_PTR() on error
1817 struct config_group *group;
1819 group = kzalloc(sizeof(*group), GFP_KERNEL);
1820 if (!group)
1822 config_group_init_type_name(group, name, item_type);
1824 ret = configfs_register_group(parent_group, group);
1826 kfree(group);
1829 return group;
1834 * configfs_unregister_default_group() - unregisters and frees a child group
1835 * @group: the group to act on
1837 void configfs_unregister_default_group(struct config_group *group)
1839 configfs_unregister_group(group);
1840 kfree(group);
1847 struct config_group *group = &subsys->su_group;
1863 if (!group->cg_item.ci_name)
1864 group->cg_item.ci_name = group->cg_item.ci_namebuf;
1868 link_group(to_config_group(sd->s_element), group);
1874 dentry = d_alloc_name(root, group->cg_item.ci_name);
1878 err = configfs_attach_group(sd->s_element, &group->cg_item,
1895 unlink_group(group);
1906 struct config_group *group = &subsys->su_group;
1907 struct dentry *dentry = group->cg_item.ci_dentry;
1931 configfs_detach_group(&group->cg_item);
1944 unlink_group(group);