Index: xfs/linux/xfs_dev.c =================================================================== RCS file: /afs/stacken.kth.se/src/SourceRepository/arla/xfs/linux/xfs_dev.c,v retrieving revision 1.77.2.1 diff -c -r1.77.2.1 xfs_dev.c *** xfs/linux/xfs_dev.c 2001/03/25 00:02:30 1.77.2.1 --- xfs/linux/xfs_dev.c 2001/07/23 22:53:50 *************** *** 404,409 **** --- 404,417 ---- return ret; } + inline static void setdumpable(struct task_struct *current){ + #if LINUX_VERSION_CODE >= 132103 + current->mm->dumpable = 1; + #else + current->dumpable = 1; + #endif + } + /* * Move messages from user space to kernel space, * wakeup sleepers, insert new data in VFS. *************** *** 422,428 **** XFSDEB(XDEBDEV, ("xfs_devwrite\n")); ! current->dumpable = 1; if (count > MAX_XMSG_SIZE) count = MAX_XMSG_SIZE; --- 430,436 ---- XFSDEB(XDEBDEV, ("xfs_devwrite\n")); ! setdumpable(current); if (count > MAX_XMSG_SIZE) count = MAX_XMSG_SIZE; Index: xfs/linux/xfs_inodeops.c =================================================================== RCS file: /afs/stacken.kth.se/src/SourceRepository/arla/xfs/linux/xfs_inodeops.c,v retrieving revision 1.149.2.1 diff -c -r1.149.2.1 xfs_inodeops.c *** xfs/linux/xfs_inodeops.c 2001/01/28 16:13:38 1.149.2.1 --- xfs/linux/xfs_inodeops.c 2001/07/24 09:23:15 *************** *** 47,53 **** xfs_lookup (struct inode *inode, struct dentry *dentry); static int ! xfs_fsync(struct file *file, struct dentry *dentry); static int do_fsync(struct xfs *xfsp, struct xfs_node *xn, u_int flag); --- 47,53 ---- xfs_lookup (struct inode *inode, struct dentry *dentry); static int ! xfs_fsync(struct file *file, struct dentry *dentry, int datasync); /* XXX haba unused datasync */ static int do_fsync(struct xfs *xfsp, struct xfs_node *xn, u_int flag); *************** *** 153,159 **** */ static int ! xfs_as_writepage(struct file *file, struct page *page) { printk ("XFS PANIC: xfs_as_writepage\n"); *(int *) NULL = 10; --- 153,159 ---- */ static int ! xfs_as_writepage(struct page *page) { printk ("XFS PANIC: xfs_as_writepage\n"); *(int *) NULL = 10; *************** *** 281,287 **** release: xfs_release_file, fsync: xfs_fsync, }; - #endif /* LINUX2_3 */ struct file_operations xfs_dead_operations = { --- 281,286 ---- *************** *** 603,609 **** */ static int ! xfs_fsync(struct file *file, struct dentry *dentry) { struct inode *inode = DENTRY_TO_INODE(dentry); struct xfs *xfsp = XFS_FROM_VNODE(inode); --- 602,608 ---- */ static int ! xfs_fsync(struct file *file, struct dentry *dentry, int datasync) /* XXX haba unused datasync */ { struct inode *inode = DENTRY_TO_INODE(dentry); struct xfs *xfsp = XFS_FROM_VNODE(inode); Index: xfs/linux/xfs_message.c =================================================================== RCS file: /afs/stacken.kth.se/src/SourceRepository/arla/xfs/linux/xfs_message.c,v retrieving revision 1.94.2.2 diff -c -r1.94.2.2 xfs_message.c *** xfs/linux/xfs_message.c 2001/03/04 05:44:45 1.94.2.2 --- xfs/linux/xfs_message.c 2001/07/24 09:03:22 *************** *** 130,144 **** } else if (dentry->d_inode != XNODE_TO_VNODE(n)) { printk(KERN_EMERG "XFS SoftAssert: existing inode " ! "(%x, fid %d.%d.%d.%d) != " ! "installing %s(%x, fid %d.%d.%d.%d)\n", ! (unsigned int)dentry->d_inode, VNODE_TO_XNODE(dentry->d_inode)->handle.a, VNODE_TO_XNODE(dentry->d_inode)->handle.b, VNODE_TO_XNODE(dentry->d_inode)->handle.c, VNODE_TO_XNODE(dentry->d_inode)->handle.d, message->name, ! (unsigned int)XNODE_TO_VNODE(n), n->handle.a, n->handle.b, n->handle.c, --- 130,144 ---- } else if (dentry->d_inode != XNODE_TO_VNODE(n)) { printk(KERN_EMERG "XFS SoftAssert: existing inode " ! "(%lx, fid %d.%d.%d.%d) != " ! "installing %s(%lx, fid %d.%d.%d.%d)\n", ! (unsigned long int)dentry->d_inode, VNODE_TO_XNODE(dentry->d_inode)->handle.a, VNODE_TO_XNODE(dentry->d_inode)->handle.b, VNODE_TO_XNODE(dentry->d_inode)->handle.c, VNODE_TO_XNODE(dentry->d_inode)->handle.d, message->name, ! (unsigned long int)XNODE_TO_VNODE(n), n->handle.a, n->handle.b, n->handle.c, Index: xfs/linux/xfs_syscalls.c =================================================================== RCS file: /afs/stacken.kth.se/src/SourceRepository/arla/xfs/linux/xfs_syscalls.c,v retrieving revision 1.64.2.1 diff -c -r1.64.2.1 xfs_syscalls.c *** xfs/linux/xfs_syscalls.c 2001/03/23 21:07:59 1.64.2.1 --- xfs/linux/xfs_syscalls.c 2001/07/25 10:09:51 *************** *** 31,36 **** --- 31,37 ---- * SUCH DAMAGE. */ + #define SUSESPECIAL #define __NO_VERSION__ #include *************** *** 159,175 **** typedef int (*sys_setgroups_function)(int, gid_t *); #ifdef ARLA_NR_setgroups16 ! typedef int (*sys_setgroups16_function)(int, old_gid_t *); #endif typedef int (*sys_call_function)(void); ! extern sys_call_function sys_call_table[]; #ifdef NEED_VICEIOCTL32 extern u_int32_t sys_call_table32[]; #endif - static sys_call_function old_afs_syscall=NULL; #ifdef NEED_VICEIOCTL32 static u_int32_t old_afs_syscall32=0; #endif --- 160,181 ---- typedef int (*sys_setgroups_function)(int, gid_t *); #ifdef ARLA_NR_setgroups16 ! typedef int (*sys_setgroups16_function)(int, gid16_t *); #endif typedef int (*sys_call_function)(void); ! #ifdef SUSESPECIAL ! extern unsigned sys_call_table[]; ! static unsigned old_afs_syscall=0; ! #else extern sys_call_function sys_call_table[]; + static sys_call_function old_afs_syscall=NULL; + #endif /* SUSESPECIAL */ + #ifdef NEED_VICEIOCTL32 extern u_int32_t sys_call_table32[]; #endif #ifdef NEED_VICEIOCTL32 static u_int32_t old_afs_syscall32=0; #endif *************** *** 233,244 **** /* * Linux 2.3.39 and above has 2 setgroups() system calls on arm, i386, * m68k, sh, and sparc32. We call the old one setgroups16() because it ! * uses a 16-bit gid_t (old_gid_t). * We need to fix it up too. */ static asmlinkage int ! xfs_setgroups16 (int gidsetsize, old_gid_t *grouplist) { sys_setgroups16_function setgroups16 = (sys_setgroups16_function)old_setgroups16; --- 239,250 ---- /* * Linux 2.3.39 and above has 2 setgroups() system calls on arm, i386, * m68k, sh, and sparc32. We call the old one setgroups16() because it ! * uses a 16-bit gid_t (gid16_t). * We need to fix it up too. */ static asmlinkage int ! xfs_setgroups16 (int gidsetsize, gid16_t *grouplist) { sys_setgroups16_function setgroups16 = (sys_setgroups16_function)old_setgroups16; *************** *** 761,774 **** void install_afs_syscall (void) { old_afs_syscall = sys_call_table[__NR_afs_syscall]; ! sys_call_table[__NR_afs_syscall] = (sys_call_function)&sys_afs; #ifdef NEED_VICEIOCTL32 old_afs_syscall32 = sys_call_table32[__NR_afs_syscall]; sys_call_table32[__NR_afs_syscall] = (u_int32_t)&sys32_afs; #endif old_setgroups = sys_call_table[ARLA_NR_setgroups]; sys_call_table[ARLA_NR_setgroups] = (sys_call_function)&xfs_setgroups; #ifdef ARLA_NR_setgroups16 old_setgroups16 = sys_call_table[ARLA_NR_setgroups16]; sys_call_table[ARLA_NR_setgroups16] = (sys_call_function)&xfs_setgroups16; --- 767,812 ---- void install_afs_syscall (void) { + + int n; + for(n=0; n <= __NR_afs_syscall; n++) { + XFSDEB(XDEBSYS, ("install_afs_syscall: %d is %x\n", + n, + (u32)sys_call_table[n])); + } + XFSDEB(XDEBSYS, ("install_afs_syscall: sys_afs is %x\n", + (u32)&sys_afs)); + old_afs_syscall = sys_call_table[__NR_afs_syscall]; ! sys_call_table[__NR_afs_syscall] = ! #ifdef SUSESPECIAL ! (unsigned) ! #else ! (sys_call_function) ! #endif ! &sys_afs; ! XFSDEB(XDEBSYS, ("install_afs_syscall: Installed syscall %d is %x\n", ! __NR_afs_syscall, ! sys_call_table[__NR_afs_syscall])); ! #ifdef NEED_VICEIOCTL32 old_afs_syscall32 = sys_call_table32[__NR_afs_syscall]; sys_call_table32[__NR_afs_syscall] = (u_int32_t)&sys32_afs; #endif + #ifdef SUSESPECIAL + { + unsigned num; + old_setgroups = (sys_call_function)sys_call_table[ARLA_NR_setgroups]; + num = (unsigned)&xfs_setgroups; + XFSDEB(XDEBSYS, ("install_afs_syscall: old setgroups func: %x\ninstall_afs_syscall: new setgroups func: %x\n", + (unsigned)old_setgroups, + num)); + sys_call_table[ARLA_NR_setgroups] = num; + } + #else old_setgroups = sys_call_table[ARLA_NR_setgroups]; sys_call_table[ARLA_NR_setgroups] = (sys_call_function)&xfs_setgroups; + #endif #ifdef ARLA_NR_setgroups16 old_setgroups16 = sys_call_table[ARLA_NR_setgroups16]; sys_call_table[ARLA_NR_setgroups16] = (sys_call_function)&xfs_setgroups16; *************** *** 780,786 **** --- 818,828 ---- { if (old_afs_syscall) { sys_call_table[__NR_afs_syscall] = old_afs_syscall; + #ifdef SUSESPECIAL + old_afs_syscall = 0; + #else old_afs_syscall = NULL; + #endif } #ifdef NEED_VICEIOCTL32 if (old_afs_syscall32) { *************** *** 789,795 **** --- 831,841 ---- } #endif if (old_setgroups) { + #ifdef SUSESPECIAL + sys_call_table[ARLA_NR_setgroups] = (unsigned)old_setgroups; + #else sys_call_table[ARLA_NR_setgroups] = old_setgroups; + #endif old_setgroups = NULL; } #ifdef ARLA_NR_setgroups16