Messages in this thread | | | Date | Wed, 28 Jan 2009 09:47:19 +0900 | From | Tejun Heo <> | Subject | Re: [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
| |