Messages in this thread Patch in this message | | | Date | Tue, 27 Jan 2009 15:44:37 -0800 | From | Andrew Morton <> | Subject | Re: [PATCH] sysfs: Reference sysfs_dirent from sysfs inodes. |
| |
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; _
| |