sys_ustat was changed to take an unsigned int for the dev_t. This will break PPC64, on which dev_t is "long" (64-bits). Fix that up. arch/ppc64/kernel/misc.S | 4 ++-- arch/ppc64/kernel/syscalls.c | 5 +++++ fs/super.c | 3 ++- include/linux/fs.h | 2 ++ 4 files changed, 11 insertions(+), 3 deletions(-) diff -puN fs/super.c~ppc64-64-bit-ustat-fix fs/super.c --- 25/fs/super.c~ppc64-64-bit-ustat-fix 2003-08-04 00:00:08.000000000 -0700 +++ 25-akpm/fs/super.c 2003-08-04 00:00:31.000000000 -0700 @@ -31,6 +31,7 @@ #include #include #include +#include #include /* for the emergency remount stuff */ #include @@ -405,7 +406,7 @@ rescan: return NULL; } -static long do_ustat(dev_t dev, struct ustat __user *ubuf) +long do_ustat(dev_t dev, struct ustat __user *ubuf) { struct super_block *s; struct ustat tmp; diff -puN include/linux/fs.h~ppc64-64-bit-ustat-fix include/linux/fs.h --- 25/include/linux/fs.h~ppc64-64-bit-ustat-fix 2003-08-04 00:00:08.000000000 -0700 +++ 25-akpm/include/linux/fs.h 2003-08-04 00:00:48.000000000 -0700 @@ -1380,6 +1380,8 @@ extern int inode_setattr(struct inode *, extern void inode_update_time(struct inode *inode, int ctime_too); +extern long do_ustat(dev_t dev, struct ustat __user *ubuf); + static inline ino_t parent_ino(struct dentry *dentry) { ino_t res; diff -puN arch/ppc64/kernel/misc.S~ppc64-64-bit-ustat-fix arch/ppc64/kernel/misc.S --- 25/arch/ppc64/kernel/misc.S~ppc64-64-bit-ustat-fix 2003-08-04 00:00:08.000000000 -0700 +++ 25-akpm/arch/ppc64/kernel/misc.S 2003-08-04 00:01:02.000000000 -0700 @@ -660,7 +660,7 @@ _GLOBAL(sys_call_table32) .llong .sys32_olduname .llong .sys32_umask /* 60 */ .llong .sys_chroot - .llong .sys_ustat + .llong .ppc64_ustat .llong .sys_dup2 .llong .sys_getppid .llong .sys_getpgrp /* 65 */ @@ -903,7 +903,7 @@ _GLOBAL(sys_call_table) .llong .sys_ni_syscall /* old uname syscall */ .llong .sys_umask /* 60 */ .llong .sys_chroot - .llong .sys_ustat + .llong .ppc64_ustat .llong .sys_dup2 .llong .sys_getppid .llong .sys_getpgrp /* 65 */ diff -puN arch/ppc64/kernel/syscalls.c~ppc64-64-bit-ustat-fix arch/ppc64/kernel/syscalls.c --- 25/arch/ppc64/kernel/syscalls.c~ppc64-64-bit-ustat-fix 2003-08-04 00:00:08.000000000 -0700 +++ 25-akpm/arch/ppc64/kernel/syscalls.c 2003-08-04 00:01:57.000000000 -0700 @@ -237,3 +237,8 @@ ppc64_mknod(const char __user *filename, { return do_mknod(filename, mode, dev); } + +asmlinkage long ppc64_ustat(dev_t dev, struct ustat __user *ubuf) +{ + return do_ustat(dev, ubuf); +} _