We need type fixes and appropriate prototypes in scope for intird handling on
32-bit big-endian machines.



 fs/namei.c         |    3 +--
 include/linux/fs.h |    1 +
 init/do_mounts.h   |    4 ++--
 init/initramfs.c   |    3 +--
 4 files changed, 5 insertions(+), 6 deletions(-)

diff -puN fs/namei.c~64-bit-dev_t-init_rd-fixes fs/namei.c
--- 25/fs/namei.c~64-bit-dev_t-init_rd-fixes	2003-08-30 15:41:03.000000000 -0700
+++ 25-akpm/fs/namei.c	2003-08-30 15:41:03.000000000 -0700
@@ -1445,8 +1445,7 @@ int vfs_mknod(struct inode *dir, struct 
 	return error;
 }
 
-static long
-do_mknod(const char __user *filename, int mode, dev_t dev)
+long do_mknod(const char __user *filename, int mode, dev_t dev)
 {
 	int error = 0;
 	char *tmp;
diff -puN init/do_mounts.h~64-bit-dev_t-init_rd-fixes init/do_mounts.h
--- 25/init/do_mounts.h~64-bit-dev_t-init_rd-fixes	2003-08-30 15:41:03.000000000 -0700
+++ 25-akpm/init/do_mounts.h	2003-08-30 15:41:03.000000000 -0700
@@ -8,9 +8,9 @@
 #include <linux/mount.h>
 #include <linux/major.h>
 #include <linux/root_dev.h>
+#include <linux/fs.h>
 
 asmlinkage long sys_unlink(const char *name);
-asmlinkage long sys_mknod(const char *name, int mode, dev_t dev);
 asmlinkage long sys_newstat(char * filename, struct stat * statbuf);
 asmlinkage long sys_ioctl(int fd, int cmd, unsigned long arg);
 asmlinkage long sys_mkdir(const char *name, int mode);
@@ -43,7 +43,7 @@ static inline void umount_devfs(const ch
 static inline int create_dev(char *name, dev_t dev, char *devfs_name)
 {
 	sys_unlink(name);
-	return sys_mknod(name, S_IFBLK|0600, dev);
+	return do_mknod(name, S_IFBLK|0600, dev);
 }
 
 #endif
diff -puN init/initramfs.c~64-bit-dev_t-init_rd-fixes init/initramfs.c
--- 25/init/initramfs.c~64-bit-dev_t-init_rd-fixes	2003-08-30 15:41:03.000000000 -0700
+++ 25-akpm/init/initramfs.c	2003-08-30 15:41:03.000000000 -0700
@@ -24,7 +24,6 @@ static void __init free(void *where)
 }
 
 asmlinkage long sys_mkdir(char *name, int mode);
-asmlinkage long sys_mknod(char *name, int mode, dev_t dev);
 asmlinkage long sys_symlink(char *old, char *new);
 asmlinkage long sys_link(char *old, char *new);
 asmlinkage long sys_write(int fd, const char *buf, size_t size);
@@ -264,7 +263,7 @@ static int __init do_name(void)
 	} else if (S_ISBLK(mode) || S_ISCHR(mode) ||
 		   S_ISFIFO(mode) || S_ISSOCK(mode)) {
 		if (maybe_link() == 0) {
-			sys_mknod(collected, mode, rdev);
+			do_mknod(collected, mode, rdev);
 			sys_chown(collected, uid, gid);
 		}
 	} else
diff -puN include/linux/fs.h~64-bit-dev_t-init_rd-fixes include/linux/fs.h
--- 25/include/linux/fs.h~64-bit-dev_t-init_rd-fixes	2003-08-30 15:41:03.000000000 -0700
+++ 25-akpm/include/linux/fs.h	2003-08-30 15:41:03.000000000 -0700
@@ -729,6 +729,7 @@ extern int vfs_link(struct dentry *, str
 extern int vfs_rmdir(struct inode *, struct dentry *);
 extern int vfs_unlink(struct inode *, struct dentry *);
 extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *);
+extern long do_mknod(const char __user *filename, int mode, dev_t dev);
 
 /*
  * File types

_