From 3bc915625d6ffd41ecc623c6ec945ae378876dce Mon Sep 17 00:00:00 2001 From: Ian Stakenvicius Date: Tue, 31 Mar 2009 17:04:19 +0000 Subject: 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 --- sys-fs/aufs/ChangeLog | 9 +- sys-fs/aufs/Manifest | 9 +- sys-fs/aufs/aufs-20081208-r1.ebuild | 34 +++++- sys-fs/aufs/aufs-20090126.ebuild | 175 ++++++++++++++++++++++++++++++ sys-fs/aufs/files/aufs-lhash-2.6.19.patch | 41 +++++++ sys-fs/aufs/files/aufs-lhash-2.6.22.patch | 41 +++++++ sys-fs/aufs/files/aufs-lhash-2.6.24.patch | 40 +++++++ 7 files changed, 343 insertions(+), 6 deletions(-) create mode 100644 sys-fs/aufs/aufs-20090126.ebuild create mode 100644 sys-fs/aufs/files/aufs-lhash-2.6.19.patch create mode 100644 sys-fs/aufs/files/aufs-lhash-2.6.22.patch create mode 100644 sys-fs/aufs/files/aufs-lhash-2.6.24.patch 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_) + +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]) -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 *); + -- cgit v1.2.3