list_add(&mnt->mnt_hash, mount_hashtable+hash(nd->mnt, nd->dentry));
list_add(&mnt->mnt_child, &nd->mnt->mnt_mounts);
nd->dentry->d_mounted++;
+@@ -286,7 +293,7 @@
+ }
+ }
+
+-static int do_umount(struct vfsmount *mnt, int flags)
++int do_umount(struct vfsmount *mnt, int flags)
+ {
+ struct super_block * sb = mnt->mnt_sb;
+ int retval = 0;
@@ -485,14 +487,17 @@
{
struct nameidata old_nd;
===================================================================
--- linux-2.4.20.orig/kernel/ksyms.c Wed Mar 17 13:57:11 2004
+++ linux-2.4.20/kernel/ksyms.c Wed Mar 17 13:57:11 2004
-@@ -297,6 +297,7 @@
+@@ -297,6 +297,8 @@
EXPORT_SYMBOL(set_page_dirty);
EXPORT_SYMBOL(vfs_readlink);
EXPORT_SYMBOL(vfs_follow_link);
+EXPORT_SYMBOL(vfs_follow_link_it);
++EXPORT_SYMBOL(do_umount);
EXPORT_SYMBOL(page_readlink);
EXPORT_SYMBOL(page_follow_link);
EXPORT_SYMBOL(page_symlink_inode_operations);
+===== include/linux/mount.h 1.7 vs edited =====
+--- linux-2.4.20.orig/include/linux/mount.h Tue Feb 5 09:49:35 2002
++++ linux-2.4.20/include/linux/mount.h Tue May 4 19:23:48 2004
+@@ -39,6 +39,7 @@
+ }
+
+ extern void __mntput(struct vfsmount *mnt);
++extern int do_umount(struct vfsmount *mnt, int flags);
+
+ static inline void mntput(struct vfsmount *mnt)
+ {