From: "Talpey, Thomas" Subject: Re: [PATCH] NFS: Sign Extentions with Tru64 FSIDs. Date: Tue, 06 Mar 2007 17:00:20 -0500 Message-ID: References: <45EC7F0F.4090600@RedHat.com> <1173130678.6315.7.camel@heimdal.trondhjem.org> <45EC8FD3.4010809@redhat.com> <1173132182.6315.27.camel@heimdal.trondhjem.org> <45EC9837.1010504@redhat.com> <1173186308.6393.7.camel@heimdal.trondhjem.org> <45ED8135.2010008@RedHat.com> <45EDE060.3020501@RedHat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Cc: Neil Brown , "'nfs@lists.sourceforge.net'" , Trond Myklebust To: Steve Dickson Return-path: Received: from sc8-sf-mx2-b.sourceforge.net ([10.3.1.92] helo=mail.sourceforge.net) by sc8-sf-list2-new.sourceforge.net with esmtp (Exim 4.43) id 1HOhi2-00042o-Ek for nfs@lists.sourceforge.net; Tue, 06 Mar 2007 14:00:38 -0800 Received: from mx2.netapp.com ([216.240.18.37]) by mail.sourceforge.net with esmtp (Exim 4.44) id 1HOhi2-0005Gy-8U for nfs@lists.sourceforge.net; Tue, 06 Mar 2007 14:00:40 -0800 In-Reply-To: <45EDE060.3020501@RedHat.com> References: <45EC7F0F.4090600@RedHat.com> <1173130678.6315.7.camel@heimdal.trondhjem.org> <45EC8FD3.4010809@redhat.com> <1173132182.6315.27.camel@heimdal.trondhjem.org> <45EC9837.1010504@redhat.com> <1173186308.6393.7.camel@heimdal.trondhjem.org> <45ED8135.2010008@RedHat.com> <45EDE060.3020501@RedHat.com> List-Id: "Discussion of NFS under Linux development, interoperability, and testing." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: nfs-bounces@lists.sourceforge.net Errors-To: nfs-bounces@lists.sourceforge.net The current code already supports disabling READDIRPLUS to servers that don't support it. It happens after the first bad response. The intentional option is a good idea for other reasons though, huge directories yield huge attributes. One problem I see with the mount option is that it might be silently ignored by old mount binaries. That will confuse users who install a new kernel and don't update util-linux/nfs-utils. Tom. At 04:42 PM 3/6/2007, Steve Dickson wrote: > > >Steve Dickson wrote: >> >> Trond Myklebust wrote: >>> On Mon, 2007-03-05 at 17:22 -0500, Peter Staubach wrote: >>>> Or we could just punt and document that READDIRPLUS must be disabled >>>> on all Tru64 NFS servers if this problem is seen. >>> That would also be an option. >> Assuming there is a way to turn off READDIRPLUS on the >> server side... I'll look into it... Or are you suggesting >> that we have a mount option to turn off READDIRPLUS on the >> client side? (Note: I believe other implementations have >> this mount option if that means anything).... >Not too surprising, there does not seem to be away to >disable READDIRPLUS on the server side.... so... >Since it was incredibly easy to disable READDIRPLUS >from the client side... I went ahead came up and tested >the attached patches... > >Again, I believe there are other implementations, like Apple, >that have this type of knob so in the end, this might be >a good thing to have in general... It definitely helps with >broken Tru64 servers... So please consider... > >tia, > >steved. > >Added support to turn off the NFSv3 READDIRPLUS RPC. > >Signed-off-by: Steve Dickson > >---------------------------------------------- >--- linux-2.6.20.i686/fs/nfs/super.c.orig 2007-03-05 11:26:41.130885000 -0500 >+++ linux-2.6.20.i686/fs/nfs/super.c 2007-03-06 16:10:13.390550000 -0500 >@@ -291,6 +291,7 @@ > { NFS_MOUNT_NOAC, ",noac", "" }, > { NFS_MOUNT_NONLM, ",nolock", "" }, > { NFS_MOUNT_NOACL, ",noacl", "" }, >+ { NFS_MOUNT_NORDIRPLUS, ",nordirplus", "" }, > { 0, NULL, NULL } > }; > const struct proc_nfs_info *nfs_infop; >--- linux-2.6.20.i686/fs/nfs/client.c.orig 2007-03-05 11:26:40.995885000 -0500 >+++ linux-2.6.20.i686/fs/nfs/client.c 2007-03-06 11:07:23.208538000 -0500 >@@ -618,7 +618,8 @@ > if (clp->cl_nfsversion == 3) { > if (server->namelen == 0 || server->namelen > NFS3_MAXNAMLEN) > server->namelen = NFS3_MAXNAMLEN; >- server->caps |= NFS_CAP_READDIRPLUS; >+ if (!(data->flags & NFS_MOUNT_NORDIRPLUS)) >+ server->caps |= NFS_CAP_READDIRPLUS; > } else { > if (server->namelen == 0 || server->namelen > NFS2_MAXNAMLEN) > server->namelen = NFS2_MAXNAMLEN; >--- linux-2.6.20.i686/include/linux/nfs_mount.h.orig 2007-02-04 >13:44:54.000000000 -0500 >+++ linux-2.6.20.i686/include/linux/nfs_mount.h 2007-03-06 >10:59:06.457362000 -0500 >@@ -61,6 +61,7 @@ > #define NFS_MOUNT_NOACL 0x0800 /* 4 */ > #define NFS_MOUNT_STRICTLOCK 0x1000 /* reserved for NFSv4 */ > #define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 */ >+#define NFS_MOUNT_NORDIRPLUS 0x4000 /* 5 */ > #define NFS_MOUNT_FLAGMASK 0xFFFF > > #endif > >Adds the -o nordirplus mount option that will disable >NFS clients from using the READDIRPLUS RPC. > >Signed-off-by: Steve Dickson > >------------------------------ >--- nfs-utils-1.0.12/utils/mount/nfs_mount.h.orig 2007-03-06 >15:41:19.557090000 -0500 >+++ nfs-utils-1.0.12/utils/mount/nfs_mount.h 2007-03-06 >15:44:22.888922000 -0500 >@@ -63,6 +63,7 @@ > #define NFS_MOUNT_BROKEN_SUID 0x0400 /* 4 */ > #define NFS_MOUNT_NOACL 0x0800 /* 4 */ > #define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 */ >+#define NFS_MOUNT_NORDIRPLUS 0x4000 /* 5 */ > > /* security pseudoflavors */ > >--- nfs-utils-1.0.12/utils/mount/nfsmount.c.orig 2007-03-06 >15:41:19.582094000 -0500 >+++ nfs-utils-1.0.12/utils/mount/nfsmount.c 2007-03-06 15:44:53.509748000 -0500 >@@ -788,6 +788,10 @@ > data->flags &= ~NFS_MOUNT_NOACL; > if (!val) > data->flags |= NFS_MOUNT_NOACL; >+ } else if (!strcmp(opt, "rdirplus")) { >+ data->flags &= ~NFS_MOUNT_NORDIRPLUS; >+ if (!val) >+ data->flags |= NFS_MOUNT_NORDIRPLUS; > #endif > } else { > bad_option: >@@ -975,6 +979,7 @@ > #endif > #if NFS_MOUNT_VERSION >= 5 > printf("sec = %u ", data.pseudoflavor); >+ printf("readdirplus = %d ", (data.flags & NFS_MOUNT_NORDIRPLUS) != 0); > #endif > printf("\n"); > #endif >--- nfs-utils-1.0.12/utils/mount/nfs.man.orig 2007-03-06 >15:41:19.431090000 -0500 >+++ nfs-utils-1.0.12/utils/mount/nfs.man 2007-03-06 16:06:29.487656000 -0500 >@@ -272,6 +272,11 @@ > .I udp > Mount the NFS filesystem using the UDP protocol. This > is the default. >+.TP 1.5i >+.I nordirplus >+Disables NFSv3 READDIRPLUS RPCs. Use this options when >+mounting servers that don't support or have broken >+READDIRPLUS implementations. > .P > All of the non-value options have corresponding nooption forms. > For example, nointr means don't allow file operations to be > >------------------------------------------------------------------------- >Take Surveys. Earn Cash. Influence the Future of IT >Join SourceForge.net's Techsay panel and you'll get the chance to share your >opinions on IT & business topics through brief surveys-and earn cash >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >_______________________________________________ >NFS maillist - NFS@lists.sourceforge.net >https://lists.sourceforge.net/lists/listinfo/nfs ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs