Messages in this thread | | | Date | Thu, 16 May 2013 10:50:17 -0700 | From | Tejun Heo <> | Subject | Re: [PATCH] kernel/workqueue.c: need call device_remove_file() when failure occurs after called device_create_file() |
| |
Hey,
On Thu, May 16, 2013 at 12:48:43PM +0800, Chen Gang wrote: > __sysfs_remove_dir() remove all related things, but not deref the count. > > For __sysfs_remove_dir() -> > ... > sysfs_addrm_start() > ... > while() { > ... > sysfs_remove_one() (not deref the related file) > } > sysfs_addrm_finish() (will deref current dir) > > For device_remove_file() -> > sysfs_remove_file() -> > sysfs_hash_and_remove() -> > ... > sysfs_addrm_start() > ... > sysfs_remove_one() (not deref the current file) > sysfs_addrm_finish() (will deref current file) > > > So if not call device_remove_file() firstly, the all files under the > directory are removed, but the related resources are not released which > will cause resource leak.
Can you please be more specific on what gets leaked and if possible fix it from sysfs side?
Thanks.
-- tejun
| |