]>
Commit | Line | Data |
---|---|---|
0dc0a2ce JR |
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 | |
4 | @@ -548,6 +548,22 @@\r | |
5 | nfs_zap_caches(inode);\r | |
6 | }\r | |
7 | \r | |
8 | +/* This kludge (of Lance's) converts 16bit DUNIX device numbers\r | |
9 | + * into 8-bit Linux ones.\r | |
10 | + */\r | |
11 | +static u32\r | |
12 | +do_that_magic(u32 rdev)\r | |
13 | +{\r | |
14 | + if (((rdev & 0xffff0000) != 0) &&\r | |
15 | + ((rdev & 0x0ff000ff) == rdev)) {\r | |
16 | + u32 tmp ;\r | |
17 | + tmp = ((rdev & 0x0ff00000) >> 12) | (rdev & 0xff) ;\r | |
18 | + //printk("doing that magic!! %08x -> %08x\n", rdev, tmp) ;\r | |
19 | + rdev = tmp ;\r | |
20 | + }\r | |
21 | + return rdev ;\r | |
22 | +}\r | |
23 | +\r | |
24 | /*\r | |
25 | * Fill in inode information from the fattr.\r | |
26 | */\r | |
27 | @@ -575,7 +591,7 @@\r | |
28 | } else if (S_ISLNK(inode->i_mode))\r | |
29 | inode->i_op = &nfs_symlink_inode_operations;\r | |
30 | else\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 | |
33 | memcpy(&inode->u.nfs_i.fh, fh, sizeof(inode->u.nfs_i.fh));\r | |
34 | }\r | |
35 | nfs_refresh_inode(inode, fattr);\r | |
36 | @@ -1010,7 +1026,7 @@\r | |
37 | }\r | |
38 | inode->i_rdev = 0;\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 | |
42 | \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 | |
48 | @@ -87,7 +87,7 @@\r | |
49 | \r | |
50 | clnt = rpc_create_client(xprt, hostname,\r | |
51 | &mnt_program, version,\r | |
52 | - RPC_AUTH_NULL);\r | |
53 | + RPC_AUTH_UNIX);\r | |
54 | if (!clnt) {\r | |
55 | xprt_destroy(xprt);\r | |
56 | } else {\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 | |
61 | return status;\r | |
62 | }\r | |
63 | \r | |
64 | +/* convert Linux major/minor number into Tru64 major/minor */\r | |
65 | +#define linux2tru64(rdev) \\r | |
66 | + (MAJOR((rdev))<<20 | MINOR((rdev)))\r | |
67 | +\r | |
68 | /*\r | |
69 | * In NFSv2, mknod is grafted onto the create call.\r | |
70 | */\r | |
71 | @@ -201,7 +205,7 @@\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 | |
77 | }\r | |
78 | \r | |
79 | fattr->valid = 0;\r |