[dm-devel] Re: [PATCH 1/3] sysfs representation of stacked devices (common) (rev.2)

Jun'ichi Nomura j-nomura at ce.jp.nec.com
Wed Feb 22 22:22:02 UTC 2006


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.

-- 
Jun'ichi Nomura, NEC Solutions (America), Inc.




More information about the dm-devel mailing list