# --- SDE-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: package/.../lazyfs/linux-2.6.18.patch # Copyright (C) 2006 The OpenSDE Project # # More information can be found in the files COPYING and README. # # This patch file is dual-licensed. It is available under the license the # patched project is licensed under, as long as it is an OpenSource license # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms # of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # --- SDE-COPYRIGHT-NOTE-END --- --- ./configure.orig 2006-10-08 09:32:26.000000000 -0400 +++ ./configure 2006-10-08 09:33:27.000000000 -0400 @@ -835,6 +835,9 @@ #include "confdefs.h" #include +#ifndef UTS_RELEASE +#include +#endif #include int main(void) { fputs(UTS_RELEASE, fopen("conftestversion", "w")); --- lazyfs.c.orig 2004-08-15 12:16:41.000000000 -0400 +++ lazyfs.c 2006-10-08 12:18:13.000000000 -0400 @@ -268,7 +268,7 @@ next = dentry->d_subdirs.next; while (next != &dentry->d_subdirs) { - struct dentry *c = list_entry(next, struct dentry, d_child); + struct dentry *c = list_entry(next, struct dentry, d_u.d_child); show_refs(c, indent + 2); next = next->next; } @@ -997,7 +997,7 @@ next = head->next; while (next != head) { - struct dentry *child = list_entry(next, struct dentry, d_child); + struct dentry *child = list_entry(next, struct dentry, d_u.d_child); struct lazy_de_info *info = child->d_fsdata; next = next->next; @@ -1036,7 +1036,7 @@ #endif /* Turn it into its own subtree */ - list_del_init(&dentry->d_child); + list_del_init(&dentry->d_u.d_child); if (atomic_read(&dentry->d_count) > 1) { //printk("Dentry '%s' will be freed later\n", // dentry->d_name.name); @@ -1044,7 +1044,7 @@ atomic_dec(&dentry->d_count); } else { /* (reusing d_child; noone else has a ref anyway) */ - list_add(&dentry->d_child, to_be_removed); + list_add(&dentry->d_u.d_child, to_be_removed); } /* Break link to parent */ @@ -1076,7 +1076,7 @@ resume: while (next != &this_parent->d_subdirs) { struct list_head *tmp = next; - struct dentry *dentry = list_entry(tmp, struct dentry, d_child); + struct dentry *dentry = list_entry(tmp, struct dentry, d_u.d_child); next = tmp->next; if (d_unhashed(dentry) || !dentry->d_inode) continue; @@ -1089,7 +1089,7 @@ /* Moving up to parent */ - next = this_parent->d_child.next; + next = this_parent->d_u.d_child.next; parent = this_parent->d_parent; genocide_one(this_parent, &to_be_removed); @@ -1100,9 +1100,9 @@ spin_unlock(&dcache_lock); list_for_each_safe(next, tmp, &to_be_removed) { - struct dentry *kid = list_entry(next, struct dentry, d_child); + struct dentry *kid = list_entry(next, struct dentry, d_u.d_child); //printk("Removing '%s' now\n", kid->d_name.name); - list_del_init(&kid->d_child); + list_del_init(&kid->d_u.d_child); dput(kid); } }