On Wed, 2017-02-08 at 14:25 -0800, Bart Van Assche wrote: > Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxx> > --- > fs/configfs/item.c | 6 ++++++ > include/linux/configfs.h | 1 + > 2 files changed, 7 insertions(+) > > diff --git a/fs/configfs/item.c b/fs/configfs/item.c > index 8b2a994042dd..e3501b9bbb60 100644 > --- a/fs/configfs/item.c > +++ b/fs/configfs/item.c > @@ -138,6 +138,12 @@ struct config_item *config_item_get(struct config_item *item) > } > EXPORT_SYMBOL(config_item_get); > > +struct config_item *config_item_get_unless_zero(struct config_item *item) > +{ > + return item && kref_get_unless_zero(&item->ci_kref) ? item : NULL; > +} > +EXPORT_SYMBOL(config_item_get_unless_zero); > + > static void config_item_cleanup(struct config_item *item) > { > struct config_item_type *t = item->ci_type; > diff --git a/include/linux/configfs.h b/include/linux/configfs.h > index 2319b8c108e8..406e16dabc28 100644 > --- a/include/linux/configfs.h > +++ b/include/linux/configfs.h > @@ -75,6 +75,7 @@ extern void config_item_init_type_name(struct config_item *item, > struct config_item_type *type); > > 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 *); > > struct config_item_type { A reasonable idea, but this needs review from other configfs folks. Dropping for now. -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html