diff -purN -X /home/mbligh/.diff.exclude 410-topdown/fs/sysfs/dir.c 420-sysfs_vs_dcache/fs/sysfs/dir.c --- 410-topdown/fs/sysfs/dir.c 2003-10-01 11:48:19.000000000 -0700 +++ 420-sysfs_vs_dcache/fs/sysfs/dir.c 2003-12-02 14:58:51.000000000 -0800 @@ -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);