[PATCH] fix-sysfs-symlinks.patch
- Rediffed the patch for 2.6.6-mm3 to fix rejects in the latest changes in sysfs code. o The symlinks code in sysfs doesnot point to the correct target kobject whenever target kobject is renamed and suffers from dangling symlinks if target kobject is removed. o The following patch implements ->readlink and ->follow_link operations for sysfs instead of using the page_symlink_inode_operations. The pointer to target kobject is saved in the link dentry's d_fsdata field. The target path is generated everytime we do ->readlink and ->follow_link. This results in generating the correct target path during readlink and follow_link operations inspite of renamed target kobject. o This also pins the target kobject during link creation and the ref. is released when the link is removed. o Apart from being correct this patch also saves some memory by not pinning a whole page for saving the target information. o Used a rw_semaphor sysfs_rename_sem to avoid clashing with renaming of ancestors while the target path is generated. o Used dcache_lock in fs/sysfs/sysfs.h:sysfs_get_kobject() because of using d_drop() while removing dentries.
Showing
Please register or sign in to comment