lkml.org 
[lkml]   [2004]   [Feb]   [17]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateTue, 17 Feb 2004 12:54:36 +0530
FromManeesh Soni <>
Subject[PATCH 2.6] Fix dentry refcounting in sysfs_remove_group()
Hello,

Please review the following patch fixing the dentry refcounting during
sysfs_remove_group().

Thanks
Maneesh



o The following patch fixes the dentry refcounting, during sysfs_remove_group() 
  and also adds the missing dput() for the "extra" ref taken during 
  sysfs_create() for the sub-directory dentry corresponding to attribute group. 



 fs/sysfs/dir.c   |    2 ++
 fs/sysfs/group.c |    5 +++--
 2 files changed, 5 insertions(+), 2 deletions(-)
diff -puN fs/sysfs/dir.c~sysfs_remove_subdir-dentry-leak-fix fs/sysfs/dir.c
--- linux-2.6.3-rc4/fs/sysfs/dir.c~sysfs_remove_subdir-dentry-leak-fix	2004-02-17 11:48:24.000000000 +0530
+++ linux-2.6.3-rc4-maneesh/fs/sysfs/dir.c	2004-02-17 11:54:11.000000000 +0530
@@ -96,6 +96,8 @@ static void remove_dir(struct dentry * d
 void sysfs_remove_subdir(struct dentry * d)
 {
 	remove_dir(d);
+	/* release the "extra" ref taken during sysfs_create() */
+	dput(d);
 }
 
 
diff -puN fs/sysfs/group.c~sysfs_remove_subdir-dentry-leak-fix fs/sysfs/group.c
--- linux-2.6.3-rc4/fs/sysfs/group.c~sysfs_remove_subdir-dentry-leak-fix	2004-02-17 11:48:59.000000000 +0530
+++ linux-2.6.3-rc4-maneesh/fs/sysfs/group.c	2004-02-17 11:49:37.000000000 +0530
@@ -68,12 +68,13 @@ void sysfs_remove_group(struct kobject *
 	if (grp->name)
 		dir = sysfs_get_dentry(kobj->dentry,grp->name);
 	else
-		dir = kobj->dentry;
+		dir = dget(kobj->dentry);
 
 	remove_files(dir,grp);
-	dput(dir);
 	if (grp->name)
 		sysfs_remove_subdir(dir);
+	/* release the ref. taken in this routine */
+	dput(dir);
 }
 
 
_
-- 
Maneesh Soni
Linux Technology Center, 
IBM Software Lab, Bangalore, India
email: maneesh@in.ibm.com
Phone: 91-80-25044999 Fax: 91-80-5268553
T/L : 9243696
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:01    [from the cache]
©2003-2008