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 Fri Jan 9 17:40:07 2004 +++ 420-sysfs_vs_dcache/fs/sysfs/dir.c Fri Jan 9 23:09:01 2004 @@ -123,8 +123,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); @@ -140,9 +140,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);