1 diff -u -N -r linux.orig/fs/nfs/inode.c linux.nfs/fs/nfs/inode.c
\r
2 --- linux.orig/fs/nfs/inode.c Tue Feb 13 19:14:28 2001
\r
3 +++ linux.nfs/fs/nfs/inode.c Fri Mar 9 10:58:47 2001
\r
5 nfs_zap_caches(inode);
\r
8 +/* This kludge (of Lance's) converts 16bit DUNIX device numbers
\r
9 + * into 8-bit Linux ones.
\r
12 +do_that_magic(u32 rdev)
\r
14 + if (((rdev & 0xffff0000) != 0) &&
\r
15 + ((rdev & 0x0ff000ff) == rdev)) {
\r
17 + tmp = ((rdev & 0x0ff00000) >> 12) | (rdev & 0xff) ;
\r
18 + //printk("doing that magic!! %08x -> %08x\n", rdev, tmp) ;
\r
25 * Fill in inode information from the fattr.
\r
28 } else if (S_ISLNK(inode->i_mode))
\r
29 inode->i_op = &nfs_symlink_inode_operations;
\r
31 - init_special_inode(inode, inode->i_mode, fattr->rdev);
\r
32 + init_special_inode(inode, inode->i_mode, do_that_magic(fattr->rdev));
\r
34 * Preset the size and mtime, as there's no need
\r
35 * to invalidate the caches.
\r
36 @@ -1010,7 +1026,7 @@
\r
39 if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
\r
40 - inode->i_rdev = to_kdev_t(fattr->rdev);
\r
41 + inode->i_rdev = to_kdev_t(do_that_magic(fattr->rdev));
\r
43 /* Update attrtimeo value */
\r
44 if (!invalid && time_after(jiffies, NFS_ATTRTIMEO_UPDATE(inode)+NFS_ATTRTIMEO(inode))) {
\r
45 diff -u -N -r linux.orig/fs/nfs/mount_clnt.c linux.nfs/fs/nfs/mount_clnt.c
\r
46 --- linux.orig/fs/nfs/mount_clnt.c Thu Apr 13 10:54:19 2000
\r
47 +++ linux.nfs/fs/nfs/mount_clnt.c Fri Mar 9 10:58:47 2001
\r
50 clnt = rpc_create_client(xprt, hostname,
\r
51 &mnt_program, version,
\r
57 diff -u -N -r linux.orig/fs/nfs/proc.c linux.nfs/fs/nfs/proc.c
\r
58 --- linux.orig/fs/nfs/proc.c Fri Feb 9 14:29:44 2001
\r
59 +++ linux.nfs/fs/nfs/proc.c Mon Apr 30 16:54:48 2001
\r
60 @@ -181,6 +181,10 @@
\r
64 +/* convert Linux major/minor number into Tru64 major/minor */
\r
65 +#define linux2tru64(rdev) \
\r
66 + (MAJOR((rdev))<<20 | MINOR((rdev)))
\r
69 * In NFSv2, mknod is grafted onto the create call.
\r
72 sattr->ia_valid &= ~ATTR_SIZE;
\r
73 } else if (S_ISCHR(mode) || S_ISBLK(mode)) {
\r
74 sattr->ia_valid |= ATTR_SIZE;
\r
75 - sattr->ia_size = rdev; /* get out your barf bag */
\r
76 + sattr->ia_size = linux2tru64(rdev); /* get out your barf bag */
\r