On Wed, Feb 22, 2006 at 05:22:02PM -0500, Jun'ichi Nomura wrote: > Hi Greg, > > Thanks for comments. > > Greg KH 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. > > I'll move them out to gendisk/hd_struct creation with proper > release function. > > I thought it's correct because NULL release function is > just ignored in kobject_cleanup() and it let outside function > to release the whole structure. > But it seems wrong to embed these additional kobjects in > the structures which are logically separate from them. > > >>+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. > > OK, I'll change them to kobject_unregister() and do it > when gendisk/hd_struct is removed. > Then we can avoid possible memory allocation in dm's atomic > operation, too. That sounds great. thanks, greg k-h -- dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel