summaryrefslogtreecommitdiff
path: root/sys-fs
diff options
context:
space:
mode:
authorIan Stakenvicius <axs@gentoo.org>2009-03-31 17:04:19 +0000
committerIan Stakenvicius <axs@gentoo.org>2009-03-31 17:04:19 +0000
commit3bc915625d6ffd41ecc623c6ec945ae378876dce (patch)
treed1b45be0b0ee3d49742c5ca9d04b8a068fff6a12 /sys-fs
parentnet-misc/iplist: Fixed patch dir for iplist-9999 (diff)
downloadsunrise-3bc915625d6ffd41ecc623c6ec945ae378876dce.tar.gz
sunrise-3bc915625d6ffd41ecc623c6ec945ae378876dce.tar.bz2
sunrise-3bc915625d6ffd41ecc623c6ec945ae378876dce.zip
sys-fs/aufs: version bump, added 'nfs' use flag and lhash patches for nfs-branch support to last two versions
svn path=/sunrise/; revision=8177
Diffstat (limited to 'sys-fs')
-rw-r--r--sys-fs/aufs/ChangeLog9
-rw-r--r--sys-fs/aufs/Manifest9
-rw-r--r--sys-fs/aufs/aufs-20081208-r1.ebuild34
-rw-r--r--sys-fs/aufs/aufs-20090126.ebuild175
-rw-r--r--sys-fs/aufs/files/aufs-lhash-2.6.19.patch41
-rw-r--r--sys-fs/aufs/files/aufs-lhash-2.6.22.patch41
-rw-r--r--sys-fs/aufs/files/aufs-lhash-2.6.24.patch40
7 files changed, 343 insertions, 6 deletions
diff --git a/sys-fs/aufs/ChangeLog b/sys-fs/aufs/ChangeLog
index 8943b7c26..e2f617fa1 100644
--- a/sys-fs/aufs/ChangeLog
+++ b/sys-fs/aufs/ChangeLog
@@ -1,7 +1,14 @@
# ChangeLog for sys-fs/aufs
-# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
+# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+ 31 Mar 2009; Ian Stakenvicius (_AxS_) <ian@aerobiology.ca>
+ +files/aufs-lhash-2.6.19.patch, +files/aufs-lhash-2.6.22.patch,
+ +files/aufs-lhash-2.6.24.patch, aufs-20081208-r1.ebuild,
+ +aufs-20090126.ebuild:
+ version bump, added 'nfs' use flag and lhash patches for nfs-branch support
+ to last two versions
+
12 Dec 2008; Thomas Sachau (Tommy[D]) <tommy@gentoo.org>
-aufs-20081208.ebuild, +aufs-20081208-r1.ebuild:
Add missed file to install
diff --git a/sys-fs/aufs/Manifest b/sys-fs/aufs/Manifest
index dad2d5337..f90c92860 100644
--- a/sys-fs/aufs/Manifest
+++ b/sys-fs/aufs/Manifest
@@ -2,11 +2,16 @@ AUX aufs-20070402-ksize.patch 215 RMD160 aface602421301ed1e226194e9f8457f4a9dffd
AUX aufs-20070402-lhash.patch 1707 RMD160 17589fed81c0602db71e8937279200658e3bbc66 SHA1 f9e3d5eb25df9bf0ace036deaf0c1c75be9f514a SHA256 6a963eb4e5fa08357b6ff3d6c02ed0a04c7b5abffdb1c9d9f0435ed988821965
AUX aufs-20080207-disable_security_inode_permission.patch 457 RMD160 9e7b8f0cc39c77c66f8242852f44fefc392e7ae4 SHA1 8be3cb23ab7324f071fa4a59b46ad451f7cfbb4b SHA256 8ea77586169e90019d959d81f7905690929664e69028cedcb60f450447e3b8c8
AUX aufs-20081208-sec_perm-2.6.24.patch 666 RMD160 b71e4e7d78117e771b266f662168d46165eb53a7 SHA1 a423dac8e518e641e4164ec281a57b36de4ec9e5 SHA256 2a05bc16d50fc2429efca20c9d557e2ec4147a97dbb8934d492a0b10f48ccd33
+AUX aufs-lhash-2.6.19.patch 1707 RMD160 17589fed81c0602db71e8937279200658e3bbc66 SHA1 f9e3d5eb25df9bf0ace036deaf0c1c75be9f514a SHA256 6a963eb4e5fa08357b6ff3d6c02ed0a04c7b5abffdb1c9d9f0435ed988821965
+AUX aufs-lhash-2.6.22.patch 1846 RMD160 4f5ac45807ea824ab24ffc49f73a4f96b5c4250c SHA1 aef329eb5b257170c82f53e2952cbd934de8c143 SHA256 482b2daaba241bf5ba60c8b6d6a739c09a92692e58ef11fea7a2020b383389c6
+AUX aufs-lhash-2.6.24.patch 1652 RMD160 f7557b8369394e08f38836ad7db138661b2c0fb0 SHA1 ae5acc64ccfb0ccfb1375ade8495cf28907a0996 SHA256 c4f324f58f1e77e2132c286ff7c45b8c39dfbd47e9c7583f06c9be7f6bfcd1f3
DIST aufs-20070402.tar.bz2 120097 RMD160 13f3a1cc7a581b1b96255262af01d90c3f601a22 SHA1 496b01279214d0a5836498ea233176e3424a3280 SHA256 c11e7c5835196873a60ac3ccae147ba4941239a0bee23beec8747bc95997eb62
DIST aufs-20080422.tar.bz2 286548 RMD160 6c13e75c476322fc9b1c87689af521617c3131a3 SHA1 866267b877284b0bf92958d471190dad1f861d73 SHA256 1694e699e141a6a1dc9f1eb2678e765af6041b7386d3c32aefb360024fdc5faf
DIST aufs-20081208.tar.bz2 325134 RMD160 430a916c70d4777f272eb722e74c730f6f490072 SHA1 03d5316b0f46f9f5f464f76f9de4a21398d46f0a SHA256 8f6174115ceb5e4cf3b8269bf718cd79a7faa57d71cc41f3ecd07dcad5c22475
+DIST aufs-20090126.tar.bz2 322968 RMD160 373144727dddb3f613ff20170ff7fe51db2e187a SHA1 abe84ec4fb8e17afd55771846f3019f29838a0ca SHA256 aebe989265a9534e181535ae19a9e87ed173aa3fa3ba52c6e2e5750f534bf0af
EBUILD aufs-20070402.ebuild 4164 RMD160 0a206413b832bf09a117376abd48b7c463ef7011 SHA1 34d1891a98809fbb85dfa2964f209dff769c3d0f SHA256 188bfd0d3be8d118c35354a89a5a171c80bd0f0ed72a32acd5526d712294b113
EBUILD aufs-20080422.ebuild 3333 RMD160 17e24bbe788af492cf81f13fd9bda4ba0422b8c7 SHA1 a543abb0035c69b9a9778d0f4a746d95b56abe39 SHA256 0ca7d1c2a16cd74cc6494618953667130486e414d92987bbf87c4bd31920c61c
-EBUILD aufs-20081208-r1.ebuild 4255 RMD160 748252737b17fbc9e07004ced5721e6810d20951 SHA1 751e75d594486919c6b5c0c87d521d06c1e4d5e4 SHA256 1d1c04864a7725dd6bfa280e431df7918a3320a7aadd3c88d1147286554bc5bf
-MISC ChangeLog 4795 RMD160 f92b32843f9c976d4945818f48303e99fdc72d1a SHA1 c99bfd3f58424f277225675b6cca7974dade2cf2 SHA256 5b38e253adaf2ff97276c99c46c41320cf107eb7f91a5bfc16d80fec19d21b51
+EBUILD aufs-20081208-r1.ebuild 5227 RMD160 5bc740aa390d32d57ff03240f4b310f8f681c73e SHA1 5528cd31196db370b8ade6ce20cc8dc6f1b2c96d SHA256 5a4b197c5595ce4af98d5d9e38570f1b8facbd316b8084ce724e503738694e84
+EBUILD aufs-20090126.ebuild 5277 RMD160 c8e953d9e9f980579a53f72f8b59ec31912c6edb SHA1 0b7f3c4249afb94e0592d12caabe7cfd3199943a SHA256 774890637542ac7d8bacdab72a86adb17b501a86d286125ba43d93d1afd9300f
+MISC ChangeLog 5108 RMD160 7890be5e75fe53e059b5a55cf7bb318d99cd1921 SHA1 11668c9db4327246f171971ab07aa6719b809682 SHA256 824f366e7c80411a872eeea2d290d5620c4707bed7b85abdd1678ce021ad2c1d
MISC metadata.xml 678 RMD160 2fdbd569a4c3145a8b7e66c8e155df5c684c8491 SHA1 9acd92f53094809071ee0bdcea60b583ed110189 SHA256 135218bc612707a4cb1a0b35303657f0f1978b78cab135c2e756102069e76b09
diff --git a/sys-fs/aufs/aufs-20081208-r1.ebuild b/sys-fs/aufs/aufs-20081208-r1.ebuild
index d204b8e77..5a4921df6 100644
--- a/sys-fs/aufs/aufs-20081208-r1.ebuild
+++ b/sys-fs/aufs/aufs-20081208-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2008 Gentoo Foundation
+# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
@@ -11,7 +11,7 @@ SRC_URI="http://dev.gentooexperimental.org/~tommy/distfiles/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-IUSE="debug fuse hinotify nfsexport robr sec_perm"
+IUSE="debug fuse hinotify nfs nfsexport robr sec_perm"
S="${WORKDIR}"/aufs
@@ -54,6 +54,17 @@ pkg_setup() {
fi
fi
+ # Check for applicability of lhash patch for NFS branch support
+ if use nfs && kernel_is ge 2 6 19 ; then
+ APPLY_LHASH_PATCH="n"
+ # If lhash patch is not applied
+ if ! grep -qs "EXPORT_SYMBOL(__lookup_hash);" "${KV_DIR}/fs/namei.c" \
+ && ! grep -qs "struct dentry * __lookup_hash(struct qstr *name, struct dentry * base, struct nameidata *nd);" "${KV_DIR}/fs/namei.h" ; then
+ APPLY_LHASH_PATCH="y"
+ APPLY_KERNEL_PATCH="y"
+ fi
+ fi
+
# If a patch has to be applied
if [[ ${APPLY_KERNEL_PATCH} == "y" ]] ; then
ewarn "Patching your kernel..."
@@ -64,6 +75,18 @@ pkg_setup() {
epatch "${FILESDIR}"/${P}-sec_perm-2.6.24.patch
fi
+ # if the lhash patch has to be applied
+ if [[ ${APPLY_LHASH_PATCH} == "y" ]] ; then
+ if kernel_is ge 2 6 24 ; then
+ epatch "${FILESDIR}"/${PN}-lhash-2.6.24.patch
+ else
+ if kernel_is ge 2 6 22 ; then
+ epatch "${FILESDIR}"/${PN}-lhash-2.6.22.patch
+ else
+ epatch "${FILESDIR}"/${PN}-lhash-2.6.19.patch
+ fi
+ fi
+ fi
fi
linux-mod_pkg_setup
@@ -83,6 +106,11 @@ src_unpack(){
echo "CONFIG_AUFS_SYSAUFS = " >> priv_def.mk || die "unsetting sysaufs in priv_def.mk failed!"
fi
+ # Enable lhash in priv_def.mk
+ if use nfs && kernel_is ge 2 6 19 ; then
+ echo "CONFIG_AUFS_LHASH_PATCH = y" >> priv_def.mk || die "setting lhash in priv_def.mk failed!"
+ fi
+
# Enable nfsexport in priv_def.mk
if use nfsexport && kernel_is ge 2 6 18 ; then
echo "CONFIG_AUFS_EXPORT = y" >> priv_def.mk || die "setting export in priv_def.mk failed!"
@@ -135,7 +163,7 @@ pkg_postinst() {
elog "modprobe aufs"
elog "For further information refer to the aufs man page"
- if use sec_perm ; then
+ if use sec_perm || use nfs; then
ewarn "Your kernel has been patched in order to export security"
ewarn "permissions. You will need to recompile your kernel with"
ewarn "this new patch in order for ${PN} to function."
diff --git a/sys-fs/aufs/aufs-20090126.ebuild b/sys-fs/aufs/aufs-20090126.ebuild
new file mode 100644
index 000000000..1d2ffba9e
--- /dev/null
+++ b/sys-fs/aufs/aufs-20090126.ebuild
@@ -0,0 +1,175 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+inherit eutils linux-mod
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs."
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="http://dev.gentooexperimental.org/~tommy/distfiles/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug fuse hinotify nfs nfsexport robr sec_perm"
+
+S="${WORKDIR}"/aufs
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ # kernel version check
+ if kernel_is lt 2 6 16 ; then
+ eerror "${PN} is being developed and tested on linux-2.6.16 and later."
+ eerror "Make sure you have a proper kernel version!"
+ die "Wrong kernel version"
+ fi
+
+ get_version
+
+ # assume no kernel patches will be applied today
+ APPLY_KERNEL_PATCH="n"
+
+ # Check if sec_perm patch needs to be applied
+ if kernel_is ge 2 6 24 && linux_chkconfig_present "SECURITY" ; then
+ APPLY_SEC_PERM_PATCH="n"
+ if ! grep -qs "EXPORT_SYMBOL(security_inode_permission);" "${KV_DIR}/security/security.c" ; then
+ APPLY_SEC_PERM_PATCH="y"
+ APPLY_KERNEL_PATCH="y"
+ fi
+
+ # make sure the user is allowing this to happen
+ if [[ APPLY_SEC_PERM_PATCH = "y" ]] && ! use sec_perm; then
+ eerror "${PN} requires that all kernels with CONFIG_SECURITY enabled >= 2.6.24"
+ eerror "be patched. Please enable USE=\"sec_perm\" to allow this patch to be"
+ eerror "applied."
+ die "Invalid configuration"
+ fi
+ # Also check to make sure they aren't enabling it when they don't need to
+ else
+ if use sec_perm ; then
+ eerror "${PN} does not require the sec_perm patch to be applied to your kernel."
+ eerror "Please disabe the sec_perm USE flag: USE=\"-sec_perm\"."
+ die "Invalid configuration"
+ fi
+ fi
+
+ # Check for applicability of lhash patch for NFS branch support
+ # Check if lhash Patch has to be applied
+ if use nfs && kernel_is ge 2 6 19 ; then
+ APPLY_LHASH_PATCH="n"
+ # If lhash patch is not applied
+ if ! grep -qs "EXPORT_SYMBOL(__lookup_hash);" "${KV_DIR}/fs/namei.c" \
+ && ! grep -qs "struct dentry * __lookup_hash(struct qstr *name, struct dentry * base, struct nameidata *nd);" "${KV_DIR}/fs/namei.h" ; then
+ APPLY_LHASH_PATCH="y"
+ APPLY_KERNEL_PATCH="y"
+ fi
+ fi
+
+
+ # If a patch has to be applied
+ if [[ ${APPLY_KERNEL_PATCH} == "y" ]] ; then
+ ewarn "Patching your kernel..."
+ cd ${KV_DIR}
+
+ # If the sec_perm patch has to be applied
+ if [[ ${APPLY_SEC_PERM_PATCH} == "y" ]] ; then
+ epatch "${FILESDIR}"/${P}-sec_perm-2.6.24.patch
+ fi
+
+ # if the lhash patch has to be applied
+ if [[ ${APPLY_LHASH_PATCH} == "y" ]] ; then
+ if kernel_is ge 2 6 24 ; then
+ epatch "${FILESDIR}"/${PN}-lhash-2.6.24.patch
+ else
+ if kernel_is ge 2 6 22 ; then
+ epatch "${FILESDIR}"/${PN}-lhash-2.6.22.patch
+ else
+ epatch "${FILESDIR}"/${PN}-lhash-2.6.19.patch
+ fi
+ fi
+ fi
+ fi
+
+ linux-mod_pkg_setup
+}
+
+src_unpack(){
+ unpack ${A}
+ cd "${S}"
+
+ # Enable hinotify in priv_def.mk
+ if use hinotify && kernel_is ge 2 6 18 ; then
+ echo "CONFIG_AUFS_HINOTIFY = y" >> priv_def.mk || die "setting hinotify in priv_def.mk failed!"
+ fi
+
+ # Disable SYSAUFS for kernel less than 2.6.18
+ if kernel_is lt 2 6 18 ; then
+ echo "CONFIG_AUFS_SYSAUFS = " >> priv_def.mk || die "unsetting sysaufs in priv_def.mk failed!"
+ fi
+
+ # Enable nfsexport in priv_def.mk
+ if use nfsexport && kernel_is ge 2 6 18 ; then
+ echo "CONFIG_AUFS_EXPORT = y" >> priv_def.mk || die "setting export in priv_def.mk failed!"
+ fi
+
+ # Enable lhash Patch in priv_def.mk
+ if use nfs && kernel_is ge 2 6 19 ; then
+ echo "CONFIG_AUFS_LHASH_PATCH = y" >> priv_def.mk || die "setting lhash in priv_def.mk failed!"
+ fi
+
+ # Enable aufs readonly-branch in priv_def.mk
+ if use robr ; then
+ echo "CONFIG_AUFS_ROBR = y" >> priv_def.mk || die "setting robr in priv_def.mk failed!"
+ fi
+
+ # Enable FUSE workaround for AUFS
+ if use fuse ; then
+ echo "CONFIG_AUFS_WORKAROUND_FUSE = y" >> priv_def.mk || die "setting workaround_fuse in priv_def.mk failed!"
+ fi
+
+ # Enable / Disable debugging
+ if use debug ; then
+ echo "CONFIG_AUFS_DEBUG = y" >> priv_def.mk || die "setting debug in priv_dev.mk failed!"
+ else
+ echo "CONFIG_AUFS_DEBUG = " >> priv_def.mk || die "setting debug in priv_dev.mk failed!"
+ fi
+
+ # Check if a vserver-kernel is installed
+ if [[ -e ${KV_DIR}/include/linux/vserver ]] ; then
+ einfo "vserver kernel seems to be installed"
+ einfo "using vserver patch"
+ echo "AUFS_DEF_CONFIG = -DVSERVER" >> priv_def.mk || die "setting vserver in priv_def.mk failed!"
+ fi
+}
+
+src_compile() {
+ use x86 && ARCH=i386
+ use amd64 && ARCH=x86_64
+ emake KDIR=${KV_DIR} SUBLEVEL=${KV_PATCH} -f local.mk || die "emake failed"
+}
+
+src_install() {
+ cd util
+ exeinto /sbin
+ exeopts -m0500
+ doexe mount.aufs umount.aufs auplink aulchown
+ doman aufs.5
+ insinto /etc/default
+ newins etc_default_aufs aufs || die
+ linux-mod_src_install
+}
+
+pkg_postinst() {
+ elog "To be able to use aufs, you have to load the kernel module by typing:"
+ elog "modprobe aufs"
+ elog "For further information refer to the aufs man page"
+
+ if use sec_perm || use nfs ; then
+ ewarn "Your kernel has been patched in order to export security"
+ ewarn "permissions. You will need to recompile your kernel with"
+ ewarn "this new patch in order for ${PN} to function."
+ fi
+
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs/files/aufs-lhash-2.6.19.patch b/sys-fs/aufs/files/aufs-lhash-2.6.19.patch
new file mode 100644
index 000000000..ddcd872bf
--- /dev/null
+++ b/sys-fs/aufs/files/aufs-lhash-2.6.19.patch
@@ -0,0 +1,41 @@
+Index: fs/namei.c
+===================================================================
+RCS file: linux-2.6.19/fs/namei.c,v
+retrieving revision 1.1
+retrieving revision 1.3
+diff -u -p -r1.1 -r1.3
+--- fs/namei.c 1 Dec 2006 11:38:24 -0000 1.1
++++ fs/namei.c 8 Dec 2006 07:47:33 -0000 1.3
+@@ -1251,7 +1251,7 @@ int __user_path_lookup_open(const char _
+ * needs parent already locked. Doesn't follow mounts.
+ * SMP-safe.
+ */
+-static struct dentry * __lookup_hash(struct qstr *name, struct dentry * base, struct nameidata *nd)
++struct dentry * __lookup_hash(struct qstr *name, struct dentry * base, struct nameidata *nd)
+ {
+ struct dentry * dentry;
+ struct inode *inode;
+@@ -2761,6 +2761,7 @@ EXPORT_SYMBOL(follow_up);
+ EXPORT_SYMBOL(get_write_access); /* binfmt_aout */
+ EXPORT_SYMBOL(getname);
+ EXPORT_SYMBOL(lock_rename);
++EXPORT_SYMBOL(__lookup_hash);
+ EXPORT_SYMBOL(lookup_one_len);
+ EXPORT_SYMBOL(page_follow_link_light);
+ EXPORT_SYMBOL(page_put_link);
+Index: include/linux/namei.h
+===================================================================
+RCS file: linux-2.6.19/include/linux/namei.h,v
+retrieving revision 1.1
+retrieving revision 1.3
+diff -u -p -r1.1 -r1.3
+--- include/linux/namei.h 1 Dec 2006 11:38:24 -0000 1.1
++++ include/linux/namei.h 8 Dec 2006 07:47:33 -0000 1.3
+@@ -76,6 +76,7 @@ extern struct file *lookup_instantiate_f
+ extern struct file *nameidata_to_filp(struct nameidata *nd, int flags);
+ extern void release_open_intent(struct nameidata *);
+
++struct dentry * __lookup_hash(struct qstr *name, struct dentry * base, struct nameidata *nd);
+ extern struct dentry * lookup_one_len(const char *, struct dentry *, int);
+
+ extern int follow_down(struct vfsmount **, struct dentry **);
diff --git a/sys-fs/aufs/files/aufs-lhash-2.6.22.patch b/sys-fs/aufs/files/aufs-lhash-2.6.22.patch
new file mode 100644
index 000000000..4618bfda2
--- /dev/null
+++ b/sys-fs/aufs/files/aufs-lhash-2.6.22.patch
@@ -0,0 +1,41 @@
+Index: linux-2.6.22/fs/namei.c
+===================================================================
+RCS file: /ext1/sysadm/transparent/repository/linux-2.6.22/fs/namei.c,v
+retrieving revision 1.1
+retrieving revision 1.3
+diff -u -p -r1.1 -r1.3
+--- linux-2.6.22/fs/namei.c 12 Jul 2007 02:55:19 -0000 1.1
++++ linux-2.6.22/fs/namei.c 12 Jul 2007 03:00:50 -0000 1.3
+@@ -1280,7 +1280,7 @@ out:
+ * needs parent already locked. Doesn't follow mounts.
+ * SMP-safe.
+ */
+-static inline struct dentry * __lookup_hash(struct qstr *name, struct dentry *base, struct nameidata *nd)
++struct dentry * __lookup_hash(struct qstr *name, struct dentry *base, struct nameidata *nd)
+ {
+ struct dentry *dentry;
+ struct inode *inode;
+@@ -2766,6 +2766,7 @@ EXPORT_SYMBOL(follow_up);
+ EXPORT_SYMBOL(get_write_access); /* binfmt_aout */
+ EXPORT_SYMBOL(getname);
+ EXPORT_SYMBOL(lock_rename);
++EXPORT_SYMBOL(__lookup_hash);
+ EXPORT_SYMBOL(lookup_one_len);
+ EXPORT_SYMBOL(page_follow_link_light);
+ EXPORT_SYMBOL(page_put_link);
+Index: linux-2.6.22/include/linux/namei.h
+===================================================================
+RCS file: /ext1/sysadm/transparent/repository/linux-2.6.22/include/linux/namei.h,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -u -p -r1.1 -r1.2
+--- linux-2.6.22/include/linux/namei.h 12 Jul 2007 02:55:19 -0000 1.1
++++ linux-2.6.22/include/linux/namei.h 12 Jul 2007 02:55:20 -0000 1.2
+@@ -81,6 +81,7 @@ extern struct file *lookup_instantiate_f
+ extern struct file *nameidata_to_filp(struct nameidata *nd, int flags);
+ extern void release_open_intent(struct nameidata *);
+
++struct dentry * __lookup_hash(struct qstr *name, struct dentry * base, struct nameidata *nd);
+ extern struct dentry * lookup_one_len(const char *, struct dentry *, int);
+ extern struct dentry *lookup_one_len_kern(const char *, struct dentry *, int);
+
diff --git a/sys-fs/aufs/files/aufs-lhash-2.6.24.patch b/sys-fs/aufs/files/aufs-lhash-2.6.24.patch
new file mode 100644
index 000000000..de0b27337
--- /dev/null
+++ b/sys-fs/aufs/files/aufs-lhash-2.6.24.patch
@@ -0,0 +1,40 @@
+Index: fs/namei.c
+===================================================================
+RCS file: /home/mszick/cvs/2.6.24-rc7/fs/namei.c,v
+retrieving revision 1.2
+diff -u -p -r1.2 namei.c
+--- fs/namei.c 11 Jan 2008 18:41:11 -0000 1.2
++++ fs/namei.c 11 Jan 2008 19:37:46 -0000
+@@ -1339,8 +1339,7 @@ int __user_path_lookup_open(const char _
+ return err;
+ }
+
+-static struct dentry *__lookup_hash(struct qstr *name,
+- struct dentry *base, struct nameidata *nd)
++struct dentry *__lookup_hash(struct qstr *name, struct dentry *base, struct nameidata *nd)
+ {
+ struct dentry *dentry;
+ struct inode *inode;
+@@ -3108,6 +3107,7 @@ EXPORT_SYMBOL(follow_up);
+ EXPORT_SYMBOL(get_write_access); /* binfmt_aout */
+ EXPORT_SYMBOL(getname);
+ EXPORT_SYMBOL(lock_rename);
++EXPORT_SYMBOL(__lookup_hash);
+ EXPORT_SYMBOL(lookup_one_len);
+ EXPORT_SYMBOL(page_follow_link_light);
+ EXPORT_SYMBOL(page_put_link);
+Index: include/linux/namei.h
+===================================================================
+RCS file: /home/mszick/cvs/2.6.24-rc7/include/linux/namei.h,v
+retrieving revision 1.1.1.1
+diff -u -p -r1.1.1.1 namei.h
+--- include/linux/namei.h 21 Dec 2007 01:25:48 -0000 1.1.1.1
++++ include/linux/namei.h 11 Jan 2008 19:43:36 -0000
+@@ -81,6 +81,7 @@ extern struct file *lookup_instantiate_f
+ extern struct file *nameidata_to_filp(struct nameidata *nd, int flags);
+ extern void release_open_intent(struct nameidata *);
+
++struct dentry * __lookup_hash(struct qstr *name, struct dentry * base, struct nameidata *nd);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+ extern struct dentry *lookup_one_noperm(const char *, struct dentry *);
+