Lines Matching refs:item

5  * item.c - library routines for handling generic config items
33 * config_item_init - initialize item.
34 * @item: item in question.
36 static void config_item_init(struct config_item *item)
38 kref_init(&item->ci_kref);
39 INIT_LIST_HEAD(&item->ci_entry);
43 * config_item_set_name - Set the name of an item
44 * @item: item.
48 * dynamically allocated string that @item->ci_name points to.
49 * Otherwise, use the static @item->ci_namebuf array.
51 int config_item_set_name(struct config_item *item, const char *fmt, ...)
62 need = vsnprintf(item->ci_namebuf, limit, fmt, args);
65 name = item->ci_namebuf;
75 if (item->ci_name && item->ci_name != item->ci_namebuf)
76 kfree(item->ci_name);
79 item->ci_name = name;
84 void config_item_init_type_name(struct config_item *item,
88 config_item_set_name(item, "%s", name);
89 item->ci_type = type;
90 config_item_init(item);
103 struct config_item *config_item_get(struct config_item *item)
105 if (item)
106 kref_get(&item->ci_kref);
107 return item;
111 struct config_item *config_item_get_unless_zero(struct config_item *item)
113 if (item && kref_get_unless_zero(&item->ci_kref))
114 return item;
119 static void config_item_cleanup(struct config_item *item)
121 const struct config_item_type *t = item->ci_type;
122 struct config_group *s = item->ci_group;
123 struct config_item *parent = item->ci_parent;
125 pr_debug("config_item %s: cleaning up\n", config_item_name(item));
126 if (item->ci_name != item->ci_namebuf)
127 kfree(item->ci_name);
128 item->ci_name = NULL;
130 t->ct_item_ops->release(item);
143 * config_item_put - decrement refcount for item.
144 * @item: item.
148 void config_item_put(struct config_item *item)
150 if (item)
151 kref_put(&item->ci_kref, config_item_release);
168 * config_group_find_item - search for item in group.
170 * @name: item's name.
173 * If matching item is found take a reference and return the item.
183 struct config_item *item = to_item(entry);
184 if (config_item_name(item) &&
185 !strcmp(config_item_name(item), name)) {
186 ret = config_item_get(item);