Index: linux-2.6.7/mm/truncate.c =================================================================== --- linux-2.6.7.orig/mm/truncate.c 2004-06-16 13:20:04.000000000 +0800 +++ linux-2.6.7/mm/truncate.c 2005-03-23 23:30:30.676444072 +0800 @@ -42,7 +42,7 @@ * its lock, b) when a concurrent invalidate_inode_pages got there first and * c) when tmpfs swizzles a page between a tmpfs inode and swapper_space. */ -static void +void truncate_complete_page(struct address_space *mapping, struct page *page) { if (page->mapping != mapping) @@ -58,6 +58,8 @@ page_cache_release(page); /* pagecache ref */ } +EXPORT_SYMBOL(truncate_complete_page); + /* * This is for invalidate_inode_pages(). That function can be called at * any time, and is not supposed to throw away dirty pages. But pages can Index: linux-2.6.7/fs/super.c =================================================================== --- linux-2.6.7.orig/fs/super.c 2004-06-16 13:19:22.000000000 +0800 +++ linux-2.6.7/fs/super.c 2005-03-23 23:30:30.648448328 +0800 @@ -804,6 +804,8 @@ return (struct vfsmount *)sb; } +EXPORT_SYMBOL(do_kern_mount); + struct vfsmount *kern_mount(struct file_system_type *type) { return do_kern_mount(type->name, 0, type->name, NULL); Index: linux-2.6.7/fs/jbd/journal.c =================================================================== --- linux-2.6.7.orig/fs/jbd/journal.c 2004-06-16 13:18:59.000000000 +0800 +++ linux-2.6.7/fs/jbd/journal.c 2005-03-23 23:30:30.647448480 +0800 @@ -71,6 +71,7 @@ EXPORT_SYMBOL(journal_errno); EXPORT_SYMBOL(journal_ack_err); EXPORT_SYMBOL(journal_clear_err); +EXPORT_SYMBOL(log_start_commit); EXPORT_SYMBOL(log_wait_commit); EXPORT_SYMBOL(journal_start_commit); EXPORT_SYMBOL(journal_wipe); Index: linux-2.6.7/kernel/exit.c =================================================================== --- linux-2.6.7.orig/kernel/exit.c 2004-06-16 13:19:52.000000000 +0800 +++ linux-2.6.7/kernel/exit.c 2005-03-23 23:34:17.539955576 +0800 @@ -256,6 +256,8 @@ write_unlock_irq(&tasklist_lock); } +EXPORT_SYMBOL(reparent_to_init); + void __set_special_pids(pid_t session, pid_t pgrp) { struct task_struct *curr = current; @@ -435,6 +437,7 @@ { __exit_files(tsk); } +EXPORT_SYMBOL(exit_files); static inline void __put_fs_struct(struct fs_struct *fs) { Index: linux-2.6.7/include/linux/fs.h =================================================================== --- linux-2.6.7.orig/include/linux/fs.h 2005-03-23 23:30:08.535809960 +0800 +++ linux-2.6.7/include/linux/fs.h 2005-03-23 23:30:30.675444224 +0800 @@ -1133,6 +1133,7 @@ extern struct vfsmount *kern_mount(struct file_system_type *); extern int may_umount_tree(struct vfsmount *); extern int may_umount(struct vfsmount *); +struct vfsmount *do_kern_mount(const char *type, int flags, const char *name, void *data); extern long do_mount(char *, char *, char *, unsigned long, void *); extern int vfs_statfs(struct super_block *, struct kstatfs *); Index: linux-2.6.7/include/linux/mm.h =================================================================== --- linux-2.6.7.orig/include/linux/mm.h 2004-06-16 13:18:56.000000000 +0800 +++ linux-2.6.7/include/linux/mm.h 2005-03-23 23:30:30.673444528 +0800 @@ -653,6 +653,9 @@ extern unsigned long do_brk(unsigned long, unsigned long); +/* truncate.c */ +extern void truncate_complete_page(struct address_space *mapping,struct page *); + /* filemap.c */ extern unsigned long page_unuse(struct page *); extern void truncate_inode_pages(struct address_space *, loff_t);