Messages in this thread | | | From | (Eric W. Biederman) | Date | Mon, 02 Feb 2009 09:03:11 -0800 | Subject | Re: [PATCH] sysfs: Reference sysfs_dirent from sysfs inodes. |
| |
Tejun Heo <tj@kernel.org> writes:
> Andrew Morton wrote: >> On Fri, 23 Jan 2009 15:33:48 +0900 >> Tejun Heo <tj@kernel.org> wrote: >> >>> Eric W. Biederman wrote: >>>> The sysfs_dirent serves as both an inode and a directory entry >>>> for sysfs. To prevent the sysfs inode numbers from being freed >>>> prematurely hold a reference to sysfs_dirent from the sysfs inode. >>>> >>>> Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com> >>> Thanks for working on this. Can you please add a comment explaining >>> it on top of sysfs_delete_inode()? >> >> Like this? >> >> --- a/fs/sysfs/inode.c~sysfs-reference-sysfs_dirent-from-sysfs-inodes-fix >> +++ a/fs/sysfs/inode.c >> @@ -215,6 +215,13 @@ struct inode * sysfs_get_inode(struct sy >> return inode; >> } >> >> +/* >> + * The sysfs_dirent serves as both an inode and a directory entry for sysfs. >> + * To prevent the sysfs inode numbers from being freed prematurely we take a >> + * reference to sysfs_dirent from the sysfs inode. A >> + * super_operations.delete_inode() implementation is needed to drop that >> + * reference upon inode destruction. >> + */ >> void sysfs_delete_inode(struct inode *inode) >> { >> struct sysfs_dirent *sd = inode->i_private; > > Yeap, looks good to me. :-)
Thanks guys.
Eric
| |