From: "David S. Miller" <davem@redhat.com>

After seeing that sparc64 had the same asm/stat.h problem in -mm with
dev_t as ppc has, I decided to fix all of the cases.



 include/asm-mips/stat.h    |    8 ++--
 include/asm-parisc/stat.h  |   16 ++++-----
 include/asm-ppc64/stat.h   |    4 +-
 include/asm-sparc64/stat.h |   73 +++++++++++++++++++--------------------------
 4 files changed, 45 insertions(+), 56 deletions(-)

diff -puN include/asm-mips/stat.h~arch-dev_t-stat-fixes include/asm-mips/stat.h
--- 25/include/asm-mips/stat.h~arch-dev_t-stat-fixes	2003-08-09 23:27:23.000000000 -0700
+++ 25-akpm/include/asm-mips/stat.h	2003-08-09 23:27:23.000000000 -0700
@@ -16,14 +16,14 @@
 #if (_MIPS_SIM == _MIPS_SIM_ABI32) || (_MIPS_SIM == _MIPS_SIM_NABI32)
 
 struct stat {
-	dev_t		st_dev;
+	unsigned int	st_dev;
 	long		st_pad1[3];		/* Reserved for network id */
 	ino_t		st_ino;
 	mode_t		st_mode;
 	nlink_t		st_nlink;
 	uid_t		st_uid;
 	gid_t		st_gid;
-	dev_t		st_rdev;
+	unsigned int	st_rdev;
 	long		st_pad2[2];
 	off_t		st_size;
 	long		st_pad3;
@@ -90,7 +90,7 @@ struct stat64 {
 
 /* The memory layout is the same as of struct stat64 of the 32-bit kernel.  */
 struct stat {
-	dev_t			st_dev;
+	unsigned int		st_dev;
 	unsigned int		st_pad0[3]; /* Reserved for st_dev expansion */
 
 	unsigned long		st_ino;
@@ -101,7 +101,7 @@ struct stat {
 	uid_t			st_uid;
 	gid_t			st_gid;
 
-	dev_t			st_rdev;
+	unsigned int		st_rdev;
 	unsigned int		st_pad1[3]; /* Reserved for st_rdev expansion */
 
 	off_t			st_size;
diff -puN include/asm-parisc/stat.h~arch-dev_t-stat-fixes include/asm-parisc/stat.h
--- 25/include/asm-parisc/stat.h~arch-dev_t-stat-fixes	2003-08-09 23:27:23.000000000 -0700
+++ 25-akpm/include/asm-parisc/stat.h	2003-08-09 23:27:23.000000000 -0700
@@ -4,13 +4,13 @@
 #include <linux/types.h>
 
 struct stat {
-	dev_t		st_dev;		/* dev_t is 32 bits on parisc */
+	unsigned int	st_dev;		/* dev_t is 32 bits on parisc */
 	ino_t		st_ino;		/* 32 bits */
 	mode_t		st_mode;	/* 16 bits */
 	nlink_t		st_nlink;	/* 16 bits */
 	unsigned short	st_reserved1;	/* old st_uid */
 	unsigned short	st_reserved2;	/* old st_gid */
-	dev_t		st_rdev;
+	unsigned int	st_rdev;
 	off_t		st_size;
 	time_t		st_atime;
 	unsigned int	st_atime_nsec;
@@ -21,12 +21,12 @@ struct stat {
 	int		st_blksize;
 	int		st_blocks;
 	unsigned int	__unused1;	/* ACL stuff */
-	dev_t		__unused2;	/* network */
+	unsigned int	__unused2;	/* network */
 	ino_t		__unused3;	/* network */
 	unsigned int	__unused4;	/* cnodes */
 	unsigned short	__unused5;	/* netsite */
 	short		st_fstype;
-	dev_t		st_realdev;
+	unsigned int	st_realdev;
 	unsigned short	st_basemode;
 	unsigned short	st_spareshort;
 	uid_t		st_uid;
@@ -39,13 +39,13 @@ struct stat {
 typedef __kernel_off64_t	off64_t;
 
 struct hpux_stat64 {
-	dev_t		st_dev;		/* dev_t is 32 bits on parisc */
+	unsigned int	st_dev;		/* dev_t is 32 bits on parisc */
 	ino_t           st_ino;         /* 32 bits */
 	mode_t		st_mode;	/* 16 bits */
 	nlink_t		st_nlink;	/* 16 bits */
 	unsigned short	st_reserved1;	/* old st_uid */
 	unsigned short	st_reserved2;	/* old st_gid */
-	dev_t		st_rdev;
+	unsigned int	st_rdev;
 	off64_t		st_size;
 	time_t		st_atime;
 	unsigned int	st_spare1;
@@ -56,12 +56,12 @@ struct hpux_stat64 {
 	int		st_blksize;
 	__u64		st_blocks;
 	unsigned int	__unused1;	/* ACL stuff */
-	dev_t		__unused2;	/* network */
+	unsigned int	__unused2;	/* network */
 	ino_t           __unused3;      /* network */
 	unsigned int	__unused4;	/* cnodes */
 	unsigned short	__unused5;	/* netsite */
 	short		st_fstype;
-	dev_t		st_realdev;
+	unsigned int	st_realdev;
 	unsigned short	st_basemode;
 	unsigned short	st_spareshort;
 	uid_t		st_uid;
diff -puN include/asm-ppc64/stat.h~arch-dev_t-stat-fixes include/asm-ppc64/stat.h
--- 25/include/asm-ppc64/stat.h~arch-dev_t-stat-fixes	2003-08-09 23:27:23.000000000 -0700
+++ 25-akpm/include/asm-ppc64/stat.h	2003-08-09 23:27:23.000000000 -0700
@@ -11,13 +11,13 @@
 #include <linux/types.h>
 
 struct stat {
-	dev_t		st_dev;
+	unsigned long	st_dev;
 	ino_t		st_ino;
 	nlink_t		st_nlink;
 	mode_t		st_mode;
 	uid_t 		st_uid;
 	gid_t 		st_gid;
-	dev_t		st_rdev;
+	unsigned long	st_rdev;
 	off_t		st_size;
 	unsigned long  	st_blksize;
 	unsigned long  	st_blocks;
diff -puN include/asm-sparc64/stat.h~arch-dev_t-stat-fixes include/asm-sparc64/stat.h
--- 25/include/asm-sparc64/stat.h~arch-dev_t-stat-fixes	2003-08-09 23:27:23.000000000 -0700
+++ 25-akpm/include/asm-sparc64/stat.h	2003-08-09 23:27:23.000000000 -0700
@@ -5,20 +5,20 @@
 #include <linux/types.h>
 
 struct stat {
-	dev_t   st_dev;
-	ino_t   st_ino;
-	mode_t  st_mode;
-	short   st_nlink;
-	uid_t   st_uid;
-	gid_t   st_gid;
-	dev_t   st_rdev;
-	off_t   st_size;
-	time_t  st_atime;
-	time_t  st_mtime;
-	time_t  st_ctime;
-	off_t   st_blksize;
-	off_t   st_blocks;
-	unsigned long  __unused4[2];
+	unsigned int	st_dev;
+	ino_t		st_ino;
+	mode_t		st_mode;
+	short		st_nlink;
+	uid_t   	st_uid;
+	gid_t   	st_gid;
+	unsigned int	st_rdev;
+	off_t   	st_size;
+	time_t  	st_atime;
+	time_t  	st_mtime;
+	time_t  	st_ctime;
+	off_t   	st_blksize;
+	off_t   	st_blocks;
+	unsigned long	__unused4[2];
 };
 
 #ifdef __KERNEL__
@@ -26,36 +26,25 @@ struct stat {
 
 struct stat64 {
 	unsigned long long	st_dev;
-
 	unsigned long long	st_ino;
-
-	unsigned int	st_mode;
-	unsigned int	st_nlink;
-
-	unsigned int	st_uid;
-	unsigned int	st_gid;
-
+	unsigned int		st_mode;
+	unsigned int		st_nlink;
+	unsigned int		st_uid;
+	unsigned int		st_gid;
 	unsigned long long	st_rdev;
-
-	unsigned char	__pad3[8];
-
-	long long	st_size;
-	unsigned int	st_blksize;
-
-	unsigned char	__pad4[8];
-	unsigned int	st_blocks;
-
-	unsigned int	st_atime;
-	unsigned int	st_atime_nsec;
-
-	unsigned int	st_mtime;
-	unsigned int	st_mtime_nsec;
-
-	unsigned int	st_ctime;
-	unsigned int	st_ctime_nsec;
-
-	unsigned int	__unused4;
-	unsigned int	__unused5;
+	unsigned char		__pad3[8];
+	long long		st_size;
+	unsigned int		st_blksize;
+	unsigned char		__pad4[8];
+	unsigned int		st_blocks;
+	unsigned int		st_atime;
+	unsigned int		st_atime_nsec;
+	unsigned int		st_mtime;
+	unsigned int		st_mtime_nsec;
+	unsigned int		st_ctime;
+	unsigned int		st_ctime_nsec;
+	unsigned int		__unused4;
+	unsigned int		__unused5;
 };
 
 #endif

_