diff -aurpN -X /home/fletch/.diff.exclude 410-topdown/fs/sysfs/dir.c 420-sysfs_vs_dcache/fs/sysfs/dir.c --- 410-topdown/fs/sysfs/dir.c Mon Nov 17 18:28:56 2003 +++ 420-sysfs_vs_dcache/fs/sysfs/dir.c Thu Jan 1 23:23:34 2004 @@ -122,8 +122,8 @@ void sysfs_remove_dir(struct kobject * k node = dentry->d_subdirs.next; while (node != &dentry->d_subdirs) { struct dentry * d = list_entry(node,struct dentry,d_child); - list_del_init(node); + node = node->next; pr_debug(" o %s (%d): ",d->d_name.name,atomic_read(&d->d_count)); if (d->d_inode) { d = dget_locked(d); @@ -139,9 +139,7 @@ void sysfs_remove_dir(struct kobject * k spin_lock(&dcache_lock); } pr_debug(" done\n"); - node = dentry->d_subdirs.next; } - list_del_init(&dentry->d_child); spin_unlock(&dcache_lock); up(&dentry->d_inode->i_sem);