Date: Mon, 6 Dec 2010 10:02:52 -0500 (EST) From: Rick Macklem <rmacklem@uoguelph.ca> To: =?utf-8?Q?Tom=C3=A1=C5=A1_Drbohlav?= <drb@karlov.mff.cuni.cz> Cc: freebsd-fs@freebsd.org Subject: Re: Linux (client) - FreeBSD (server) NFS4 interoperability problem Message-ID: <1246727856.1218036.1291647772450.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <4CFCB86F.6090800@karlov.mff.cuni.cz>
next in thread | previous in thread | raw e-mail | index | archive | help
> > traffic may be blocked, but we do not want server to make callbacks > anyway (we are exporting data which are being modified by Samba or > locally so no delegations and server is going to be access through > NAT) > > > 2 - Disable the server from attempting to do a callback connection > > even when the client advertises one. (At the moment this can > > only be done for Kerberized mounts by setting > > nfsrv_nogsscallback == 1 > > in sys/fs/nfsserver/nfs_nfsdstate.c. (Maybe I should add a > > sysctl > > to disable callback attempts?) > > I have try it and it solved our other problem (small delay after first > file open after connection), probably connected with server trying to > establish callback. I will check with Linux client and let you know, > but > this si what we needed anyway. > > Sysctl is a good idea, btw man nfsv4 mentions > vfs.newnfs.issue_delegations ... what is the purpose of callback other > than delegation? > I think the correct solution is to set a short (about 1sec timeout) on the callback connection attempt when no delegations are issued to that client. Unfortunately that patch isn't trivial, since the timeout needs to happen inside of the krpc and there currently isn't a timeout argument that can be passed into it for this. At the moment, vfs.newnfs.issue_delegations == 0 doesn't disable attempting to make a callback connection when the client advertises one, but I agree that it could disable callbacks since, as you note, callbacks are only useful when delegations are being issued. I'll email you a patch that does this. Btw, the other patch shouldn't be in a production server, since it would time out all connection attempts and not just callback ones. (That was why I set the timeout in it at 30sec instead of 1sec. It was just meant to test to see if the Linux client could Open successfully if the callback connection attempt timed out in less than the 1minute it waits before giving up on waiting for a reply.) rick
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1246727856.1218036.1291647772450.JavaMail.root>