lkml.org 
[lkml]   [2000]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectNFS client option to force 16-bit ugid.
Date
My home directory lives on a SunOS 4.1.4 server, which helpfully expands 
16-bit UIDs to 32 bits as signed quantities, not unsigned. So any uid above
32768 gets 0xffff0000 added to it.

This patch adds a mount option to the Linux NFS client to work round this
brokenness. I haven't updated the NFS_MOUNT_VERSION - it doesn't seem to be
necessary.

Index: fs/nfs/inode.c
===================================================================
RCS file: /inst/cvs/linux/fs/nfs/inode.c,v
retrieving revision 1.5.2.25
diff -u -r1.5.2.25 inode.c
--- fs/nfs/inode.c 2000/08/24 12:45:21 1.5.2.25
+++ fs/nfs/inode.c 2000/09/04 08:53:48
@@ -1117,7 +1117,10 @@
inode->i_nlink = fattr->nlink;
inode->i_uid = fattr->uid;
inode->i_gid = fattr->gid;
-
+ if (inode->i_sb->u.nfs_sb.s_server.flags & NFS_MOUNT_UGID16) {
+ inode->i_uid &= 0xffff;
+ inode->i_gid &= 0xffff;
+ }
if (fattr->valid & NFS_ATTR_FATTR_V3) {
/*
* report the blocks in 512byte units
Index: include/linux/nfs_mount.h
===================================================================
RCS file: /inst/cvs/linux/include/linux/nfs_mount.h,v
retrieving revision 1.1.1.1.2.2
diff -u -r1.1.1.1.2.2 nfs_mount.h
--- include/linux/nfs_mount.h 2000/06/07 14:59:30 1.1.1.1.2.2
+++ include/linux/nfs_mount.h 2000/09/04 07:54:09
@@ -52,6 +52,7 @@
#define NFS_MOUNT_VER3 0x0080 /* 3 */
#define NFS_MOUNT_KERBEROS 0x0100 /* 3 */
#define NFS_MOUNT_NONLM 0x0200 /* 3 */
+#define NFS_MOUNT_UGID16 0x0400 /* 4+ */
#define NFS_MOUNT_FLAGMASK 0xFFFF

#endif
--
dwmw2


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:38    [W:0.032 / U:44.500 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site