summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAlexander Viro <viro@www.linux.org.uk>2003-09-22 22:52:28 -0700
committerLinus Torvalds <torvalds@home.osdl.org>2003-09-22 22:52:28 -0700
commit1c2c2a8f7cfa549f372ae4ec659c6baa846535c5 (patch)
tree0aa2ac7360116ab1a14a16f0cd6cb6c05a3850a9 /include
parent40d2adc65cc233bbbd5437efe1df224b04a5ebf1 (diff)
[PATCH] 32-bit dev_t: switch-over
Real conversion to 32bit dev_t. Expansion to: * mknod() - 32 * newstat() - 32 on 64bit platforms * stat64() - 32 on mips, 64 on everything else (mips has weird struct stat64 and can't get more than 32 bits). Note that right now the difference is purely theoretical - we don't have internal values above 32 bits, so huge_... vs. new_... only marks the places where 64bit conversion will need extra work. * arch-dependent stat variants - depending on width available. * ustat et.al. - 32 * filesystems that can handle 32 bits right now - 32 * ext2 and ext3 - 32, with large dev_t inodes having 0 in the first element of i_data[] (where we store dev_t value for small device numbers) and keeping the value in the second element. * nfsd - 32; it can be driven to 64, but we'll get several issues with NFSv2 support. * RAID - 32 * devmapper - with v1 it's still 16 (nothing to do here), with v4 it's 64. * loop - 64 * initramfs - 32 * do_mounts code - 32. Parts that scan devfs tree are using newstat() on 64bit platforms and stat64() on the rest (IOW, the latest stat variant on given platform). * old_valid_dev()/new_valid_dev() added where needed (stat variants, mostly - we fail with -EOVERFLOW if values do not fit).
Diffstat (limited to 'include')
-rw-r--r--include/asm-arm26/stat.h6
-rw-r--r--include/asm-h8300/stat.h6
2 files changed, 4 insertions, 8 deletions
diff --git a/include/asm-arm26/stat.h b/include/asm-arm26/stat.h
index 16d1bf897e56..e4abc4fa0850 100644
--- a/include/asm-arm26/stat.h
+++ b/include/asm-arm26/stat.h
@@ -42,8 +42,7 @@ struct stat {
* insane amounts of padding around dev_t's.
*/
struct stat64 {
- unsigned short st_dev;
- unsigned char __pad0b[6];
+ unsigned long long st_dev;
unsigned char __pad0[4];
#define STAT64_HAS_BROKEN_ST_INO 1
@@ -54,8 +53,7 @@ struct stat64 {
unsigned long st_uid;
unsigned long st_gid;
- unsigned short st_rdev;
- unsigned char __pad3b[6];
+ unsigned long long st_rdev;
unsigned char __pad3[4];
long long st_size;
diff --git a/include/asm-h8300/stat.h b/include/asm-h8300/stat.h
index 7c71b3231d93..62c3cc24dfe6 100644
--- a/include/asm-h8300/stat.h
+++ b/include/asm-h8300/stat.h
@@ -42,8 +42,7 @@ struct stat {
* insane amounts of padding around dev_t's.
*/
struct stat64 {
- unsigned char __pad0[6];
- unsigned short st_dev;
+ unsigned long long st_dev;
unsigned char __pad1[2];
#define STAT64_HAS_BROKEN_ST_INO 1
@@ -55,8 +54,7 @@ struct stat64 {
unsigned long st_uid;
unsigned long st_gid;
- unsigned char __pad2[6];
- unsigned short st_rdev;
+ unsigned long long st_rdev;
unsigned char __pad3[2];
long long st_size;