From: viro@www.linux.org.uk nfs_fattr->rdev switched to dev_t; code that unpacks on-the-wire attributes does explicit conversion now. y fs/nfs/nfs2xdr.c | 6 ++++-- include/linux/nfs_xdr.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff -puN fs/nfs/nfs2xdr.c~large-dev_t-2nd-14 fs/nfs/nfs2xdr.c --- 25/fs/nfs/nfs2xdr.c~large-dev_t-2nd-14 2003-09-05 00:50:12.000000000 -0700 +++ 25-akpm/fs/nfs/nfs2xdr.c 2003-09-05 00:50:12.000000000 -0700 @@ -106,6 +106,7 @@ xdr_decode_time(u32 *p, struct timespec static u32 * xdr_decode_fattr(u32 *p, struct nfs_fattr *fattr) { + u32 rdev; fattr->type = (enum nfs_ftype) ntohl(*p++); fattr->mode = ntohl(*p++); fattr->nlink = ntohl(*p++); @@ -113,7 +114,7 @@ xdr_decode_fattr(u32 *p, struct nfs_fatt fattr->gid = ntohl(*p++); fattr->size = ntohl(*p++); fattr->du.nfs2.blocksize = ntohl(*p++); - fattr->rdev = ntohl(*p++); + rdev = ntohl(*p++); fattr->du.nfs2.blocks = ntohl(*p++); fattr->fsid_u.nfs3 = ntohl(*p++); fattr->fileid = ntohl(*p++); @@ -121,7 +122,8 @@ xdr_decode_fattr(u32 *p, struct nfs_fatt p = xdr_decode_time(p, &fattr->mtime); p = xdr_decode_time(p, &fattr->ctime); fattr->valid |= NFS_ATTR_FATTR; - if (fattr->type == NFCHR && fattr->rdev == NFS2_FIFO_DEV) { + fattr->rdev = old_decode_dev(rdev); + if (fattr->type == NFCHR && rdev == NFS2_FIFO_DEV) { fattr->type = NFFIFO; fattr->mode = (fattr->mode & ~S_IFMT) | S_IFIFO; fattr->rdev = 0; diff -puN include/linux/nfs_xdr.h~large-dev_t-2nd-14 include/linux/nfs_xdr.h --- 25/include/linux/nfs_xdr.h~large-dev_t-2nd-14 2003-09-05 00:50:12.000000000 -0700 +++ 25-akpm/include/linux/nfs_xdr.h 2003-09-05 00:50:12.000000000 -0700 @@ -23,7 +23,7 @@ struct nfs_fattr { __u64 used; } nfs3; } du; - __u32 rdev; + dev_t rdev; union { __u64 nfs3; /* also nfs2 */ struct { _