]> Pileus Git - ~andy/sunrise/commitdiff
sys-fs/aufs: version bump, added 'nfs' use flag and lhash patches for nfs-branch...
authorIan Stakenvicius <axs@gentoo.org>
Tue, 31 Mar 2009 17:04:19 +0000 (17:04 +0000)
committerIan Stakenvicius <axs@gentoo.org>
Tue, 31 Mar 2009 17:04:19 +0000 (17:04 +0000)
svn path=/sunrise/; revision=8177

sys-fs/aufs/ChangeLog
sys-fs/aufs/Manifest
sys-fs/aufs/aufs-20081208-r1.ebuild
sys-fs/aufs/aufs-20090126.ebuild [new file with mode: 0644]
sys-fs/aufs/files/aufs-lhash-2.6.19.patch [new file with mode: 0644]
sys-fs/aufs/files/aufs-lhash-2.6.22.patch [new file with mode: 0644]
sys-fs/aufs/files/aufs-lhash-2.6.24.patch [new file with mode: 0644]

index 8943b7c26f46b25e0ff3deedbc3757cbc124b1b3..e2f617fa1bb97858da792c7d24bebdeddd955851 100644 (file)
@@ -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
index dad2d5337e98364d335935071ceed5b3a48c2b82..f90c928601abd7743e9522a755e813c12dcec6a1 100644 (file)
@@ -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
index d204b8e772f6cedb15db55daac7dee4ea70fe45e..5a4921df6848822b99d8189b69761531620cec32 100644 (file)
@@ -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 (file)
index 0000000..1d2ffba
--- /dev/null
@@ -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 (file)
index 0000000..ddcd872
--- /dev/null
@@ -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 (file)
index 0000000..4618bfd
--- /dev/null
@@ -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 (file)
index 0000000..de0b273
--- /dev/null
@@ -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 *);