Lines Matching refs:group
81 * from the youngest non-default group ancestor.
83 * For a non-default group A having default groups A/B, A/C, and A/C/D, default
85 * default_group_class[0], and default group A/C/D will be in
119 * sd->s_depth == -1 iff we are a non default group.
120 * else (we are a default group) sd->s_depth > 0 (see
125 * We are a non default group and we are going to create
471 * Fake invisibility if dir belongs to a group/default groups hierarchy
524 /* Mark that we're trying to drop the group */
642 static void detach_groups(struct config_group *group)
644 struct dentry * dentry = dget(group->cg_item.ci_dentry);
687 struct config_group *group,
695 if (!group->cg_item.ci_name)
696 group->cg_item.ci_name = group->cg_item.ci_namebuf;
699 child = d_alloc_name(parent, group->cg_item.ci_name);
704 &group->cg_item, child, frag);
718 static int populate_groups(struct config_group *group,
724 list_for_each_entry(new_group, &group->default_groups, group_entry) {
725 ret = create_default_group(group, new_group, frag);
727 detach_groups(group);
735 void configfs_remove_default_groups(struct config_group *group)
739 list_for_each_entry_safe(g, n, &group->default_groups, group_entry) {
753 struct config_group *group;
755 group = item->ci_group;
756 if (group) {
766 config_group_put(group);
773 * Parent seems redundant with group, but it makes certain
792 static void unlink_group(struct config_group *group)
796 list_for_each_entry(new_group, &group->default_groups, group_entry)
799 group->cg_subsys = NULL;
800 unlink_obj(&group->cg_item);
803 static void link_group(struct config_group *parent_group, struct config_group *group)
808 link_obj(&parent_group->cg_item, &group->cg_item);
813 subsys = to_configfs_subsystem(group);
816 group->cg_subsys = subsys;
818 list_for_each_entry(new_group, &group->default_groups, group_entry)
819 link_group(group, new_group);
887 * We must lock the group's inode to avoid races with the VFS
911 /* Caller holds the mutex of the group's inode */
1284 struct config_group *group = NULL;
1297 * Fake invisibility if dir belongs to a group/default groups hierarchy
1354 group = type->ct_group_ops->make_group(to_config_group(parent_item), name);
1355 if (!group)
1356 group = ERR_PTR(-ENOMEM);
1357 if (!IS_ERR(group)) {
1358 link_group(to_config_group(parent_item), group);
1359 item = &group->cg_item;
1361 ret = PTR_ERR(group);
1417 if (group)
1434 if (group)
1435 unlink_group(group);
1595 * Fake invisibility if dir belongs to a group/default groups hierarchy
1745 * @parent_group: parent group
1746 * @group: child group
1754 struct config_group *group)
1766 link_group(parent_group, group);
1772 ret = create_default_group(parent_group, group, frag);
1777 configfs_dir_set_ready(group->cg_item.ci_dentry->d_fsdata);
1785 unlink_group(group);
1793 * configfs_unregister_group() - unregisters a child group from its parent
1794 * @group: parent group to be unregistered
1798 void configfs_unregister_group(struct config_group *group)
1800 struct configfs_subsystem *subsys = group->cg_subsys;
1801 struct dentry *dentry = group->cg_item.ci_dentry;
1802 struct dentry *parent = group->cg_item.ci_parent->ci_dentry;
1815 configfs_detach_group(&group->cg_item);
1825 unlink_group(group);
1831 * configfs_register_default_group() - allocates and registers a child group
1832 * @parent_group: parent group
1833 * @name: child group name
1836 * boilerplate to allocate and register a child group with its parent. We need
1839 * Return: allocated config group or ERR_PTR() on error
1847 struct config_group *group;
1849 group = kzalloc(sizeof(*group), GFP_KERNEL);
1850 if (!group)
1852 config_group_init_type_name(group, name, item_type);
1854 ret = configfs_register_group(parent_group, group);
1856 kfree(group);
1859 return group;
1864 * configfs_unregister_default_group() - unregisters and frees a child group
1865 * @group: the group to act on
1867 void configfs_unregister_default_group(struct config_group *group)
1869 configfs_unregister_group(group);
1870 kfree(group);
1877 struct config_group *group = &subsys->su_group;
1893 if (!group->cg_item.ci_name)
1894 group->cg_item.ci_name = group->cg_item.ci_namebuf;
1898 link_group(to_config_group(sd->s_element), group);
1904 dentry = d_alloc_name(root, group->cg_item.ci_name);
1908 err = configfs_attach_group(sd->s_element, &group->cg_item,
1925 unlink_group(group);
1936 struct config_group *group = &subsys->su_group;
1937 struct dentry *dentry = group->cg_item.ci_dentry;
1961 configfs_detach_group(&group->cg_item);
1974 unlink_group(group);