configfs: Introduce config_item_get_unless_zero()

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
[hch: minor style tweak]
Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
Bart Van Assche 2017-02-09 17:28:50 -08:00 committed by Christoph Hellwig
parent ba80aa909c
commit 19e72d3abb
2 changed files with 10 additions and 1 deletions

View file

@ -138,6 +138,14 @@ struct config_item *config_item_get(struct config_item *item)
} }
EXPORT_SYMBOL(config_item_get); EXPORT_SYMBOL(config_item_get);
struct config_item *config_item_get_unless_zero(struct config_item *item)
{
if (item && kref_get_unless_zero(&item->ci_kref))
return item;
return NULL;
}
EXPORT_SYMBOL(config_item_get_unless_zero);
static void config_item_cleanup(struct config_item *item) static void config_item_cleanup(struct config_item *item)
{ {
struct config_item_type *t = item->ci_type; struct config_item_type *t = item->ci_type;

View file

@ -74,7 +74,8 @@ extern void config_item_init_type_name(struct config_item *item,
const char *name, const char *name,
struct config_item_type *type); struct config_item_type *type);
extern struct config_item * config_item_get(struct config_item *); extern struct config_item *config_item_get(struct config_item *);
extern struct config_item *config_item_get_unless_zero(struct config_item *);
extern void config_item_put(struct config_item *); extern void config_item_put(struct config_item *);
struct config_item_type { struct config_item_type {