Messages in this thread Patch in this message | | | Subject | [PATCH} fix defect with kobject memory leaks during del_gendisk | From | Steven Dake <> | Date | Wed, 24 Sep 2003 16:02:06 -0700 |
| |
Folks,
Attached is a patch which fixes a few memory leaks in 2.6.0-test5. Comments are welcome as to whether or not this patch is the right solution.
I added the ability to linux MD to generate add and remove hotplug calls on RAID START and STOPs. To achieve this, I use the del_gendisk call which deletes the gendisk, delete the children kobjects, and delete the parent (in this case, mdX) kobject.
Unfortunately it appears that del_gendisk uses kobject_del to delete the kobject. If the kobject has a ktype release function, it is not called in the kobject_del call path, but only in kobject_unregister.
This patch changes the functionality so the release function (in this case the block device release function in drivers/block/genhd.c) is called by changing the kobject_del to kobject_unregister.
Without this patch, at least 3 memory leaks occur on removal of a block device using the del_gendisk function.
Thanks -steve --- linux-2.6.0-test5/fs/partitions/check.c 2003-09-08 12:50:28.000000000 -0700 +++ linux-fixmd/fs/partitions/check.c 2003-09-24 15:28:57.000000000 -0700 @@ -458,5 +458,5 @@ sysfs_remove_link(&disk->driverfs_dev->kobj, "block"); put_device(disk->driverfs_dev); } - kobject_del(&disk->kobj); + kobject_unregister(&disk->kobj); } | |