lkml.org 
[lkml]   [2009]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] sysfs: Reference sysfs_dirent from sysfs inodes.
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.

--
tejun



\
 
 \ /
  Last update: 2009-01-28 02:03    [W:0.094 / U:0.620 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site