This patch fixes the n32 and o32 syscall tables for compat statfs64
and fstatfs64. This indirectly fixes statvfs in glibc, etc.
The statfs.h reorganization (to align it with all of the other
arches and include/linux/statfs.h) isn't as important as the structure
size, which makes the syscalls bomb immediately.
Also, for anyone interested, the accompanying glibc patch to update
for the updated structure order and size, as well as fix some other
problems for fstatfs64/statfs64, is at:
http://www.ldsys.net/~cgs/linux-mips/patches-20040827/usr/local/portage/sys-libs/glibc/files/2.3.4/glibc-2.3.4.20040808-mips-compat.patch
Index: arch/mips/kernel/scall64-n32.S
===================================================================
RCS file: /home/cvs/linux/arch/mips/kernel/scall64-n32.S,v
retrieving revision 1.12
diff -u -b -B -r1.12 scall64-n32.S
--- arch/mips/kernel/scall64-n32.S 8 Jun 2004 23:54:47 -0000
1.12
+++ arch/mips/kernel/scall64-n32.S 8 Sep 2004 05:12:37 -0000
@@ -334,8 +334,8 @@
PTR sys_restart_syscall
PTR sys_semtimedop /* 6215 */
PTR sys_fadvise64_64
- PTR sys_statfs64
- PTR sys_fstatfs64
+ PTR compat_statfs64
+ PTR compat_fstatfs64
PTR sys_sendfile64
PTR sys_timer_create /* 6220 */
PTR sys_timer_settime
Index: arch/mips/kernel/scall64-o32.S
===================================================================
RCS file: /home/cvs/linux/arch/mips/kernel/scall64-o32.S,v
retrieving revision 1.13
diff -u -b -B -r1.13 scall64-o32.S
--- arch/mips/kernel/scall64-o32.S 25 Aug 2004 15:08:23 -0000
1.13
+++ arch/mips/kernel/scall64-o32.S 8 Sep 2004 05:12:37 -0000
@@ -496,8 +496,8 @@
PTR sys_set_tid_address
PTR sys_restart_syscall
PTR sys_fadvise64_64
- PTR sys_statfs64 /* 4255 */
- PTR sys_fstatfs64
+ PTR compat_statfs64 /* 4255 */
+ PTR compat_fstatfs64
PTR sys_timer_create
PTR sys_timer_settime
PTR sys_timer_gettime
Index: include/asm-mips/statfs.h
===================================================================
RCS file: /home/cvs/linux/include/asm-mips/statfs.h,v
retrieving revision 1.5
diff -u -b -B -r1.5 statfs.h
--- include/asm-mips/statfs.h 10 Jan 2004 04:59:56 -0000 1.5
+++ include/asm-mips/statfs.h 8 Sep 2004 05:12:45 -0000
@@ -23,17 +23,17 @@
long f_type;
#define f_fstyp f_type
long f_bsize;
- long f_frsize; /* Fragment size - unsupported
*/
long f_blocks;
long f_bfree;
+ long f_bavail;
long f_files;
long f_ffree;
/* Linux specials */
- long f_bavail;
__kernel_fsid_t f_fsid;
long f_namelen;
- long f_spare[6];
+ long f_frsize; /* Fragment size - unsupported
*/
+ long f_spare[5];
};
#if (_MIPS_SIM == _MIPS_SIM_ABI32) || (_MIPS_SIM == _MIPS_SIM_NABI32)
@@ -62,17 +62,17 @@
struct statfs64 { /* Same as struct statfs */
long f_type;
long f_bsize;
- long f_frsize; /* Fragment size - unsupported
*/
long f_blocks;
long f_bfree;
+ long f_bavail;
long f_files;
long f_ffree;
/* Linux specials */
- long f_bavail;
__kernel_fsid_t f_fsid;
long f_namelen;
- long f_spare[6];
+ long f_frsize; /* Fragment size - unsupported
*/
+ long f_spare[5];
};
struct compat_statfs64 {
|