On Wed, Feb 22, 2006 at 11:13:00AM -0500, Jun'ichi Nomura wrote: > +/* This is a mere directory in sysfs. No methods are needed. */ > +static struct kobj_type bd_holder_ktype = { > + .release = NULL, > + .sysfs_ops = NULL, > + .default_attrs = NULL, > +}; That doesn't look right. You always need a release function. > +static inline void add_holder_dir(struct block_device *bdev) > +{ > + struct kobject *kobj = &bdev->bd_holder_dir; > + > + kobj->ktype = &bd_holder_ktype; > + kobject_set_name(kobj, "holders"); > + kobj->parent = bdev_get_kobj(bdev); > + kobject_init(kobj); > + kobject_add(kobj); > + kobject_put(kobj->parent); > +} > + > +static inline void del_holder_dir(struct block_device *bdev) > +{ > + /* > + * Don't kobject_unregister to avoid memory allocation > + * in kobject_hotplug. > + */ > + kobject_del(&bdev->bd_holder_dir); > + kobject_put(&bdev->bd_holder_dir); > +} No, do it correctly please. thanks, greg k-h -- dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel