Index: linux-2.6.7/fs/filesystems.c =================================================================== --- linux-2.6.7.orig/fs/filesystems.c 2004-06-16 13:19:51.000000000 +0800 +++ linux-2.6.7/fs/filesystems.c 2004-09-06 21:01:57.000000000 +0800 @@ -27,7 +27,9 @@ */ static struct file_system_type *file_systems; -static rwlock_t file_systems_lock = RW_LOCK_UNLOCKED; +rwlock_t file_systems_lock = RW_LOCK_UNLOCKED; + +EXPORT_SYMBOL(file_systems_lock); /* WARNING: This can be used only if we _already_ own a reference */ void get_filesystem(struct file_system_type *fs) Index: linux-2.6.7/fs/namespace.c =================================================================== --- linux-2.6.7.orig/fs/namespace.c 2004-09-06 21:00:27.000000000 +0800 +++ linux-2.6.7/fs/namespace.c 2004-09-06 21:01:57.000000000 +0800 @@ -364,7 +364,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; @@ -439,7 +439,7 @@ up_write(¤t->namespace->sem); return retval; } - +EXPORT_SYMBOL(do_umount); /* * Now umount can handle mount points as well as block devices. * This is important for filesystems which use unnamed block devices. Index: linux-2.6.7/include/linux/fs.h =================================================================== --- linux-2.6.7.orig/include/linux/fs.h 2004-08-30 19:31:13.000000000 +0800 +++ linux-2.6.7/include/linux/fs.h 2004-09-06 21:01:57.000000000 +0800 @@ -1474,6 +1474,7 @@ extern struct file_operations generic_ro_fops; +extern rwlock_t file_systems_lock; #define special_file(m) (S_ISCHR(m)||S_ISBLK(m)||S_ISFIFO(m)||S_ISSOCK(m)) extern int vfs_readlink(struct dentry *, char __user *, int, const char *); Index: linux-2.6.7/include/linux/ext2_fs_sb.h =================================================================== --- linux-2.6.7.orig/include/linux/ext2_fs_sb.h 2004-06-16 13:19:53.000000000 +0800 +++ linux-2.6.7/include/linux/ext2_fs_sb.h 2004-09-06 21:01:57.000000000 +0800 @@ -16,9 +16,11 @@ #ifndef _LINUX_EXT2_FS_SB #define _LINUX_EXT2_FS_SB +#ifndef EXT_INCLUDE +#define EXT_INCLUDE #include #include - +#endif /* * second extended-fs super-block data in memory */ Index: linux-2.6.7/include/linux/mount.h =================================================================== --- linux-2.6.7.orig/include/linux/mount.h 2004-09-06 21:01:55.000000000 +0800 +++ linux-2.6.7/include/linux/mount.h 2004-09-06 21:02:26.000000000 +0800 @@ -56,6 +56,7 @@ extern struct vfsmount *alloc_vfsmnt(const char *name); extern struct vfsmount *do_kern_mount(const char *fstype, int flags, const char *name, void *data); +extern int do_umount(struct vfsmount *mnt, int flags); extern spinlock_t vfsmount_lock; #endif Index: linux-2.6.7/kernel/kallsyms.c =================================================================== --- linux-2.6.7.orig/kernel/kallsyms.c 2004-06-16 13:20:19.000000000 +0800 +++ linux-2.6.7/kernel/kallsyms.c 2004-09-06 21:01:57.000000000 +0800 @@ -322,3 +322,4 @@ EXPORT_SYMBOL(kallsyms_lookup); EXPORT_SYMBOL(__print_symbol); +EXPORT_SYMBOL(kernel_text_address);